diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
index e594586..e02066e 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
@@ -102,11 +102,11 @@
 { # An invitation for a new client user to get access to the Ad Exchange
       # Buyer UI.
       # All fields are required unless otherwise specified.
+    "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+        # The value of this field is ignored in create operations.
     "clientAccountId": "A String", # Numerical account ID of the client buyer
         # that the invited user is associated with.
         # The value of this field is ignored in create operations.
-    "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-        # The value of this field is ignored in create operations.
     "email": "A String", # The email address to which the invitation is sent. Email
         # addresses should be unique among all client users under each sponsor
         # buyer.
@@ -123,11 +123,11 @@
     { # An invitation for a new client user to get access to the Ad Exchange
         # Buyer UI.
         # All fields are required unless otherwise specified.
+      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+          # The value of this field is ignored in create operations.
       "clientAccountId": "A String", # Numerical account ID of the client buyer
           # that the invited user is associated with.
           # The value of this field is ignored in create operations.
-      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-          # The value of this field is ignored in create operations.
       "email": "A String", # The email address to which the invitation is sent. Email
           # addresses should be unique among all client users under each sponsor
           # buyer.
@@ -154,11 +154,11 @@
     { # An invitation for a new client user to get access to the Ad Exchange
         # Buyer UI.
         # All fields are required unless otherwise specified.
+      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+          # The value of this field is ignored in create operations.
       "clientAccountId": "A String", # Numerical account ID of the client buyer
           # that the invited user is associated with.
           # The value of this field is ignored in create operations.
-      "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-          # The value of this field is ignored in create operations.
       "email": "A String", # The email address to which the invitation is sent. Email
           # addresses should be unique among all client users under each sponsor
           # buyer.
@@ -206,11 +206,11 @@
       { # An invitation for a new client user to get access to the Ad Exchange
             # Buyer UI.
             # All fields are required unless otherwise specified.
+          "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
+              # The value of this field is ignored in create operations.
           "clientAccountId": "A String", # Numerical account ID of the client buyer
               # that the invited user is associated with.
               # The value of this field is ignored in create operations.
-          "invitationId": "A String", # The unique numerical ID of the invitation that is sent to the user.
-              # The value of this field is ignored in create operations.
           "email": "A String", # The email address to which the invitation is sent. Email
               # addresses should be unique among all client users under each sponsor
               # buyer.
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
index 8acc247..679f8a7 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
@@ -122,11 +122,11 @@
       # day (from midnight to midnight Pacific).
     "reasons": [ # The set of filtering reasons for this date.
       { # A specific filtering status and how many times it occurred.
+        "count": "A String", # The number of times the creative was filtered for the status. The
+            # count is aggregated across all publishers on the exchange.
         "status": 42, # The filtering status code. Please refer to the
             # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
             # file for different statuses.
-        "count": "A String", # The number of times the creative was filtered for the status. The
-            # count is aggregated across all publishers on the exchange.
       },
     ],
     "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
@@ -156,9 +156,14 @@
   "clickThroughUrls": [ # The set of destination URLs for the creative.
     "A String",
   ],
-  "video": { # Video content for a creative. # A video creative.
-    "videoUrl": "A String", # The URL to fetch a video ad.
-  },
+  "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+      # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      # serving_restrictions will also exist. Note
+      # that this may be nuanced with other contextual restrictions, in which case,
+      # it may be preferable to read from serving_restrictions directly.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
   "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
       # See the ad-sensitive-categories.txt file in the technical documentation for
       # a list of IDs. You should use these IDs along with the
@@ -173,9 +178,24 @@
     "A String",
   ],
   "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+  "accountId": "A String", # The account that this creative belongs to.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+      # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+      # for possible values.
+    42,
+  ],
+  "agencyId": "A String", # The agency ID for this creative.
+  "html": { # HTML content for a creative. # An HTML creative.
+    "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+    "width": 42, # The width of the HTML snippet in pixels.
+    "height": 42, # The height of the HTML snippet in pixels.
+  },
+  "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
   "native": { # Native content for a creative. # A native creative.
     "body": "A String", # A long description of the ad.
-    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
     "videoUrl": "A String", # The URL to fetch a native video ad.
     "headline": "A String", # A short title for the ad.
     "image": { # An image resource. You may provide a larger image than was requested, # A large image.
@@ -184,8 +204,9 @@
       "width": 42, # Image width in pixels.
       "height": 42, # Image height in pixels.
     },
-    "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
     "clickTrackingUrl": "A String", # The URL to use for click tracking.
+    "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
     "priceDisplayText": "A String", # The price of the promoted app including currency info.
     "callToAction": "A String", # A label for the button that the user is supposed to click.
     "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
@@ -203,22 +224,6 @@
     "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
     "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
   },
-  "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
-      # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
-      # for possible values.
-    42,
-  ],
-  "agencyId": "A String", # The agency ID for this creative.
-  "html": { # HTML content for a creative. # An HTML creative.
-    "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
-    "width": 42, # The width of the HTML snippet in pixels.
-    "height": 42, # The height of the HTML snippet in pixels.
-  },
-  "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
-  "accountId": "A String", # The account that this creative belongs to.
-      # Can be used to filter the response of the
-      # creatives.list
-      # method.
   "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
       # See the ad-product-categories.txt file in the technical documentation
       # for a list of IDs.
@@ -228,16 +233,14 @@
       # The detected domains for this creative.
     "A String",
   ],
-  "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
-      # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
-      # serving_restrictions will also exist. Note
-      # that this may be nuanced with other contextual restrictions, in which case,
-      # it may be preferable to read from serving_restrictions directly.
+  "attributes": [ # All attributes for the ads that may be shown from this creative.
       # Can be used to filter the response of the
       # creatives.list
       # method.
-  "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
-      # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+    "A String",
+  ],
+  "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+      # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
       # serving_restrictions will also exist. Note
       # that this may be nuanced with other contextual restrictions, in which case,
       # it may be preferable to read from serving_restrictions directly.
@@ -347,12 +350,9 @@
       ],
     },
   ],
-  "attributes": [ # All attributes for the ads that may be shown from this creative.
-      # Can be used to filter the response of the
-      # creatives.list
-      # method.
-    "A String",
-  ],
+  "video": { # Video content for a creative. # A video creative.
+    "videoUrl": "A String", # The URL to fetch a video ad.
+  },
 }
 
   duplicateIdMode: string, Indicates if multiple creatives can share an ID or not. Default is
@@ -374,11 +374,11 @@
         # day (from midnight to midnight Pacific).
       "reasons": [ # The set of filtering reasons for this date.
         { # A specific filtering status and how many times it occurred.
+          "count": "A String", # The number of times the creative was filtered for the status. The
+              # count is aggregated across all publishers on the exchange.
           "status": 42, # The filtering status code. Please refer to the
               # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
               # file for different statuses.
-          "count": "A String", # The number of times the creative was filtered for the status. The
-              # count is aggregated across all publishers on the exchange.
         },
       ],
       "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
@@ -408,9 +408,14 @@
     "clickThroughUrls": [ # The set of destination URLs for the creative.
       "A String",
     ],
-    "video": { # Video content for a creative. # A video creative.
-      "videoUrl": "A String", # The URL to fetch a video ad.
-    },
+    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
     "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
         # See the ad-sensitive-categories.txt file in the technical documentation for
         # a list of IDs. You should use these IDs along with the
@@ -425,9 +430,24 @@
       "A String",
     ],
     "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+    "accountId": "A String", # The account that this creative belongs to.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+        # for possible values.
+      42,
+    ],
+    "agencyId": "A String", # The agency ID for this creative.
+    "html": { # HTML content for a creative. # An HTML creative.
+      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+      "width": 42, # The width of the HTML snippet in pixels.
+      "height": 42, # The height of the HTML snippet in pixels.
+    },
+    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
     "native": { # Native content for a creative. # A native creative.
       "body": "A String", # A long description of the ad.
-      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "videoUrl": "A String", # The URL to fetch a native video ad.
       "headline": "A String", # A short title for the ad.
       "image": { # An image resource. You may provide a larger image than was requested, # A large image.
@@ -436,8 +456,9 @@
         "width": 42, # Image width in pixels.
         "height": 42, # Image height in pixels.
       },
-      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
       "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "priceDisplayText": "A String", # The price of the promoted app including currency info.
       "callToAction": "A String", # A label for the button that the user is supposed to click.
       "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
@@ -455,22 +476,6 @@
       "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
       "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
     },
-    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
-        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
-        # for possible values.
-      42,
-    ],
-    "agencyId": "A String", # The agency ID for this creative.
-    "html": { # HTML content for a creative. # An HTML creative.
-      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
-      "width": 42, # The width of the HTML snippet in pixels.
-      "height": 42, # The height of the HTML snippet in pixels.
-    },
-    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
-    "accountId": "A String", # The account that this creative belongs to.
-        # Can be used to filter the response of the
-        # creatives.list
-        # method.
     "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
         # See the ad-product-categories.txt file in the technical documentation
         # for a list of IDs.
@@ -480,16 +485,14 @@
         # The detected domains for this creative.
       "A String",
     ],
-    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
-        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
-        # serving_restrictions will also exist. Note
-        # that this may be nuanced with other contextual restrictions, in which case,
-        # it may be preferable to read from serving_restrictions directly.
+    "attributes": [ # All attributes for the ads that may be shown from this creative.
         # Can be used to filter the response of the
         # creatives.list
         # method.
-    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
-        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      "A String",
+    ],
+    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
         # serving_restrictions will also exist. Note
         # that this may be nuanced with other contextual restrictions, in which case,
         # it may be preferable to read from serving_restrictions directly.
@@ -599,12 +602,9 @@
         ],
       },
     ],
-    "attributes": [ # All attributes for the ads that may be shown from this creative.
-        # Can be used to filter the response of the
-        # creatives.list
-        # method.
-      "A String",
-    ],
+    "video": { # Video content for a creative. # A video creative.
+      "videoUrl": "A String", # The URL to fetch a video ad.
+    },
   }</pre>
 </div>
 
@@ -632,11 +632,11 @@
         # day (from midnight to midnight Pacific).
       "reasons": [ # The set of filtering reasons for this date.
         { # A specific filtering status and how many times it occurred.
+          "count": "A String", # The number of times the creative was filtered for the status. The
+              # count is aggregated across all publishers on the exchange.
           "status": 42, # The filtering status code. Please refer to the
               # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
               # file for different statuses.
-          "count": "A String", # The number of times the creative was filtered for the status. The
-              # count is aggregated across all publishers on the exchange.
         },
       ],
       "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
@@ -666,9 +666,14 @@
     "clickThroughUrls": [ # The set of destination URLs for the creative.
       "A String",
     ],
-    "video": { # Video content for a creative. # A video creative.
-      "videoUrl": "A String", # The URL to fetch a video ad.
-    },
+    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
     "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
         # See the ad-sensitive-categories.txt file in the technical documentation for
         # a list of IDs. You should use these IDs along with the
@@ -683,9 +688,24 @@
       "A String",
     ],
     "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+    "accountId": "A String", # The account that this creative belongs to.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+        # for possible values.
+      42,
+    ],
+    "agencyId": "A String", # The agency ID for this creative.
+    "html": { # HTML content for a creative. # An HTML creative.
+      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+      "width": 42, # The width of the HTML snippet in pixels.
+      "height": 42, # The height of the HTML snippet in pixels.
+    },
+    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
     "native": { # Native content for a creative. # A native creative.
       "body": "A String", # A long description of the ad.
-      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "videoUrl": "A String", # The URL to fetch a native video ad.
       "headline": "A String", # A short title for the ad.
       "image": { # An image resource. You may provide a larger image than was requested, # A large image.
@@ -694,8 +714,9 @@
         "width": 42, # Image width in pixels.
         "height": 42, # Image height in pixels.
       },
-      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
       "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "priceDisplayText": "A String", # The price of the promoted app including currency info.
       "callToAction": "A String", # A label for the button that the user is supposed to click.
       "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
@@ -713,22 +734,6 @@
       "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
       "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
     },
-    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
-        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
-        # for possible values.
-      42,
-    ],
-    "agencyId": "A String", # The agency ID for this creative.
-    "html": { # HTML content for a creative. # An HTML creative.
-      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
-      "width": 42, # The width of the HTML snippet in pixels.
-      "height": 42, # The height of the HTML snippet in pixels.
-    },
-    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
-    "accountId": "A String", # The account that this creative belongs to.
-        # Can be used to filter the response of the
-        # creatives.list
-        # method.
     "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
         # See the ad-product-categories.txt file in the technical documentation
         # for a list of IDs.
@@ -738,16 +743,14 @@
         # The detected domains for this creative.
       "A String",
     ],
-    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
-        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
-        # serving_restrictions will also exist. Note
-        # that this may be nuanced with other contextual restrictions, in which case,
-        # it may be preferable to read from serving_restrictions directly.
+    "attributes": [ # All attributes for the ads that may be shown from this creative.
         # Can be used to filter the response of the
         # creatives.list
         # method.
-    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
-        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      "A String",
+    ],
+    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
         # serving_restrictions will also exist. Note
         # that this may be nuanced with other contextual restrictions, in which case,
         # it may be preferable to read from serving_restrictions directly.
@@ -857,12 +860,9 @@
         ],
       },
     ],
-    "attributes": [ # All attributes for the ads that may be shown from this creative.
-        # Can be used to filter the response of the
-        # creatives.list
-        # method.
-      "A String",
-    ],
+    "video": { # Video content for a creative. # A video creative.
+      "videoUrl": "A String", # The URL to fetch a video ad.
+    },
   }</pre>
 </div>
 
@@ -919,11 +919,11 @@
             # day (from midnight to midnight Pacific).
           "reasons": [ # The set of filtering reasons for this date.
             { # A specific filtering status and how many times it occurred.
+              "count": "A String", # The number of times the creative was filtered for the status. The
+                  # count is aggregated across all publishers on the exchange.
               "status": 42, # The filtering status code. Please refer to the
                   # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
                   # file for different statuses.
-              "count": "A String", # The number of times the creative was filtered for the status. The
-                  # count is aggregated across all publishers on the exchange.
             },
           ],
           "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
@@ -953,9 +953,14 @@
         "clickThroughUrls": [ # The set of destination URLs for the creative.
           "A String",
         ],
-        "video": { # Video content for a creative. # A video creative.
-          "videoUrl": "A String", # The URL to fetch a video ad.
-        },
+        "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+            # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+            # serving_restrictions will also exist. Note
+            # that this may be nuanced with other contextual restrictions, in which case,
+            # it may be preferable to read from serving_restrictions directly.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
         "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
             # See the ad-sensitive-categories.txt file in the technical documentation for
             # a list of IDs. You should use these IDs along with the
@@ -970,9 +975,24 @@
           "A String",
         ],
         "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+        "accountId": "A String", # The account that this creative belongs to.
+            # Can be used to filter the response of the
+            # creatives.list
+            # method.
+        "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+            # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+            # for possible values.
+          42,
+        ],
+        "agencyId": "A String", # The agency ID for this creative.
+        "html": { # HTML content for a creative. # An HTML creative.
+          "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+          "width": 42, # The width of the HTML snippet in pixels.
+          "height": 42, # The height of the HTML snippet in pixels.
+        },
+        "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
         "native": { # Native content for a creative. # A native creative.
           "body": "A String", # A long description of the ad.
-          "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
           "videoUrl": "A String", # The URL to fetch a native video ad.
           "headline": "A String", # A short title for the ad.
           "image": { # An image resource. You may provide a larger image than was requested, # A large image.
@@ -981,8 +1001,9 @@
             "width": 42, # Image width in pixels.
             "height": 42, # Image height in pixels.
           },
-          "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
           "clickTrackingUrl": "A String", # The URL to use for click tracking.
+          "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+          "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
           "priceDisplayText": "A String", # The price of the promoted app including currency info.
           "callToAction": "A String", # A label for the button that the user is supposed to click.
           "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
@@ -1000,22 +1021,6 @@
           "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
           "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
         },
-        "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
-            # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
-            # for possible values.
-          42,
-        ],
-        "agencyId": "A String", # The agency ID for this creative.
-        "html": { # HTML content for a creative. # An HTML creative.
-          "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
-          "width": 42, # The width of the HTML snippet in pixels.
-          "height": 42, # The height of the HTML snippet in pixels.
-        },
-        "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
-        "accountId": "A String", # The account that this creative belongs to.
-            # Can be used to filter the response of the
-            # creatives.list
-            # method.
         "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
             # See the ad-product-categories.txt file in the technical documentation
             # for a list of IDs.
@@ -1025,16 +1030,14 @@
             # The detected domains for this creative.
           "A String",
         ],
-        "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
-            # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
-            # serving_restrictions will also exist. Note
-            # that this may be nuanced with other contextual restrictions, in which case,
-            # it may be preferable to read from serving_restrictions directly.
+        "attributes": [ # All attributes for the ads that may be shown from this creative.
             # Can be used to filter the response of the
             # creatives.list
             # method.
-        "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
-            # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+          "A String",
+        ],
+        "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+            # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
             # serving_restrictions will also exist. Note
             # that this may be nuanced with other contextual restrictions, in which case,
             # it may be preferable to read from serving_restrictions directly.
@@ -1144,12 +1147,9 @@
             ],
           },
         ],
-        "attributes": [ # All attributes for the ads that may be shown from this creative.
-            # Can be used to filter the response of the
-            # creatives.list
-            # method.
-          "A String",
-        ],
+        "video": { # Video content for a creative. # A video creative.
+          "videoUrl": "A String", # The URL to fetch a video ad.
+        },
       },
     ],
   }</pre>
@@ -1229,11 +1229,11 @@
       # day (from midnight to midnight Pacific).
     "reasons": [ # The set of filtering reasons for this date.
       { # A specific filtering status and how many times it occurred.
+        "count": "A String", # The number of times the creative was filtered for the status. The
+            # count is aggregated across all publishers on the exchange.
         "status": 42, # The filtering status code. Please refer to the
             # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
             # file for different statuses.
-        "count": "A String", # The number of times the creative was filtered for the status. The
-            # count is aggregated across all publishers on the exchange.
       },
     ],
     "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
@@ -1263,9 +1263,14 @@
   "clickThroughUrls": [ # The set of destination URLs for the creative.
     "A String",
   ],
-  "video": { # Video content for a creative. # A video creative.
-    "videoUrl": "A String", # The URL to fetch a video ad.
-  },
+  "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+      # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      # serving_restrictions will also exist. Note
+      # that this may be nuanced with other contextual restrictions, in which case,
+      # it may be preferable to read from serving_restrictions directly.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
   "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
       # See the ad-sensitive-categories.txt file in the technical documentation for
       # a list of IDs. You should use these IDs along with the
@@ -1280,9 +1285,24 @@
     "A String",
   ],
   "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+  "accountId": "A String", # The account that this creative belongs to.
+      # Can be used to filter the response of the
+      # creatives.list
+      # method.
+  "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+      # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+      # for possible values.
+    42,
+  ],
+  "agencyId": "A String", # The agency ID for this creative.
+  "html": { # HTML content for a creative. # An HTML creative.
+    "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+    "width": 42, # The width of the HTML snippet in pixels.
+    "height": 42, # The height of the HTML snippet in pixels.
+  },
+  "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
   "native": { # Native content for a creative. # A native creative.
     "body": "A String", # A long description of the ad.
-    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
     "videoUrl": "A String", # The URL to fetch a native video ad.
     "headline": "A String", # A short title for the ad.
     "image": { # An image resource. You may provide a larger image than was requested, # A large image.
@@ -1291,8 +1311,9 @@
       "width": 42, # Image width in pixels.
       "height": 42, # Image height in pixels.
     },
-    "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
     "clickTrackingUrl": "A String", # The URL to use for click tracking.
+    "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
     "priceDisplayText": "A String", # The price of the promoted app including currency info.
     "callToAction": "A String", # A label for the button that the user is supposed to click.
     "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
@@ -1310,22 +1331,6 @@
     "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
     "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
   },
-  "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
-      # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
-      # for possible values.
-    42,
-  ],
-  "agencyId": "A String", # The agency ID for this creative.
-  "html": { # HTML content for a creative. # An HTML creative.
-    "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
-    "width": 42, # The width of the HTML snippet in pixels.
-    "height": 42, # The height of the HTML snippet in pixels.
-  },
-  "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
-  "accountId": "A String", # The account that this creative belongs to.
-      # Can be used to filter the response of the
-      # creatives.list
-      # method.
   "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
       # See the ad-product-categories.txt file in the technical documentation
       # for a list of IDs.
@@ -1335,16 +1340,14 @@
       # The detected domains for this creative.
     "A String",
   ],
-  "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
-      # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
-      # serving_restrictions will also exist. Note
-      # that this may be nuanced with other contextual restrictions, in which case,
-      # it may be preferable to read from serving_restrictions directly.
+  "attributes": [ # All attributes for the ads that may be shown from this creative.
       # Can be used to filter the response of the
       # creatives.list
       # method.
-  "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
-      # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+    "A String",
+  ],
+  "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+      # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
       # serving_restrictions will also exist. Note
       # that this may be nuanced with other contextual restrictions, in which case,
       # it may be preferable to read from serving_restrictions directly.
@@ -1454,12 +1457,9 @@
       ],
     },
   ],
-  "attributes": [ # All attributes for the ads that may be shown from this creative.
-      # Can be used to filter the response of the
-      # creatives.list
-      # method.
-    "A String",
-  ],
+  "video": { # Video content for a creative. # A video creative.
+    "videoUrl": "A String", # The URL to fetch a video ad.
+  },
 }
 
   x__xgafv: string, V1 error format.
@@ -1479,11 +1479,11 @@
         # day (from midnight to midnight Pacific).
       "reasons": [ # The set of filtering reasons for this date.
         { # A specific filtering status and how many times it occurred.
+          "count": "A String", # The number of times the creative was filtered for the status. The
+              # count is aggregated across all publishers on the exchange.
           "status": 42, # The filtering status code. Please refer to the
               # [creative-status-codes.txt](https://storage.googleapis.com/adx-rtb-dictionaries/creative-status-codes.txt)
               # file for different statuses.
-          "count": "A String", # The number of times the creative was filtered for the status. The
-              # count is aggregated across all publishers on the exchange.
         },
       ],
       "date": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The day during which the data was collected.
@@ -1513,9 +1513,14 @@
     "clickThroughUrls": [ # The set of destination URLs for the creative.
       "A String",
     ],
-    "video": { # Video content for a creative. # A video creative.
-      "videoUrl": "A String", # The URL to fetch a video ad.
-    },
+    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
+        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+        # serving_restrictions will also exist. Note
+        # that this may be nuanced with other contextual restrictions, in which case,
+        # it may be preferable to read from serving_restrictions directly.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
     "detectedSensitiveCategories": [ # @OutputOnly Detected sensitive categories, if any.
         # See the ad-sensitive-categories.txt file in the technical documentation for
         # a list of IDs. You should use these IDs along with the
@@ -1530,9 +1535,24 @@
       "A String",
     ],
     "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
+    "accountId": "A String", # The account that this creative belongs to.
+        # Can be used to filter the response of the
+        # creatives.list
+        # method.
+    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
+        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
+        # for possible values.
+      42,
+    ],
+    "agencyId": "A String", # The agency ID for this creative.
+    "html": { # HTML content for a creative. # An HTML creative.
+      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
+      "width": 42, # The width of the HTML snippet in pixels.
+      "height": 42, # The height of the HTML snippet in pixels.
+    },
+    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
     "native": { # Native content for a creative. # A native creative.
       "body": "A String", # A long description of the ad.
-      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "videoUrl": "A String", # The URL to fetch a native video ad.
       "headline": "A String", # A short title for the ad.
       "image": { # An image resource. You may provide a larger image than was requested, # A large image.
@@ -1541,8 +1561,9 @@
         "width": 42, # Image width in pixels.
         "height": 42, # Image height in pixels.
       },
-      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
       "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "starRating": 3.14, # The app rating in the app store. Must be in the range [0-5].
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "priceDisplayText": "A String", # The price of the promoted app including currency info.
       "callToAction": "A String", # A label for the button that the user is supposed to click.
       "logo": { # An image resource. You may provide a larger image than was requested, # A smaller image, for the advertiser's logo.
@@ -1560,22 +1581,6 @@
       "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
       "clickLinkUrl": "A String", # The URL that the browser/SDK will load when the user clicks the ad.
     },
-    "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
-        # See https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt
-        # for possible values.
-      42,
-    ],
-    "agencyId": "A String", # The agency ID for this creative.
-    "html": { # HTML content for a creative. # An HTML creative.
-      "snippet": "A String", # The HTML snippet that displays the ad when inserted in the web page.
-      "width": 42, # The width of the HTML snippet in pixels.
-      "height": 42, # The height of the HTML snippet in pixels.
-    },
-    "apiUpdateTime": "A String", # @OutputOnly The last update timestamp of the creative via API.
-    "accountId": "A String", # The account that this creative belongs to.
-        # Can be used to filter the response of the
-        # creatives.list
-        # method.
     "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
         # See the ad-product-categories.txt file in the technical documentation
         # for a list of IDs.
@@ -1585,16 +1590,14 @@
         # The detected domains for this creative.
       "A String",
     ],
-    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
-        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
-        # serving_restrictions will also exist. Note
-        # that this may be nuanced with other contextual restrictions, in which case,
-        # it may be preferable to read from serving_restrictions directly.
+    "attributes": [ # All attributes for the ads that may be shown from this creative.
         # Can be used to filter the response of the
         # creatives.list
         # method.
-    "openAuctionStatus": "A String", # @OutputOnly The top-level open auction status of this creative.
-        # If disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in
+      "A String",
+    ],
+    "dealsStatus": "A String", # @OutputOnly The top-level deals status of this creative.
+        # If disapproved, an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in
         # serving_restrictions will also exist. Note
         # that this may be nuanced with other contextual restrictions, in which case,
         # it may be preferable to read from serving_restrictions directly.
@@ -1704,12 +1707,9 @@
         ],
       },
     ],
-    "attributes": [ # All attributes for the ads that may be shown from this creative.
-        # Can be used to filter the response of the
-        # creatives.list
-        # method.
-      "A String",
-    ],
+    "video": { # Video content for a creative. # A video creative.
+      "videoUrl": "A String", # The URL to fetch a video ad.
+    },
   }</pre>
 </div>
 
diff --git a/docs/dyn/adexchangebuyer_v1_4.accounts.html b/docs/dyn/adexchangebuyer_v1_4.accounts.html
index a6be7c0..c1276e6 100644
--- a/docs/dyn/adexchangebuyer_v1_4.accounts.html
+++ b/docs/dyn/adexchangebuyer_v1_4.accounts.html
@@ -115,8 +115,10 @@
               # - PROTOCOL_OPENRTB_2_2
               # - PROTOCOL_OPENRTB_2_3
               # - PROTOCOL_OPENRTB_2_4
+              # - PROTOCOL_OPENRTB_2_5
               # - PROTOCOL_OPENRTB_PROTOBUF_2_3
               # - PROTOCOL_OPENRTB_PROTOBUF_2_4
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_5
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -155,8 +157,10 @@
                   # - PROTOCOL_OPENRTB_2_2
                   # - PROTOCOL_OPENRTB_2_3
                   # - PROTOCOL_OPENRTB_2_4
+                  # - PROTOCOL_OPENRTB_2_5
                   # - PROTOCOL_OPENRTB_PROTOBUF_2_3
                   # - PROTOCOL_OPENRTB_PROTOBUF_2_4
+                  # - PROTOCOL_OPENRTB_PROTOBUF_2_5
             },
           ],
           "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -196,8 +200,10 @@
             # - PROTOCOL_OPENRTB_2_2
             # - PROTOCOL_OPENRTB_2_3
             # - PROTOCOL_OPENRTB_2_4
+            # - PROTOCOL_OPENRTB_2_5
             # - PROTOCOL_OPENRTB_PROTOBUF_2_3
             # - PROTOCOL_OPENRTB_PROTOBUF_2_4
+            # - PROTOCOL_OPENRTB_PROTOBUF_2_5
       },
     ],
     "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -229,8 +235,10 @@
               # - PROTOCOL_OPENRTB_2_2
               # - PROTOCOL_OPENRTB_2_3
               # - PROTOCOL_OPENRTB_2_4
+              # - PROTOCOL_OPENRTB_2_5
               # - PROTOCOL_OPENRTB_PROTOBUF_2_3
               # - PROTOCOL_OPENRTB_PROTOBUF_2_4
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_5
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -267,8 +275,10 @@
             # - PROTOCOL_OPENRTB_2_2
             # - PROTOCOL_OPENRTB_2_3
             # - PROTOCOL_OPENRTB_2_4
+            # - PROTOCOL_OPENRTB_2_5
             # - PROTOCOL_OPENRTB_PROTOBUF_2_3
             # - PROTOCOL_OPENRTB_PROTOBUF_2_4
+            # - PROTOCOL_OPENRTB_PROTOBUF_2_5
       },
     ],
     "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
@@ -300,8 +310,10 @@
               # - PROTOCOL_OPENRTB_2_2
               # - PROTOCOL_OPENRTB_2_3
               # - PROTOCOL_OPENRTB_2_4
+              # - PROTOCOL_OPENRTB_2_5
               # - PROTOCOL_OPENRTB_PROTOBUF_2_3
               # - PROTOCOL_OPENRTB_PROTOBUF_2_4
+              # - PROTOCOL_OPENRTB_PROTOBUF_2_5
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
diff --git a/docs/dyn/adexchangebuyer_v1_4.creatives.html b/docs/dyn/adexchangebuyer_v1_4.creatives.html
index d8a76d0..64b26ee 100644
--- a/docs/dyn/adexchangebuyer_v1_4.creatives.html
+++ b/docs/dyn/adexchangebuyer_v1_4.creatives.html
@@ -190,7 +190,7 @@
         "A String",
       ],
       "kind": "adexchangebuyer#creative", # Resource type.
-      "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests.
+      "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests. See the examples in the Creatives guide for more details.
         {
           "contexts": [ # All known contexts/restrictions.
             {
@@ -334,7 +334,7 @@
       "A String",
     ],
     "kind": "adexchangebuyer#creative", # Resource type.
-    "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests.
+    "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests. See the examples in the Creatives guide for more details.
       {
         "contexts": [ # All known contexts/restrictions.
           {
@@ -473,7 +473,7 @@
         "A String",
       ],
       "kind": "adexchangebuyer#creative", # Resource type.
-      "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests.
+      "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests. See the examples in the Creatives guide for more details.
         {
           "contexts": [ # All known contexts/restrictions.
             {
@@ -637,7 +637,7 @@
             "A String",
           ],
           "kind": "adexchangebuyer#creative", # Resource type.
-          "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests.
+          "servingRestrictions": [ # The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests. See the examples in the Creatives guide for more details.
             {
               "contexts": [ # All known contexts/restrictions.
                 {
diff --git a/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html b/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html
index 3d1857c..18036a2 100644
--- a/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html
+++ b/docs/dyn/adexchangebuyer_v1_4.marketplacedeals.html
@@ -140,11 +140,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -164,18 +167,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -208,11 +214,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -244,6 +253,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -276,6 +286,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -318,6 +329,7 @@
             "firstPausedBy": "A String", # If the deal is paused, records which party paused the deal first.
           },
         },
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)
         "creationTimeMs": "A String", # The time (ms since epoch) of the deal creation. (readonly)
       },
     ],
@@ -366,11 +378,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -390,18 +405,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -434,11 +452,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -470,6 +491,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -502,6 +524,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -544,6 +567,7 @@
             "firstPausedBy": "A String", # If the deal is paused, records which party paused the deal first.
           },
         },
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)
         "creationTimeMs": "A String", # The time (ms since epoch) of the deal creation. (readonly)
       },
     ],
@@ -587,11 +611,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -611,18 +638,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -655,11 +685,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -691,6 +724,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -723,6 +757,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -765,6 +800,7 @@
             "firstPausedBy": "A String", # If the deal is paused, records which party paused the deal first.
           },
         },
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)
         "creationTimeMs": "A String", # The time (ms since epoch) of the deal creation. (readonly)
       },
     ],
@@ -815,11 +851,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -839,18 +878,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -883,11 +925,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -919,6 +964,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -951,6 +997,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -993,6 +1040,7 @@
             "firstPausedBy": "A String", # If the deal is paused, records which party paused the deal first.
           },
         },
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)
         "creationTimeMs": "A String", # The time (ms since epoch) of the deal creation. (readonly)
       },
     ],
@@ -1040,11 +1088,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -1064,18 +1115,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -1108,11 +1162,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -1144,6 +1201,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -1176,6 +1234,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -1218,6 +1277,7 @@
             "firstPausedBy": "A String", # If the deal is paused, records which party paused the deal first.
           },
         },
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)
         "creationTimeMs": "A String", # The time (ms since epoch) of the deal creation. (readonly)
       },
     ],
@@ -1277,7 +1337,7 @@
       "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
         "accountId": "A String", # Adx account id of the buyer.
       },
-      "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+      "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
       "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
         {
           "email": "A String", # Email address of the contact.
@@ -1325,11 +1385,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -1349,18 +1412,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -1393,11 +1459,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -1429,6 +1498,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -1461,6 +1531,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -1503,6 +1574,7 @@
             "firstPausedBy": "A String", # If the deal is paused, records which party paused the deal first.
           },
         },
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)
         "creationTimeMs": "A String", # The time (ms since epoch) of the deal creation. (readonly)
       },
     ],
diff --git a/docs/dyn/adexchangebuyer_v1_4.products.html b/docs/dyn/adexchangebuyer_v1_4.products.html
index 2229395..aa4571b 100644
--- a/docs/dyn/adexchangebuyer_v1_4.products.html
+++ b/docs/dyn/adexchangebuyer_v1_4.products.html
@@ -135,6 +135,7 @@
     ],
     "inventorySource": "A String", # What exchange will provide this inventory (readonly, except on create).
     "publisherProfileId": "A String", # Id of the publisher profile for a given seller. A (seller.account_id, publisher_profile_id) pair uniquely identifies a publisher profile. Buyers can call the PublisherProfiles::List endpoint to get a list of publisher profiles for a given seller.
+    "creatorRole": "A String", # The role that created the offer. Set to BUYER for buyer initiated offers.
     "revisionNumber": "A String", # The revision number of the product. (readonly)
     "seller": { # Information about the seller that created this product (readonly, except on create)
       "subAccountId": "A String", # Optional sub-account id for the seller.
@@ -161,11 +162,14 @@
       "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
         "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
         "fixedPrices": [ # Fixed price for the specified buyer.
-          { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+          { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
             "auctionTier": "A String", # Optional access type for this buyer.
             "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
               "accountId": "A String", # Adx account id of the buyer.
             },
+            "billedBuyer": { # Reference to the buyer that will get billed.
+              "accountId": "A String", # Adx account id of the buyer.
+            },
             "price": { # The specified price
               "pricingType": "A String", # The pricing type for the deal/product.
               "currencyCode": "A String", # The currency code for the price.
@@ -185,18 +189,21 @@
           },
           "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
           "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-          "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+          "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
         },
       },
       "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
       "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
       "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
         "fixedPrices": [ # Fixed price for the specified buyer.
-          { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+          { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
             "auctionTier": "A String", # Optional access type for this buyer.
             "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
               "accountId": "A String", # Adx account id of the buyer.
             },
+            "billedBuyer": { # Reference to the buyer that will get billed.
+              "accountId": "A String", # Adx account id of the buyer.
+            },
             "price": { # The specified price
               "pricingType": "A String", # The pricing type for the deal/product.
               "currencyCode": "A String", # The currency code for the price.
@@ -229,11 +236,14 @@
       "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
         "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
         "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-          { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+          { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
             "auctionTier": "A String", # Optional access type for this buyer.
             "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
               "accountId": "A String", # Adx account id of the buyer.
             },
+            "billedBuyer": { # Reference to the buyer that will get billed.
+              "accountId": "A String", # Adx account id of the buyer.
+            },
             "price": { # The specified price
               "pricingType": "A String", # The pricing type for the deal/product.
               "currencyCode": "A String", # The currency code for the price.
@@ -266,6 +276,7 @@
             "creativeSizeValue": { # The creative size value to exclude/include.
               "skippableAdType": "A String", # The skippable ad type for video size.
               "creativeSizeType": "A String", # The Creative size type.
+              "nativeTemplate": "A String", # The native template for native ad.
               "companionSizes": [ # For video size type, the list of companion sizes.
                 {
                   "width": 42, # The width of the creative.
@@ -298,6 +309,7 @@
             "creativeSizeValue": { # The creative size value to exclude/include.
               "skippableAdType": "A String", # The skippable ad type for video size.
               "creativeSizeType": "A String", # The Creative size type.
+              "nativeTemplate": "A String", # The native template for native ad.
               "companionSizes": [ # For video size type, the list of companion sizes.
                 {
                   "width": 42, # The width of the creative.
@@ -315,12 +327,18 @@
         "key": "A String", # The key representing the shared targeting criterion.
       },
     ],
+    "buyer": { # The buyer that created the offer if this is a buyer initiated offer (readonly, except on create)
+      "accountId": "A String", # Adx account id of the buyer.
+    },
     "lastUpdateTimeMs": "A String", # Time of last update in ms. since epoch (readonly)
     "legacyOfferId": "A String", # Optional legacy offer id if this offer is a preferred deal offer.
     "kind": "adexchangebuyer#product", # Identifies what kind of resource this is. Value: the fixed string "adexchangebuyer#product".
     "marketplacePublisherProfileId": "A String", # Marketplace publisher profile Id. This Id differs from the regular publisher_profile_id in that 1. This is a new id, the old Id will be deprecated in 2017. 2. This id uniquely identifies a publisher profile by itself.
     "name": "A String", # The name for this product as set by the seller. (buyer-readonly)
     "syndicationProduct": "A String", # The syndication product associated with the deal. (readonly, except on create)
+    "billedBuyer": { # The billed buyer corresponding to the buyer that created the offer. (readonly, except on create)
+      "accountId": "A String", # Adx account id of the buyer.
+    },
     "flightStartTimeMs": "A String", # Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)
     "creationTimeMs": "A String", # Creation time in ms. since epoch (readonly)
   }</pre>
@@ -382,6 +400,7 @@
         ],
         "inventorySource": "A String", # What exchange will provide this inventory (readonly, except on create).
         "publisherProfileId": "A String", # Id of the publisher profile for a given seller. A (seller.account_id, publisher_profile_id) pair uniquely identifies a publisher profile. Buyers can call the PublisherProfiles::List endpoint to get a list of publisher profiles for a given seller.
+        "creatorRole": "A String", # The role that created the offer. Set to BUYER for buyer initiated offers.
         "revisionNumber": "A String", # The revision number of the product. (readonly)
         "seller": { # Information about the seller that created this product (readonly, except on create)
           "subAccountId": "A String", # Optional sub-account id for the seller.
@@ -408,11 +427,14 @@
           "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
             "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -432,18 +454,21 @@
               },
               "dfpLineItemId": "A String", # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
               "originalContractedQuantity": "A String", # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
-              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into advertiser's currency without discrepancy.
+              "currencyConversionTimeMs": "A String", # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.
             },
           },
           "sellerTimeZone": "A String", # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
           "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
           "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
             "fixedPrices": [ # Fixed price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -476,11 +501,14 @@
           "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
             "autoOptimizePrivateAuction": True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
             "reservePricePerBuyers": [ # Reserve price for the specified buyer.
-              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
+              { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
                 "auctionTier": "A String", # Optional access type for this buyer.
                 "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                   "accountId": "A String", # Adx account id of the buyer.
                 },
+                "billedBuyer": { # Reference to the buyer that will get billed.
+                  "accountId": "A String", # Adx account id of the buyer.
+                },
                 "price": { # The specified price
                   "pricingType": "A String", # The pricing type for the deal/product.
                   "currencyCode": "A String", # The currency code for the price.
@@ -513,6 +541,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -545,6 +574,7 @@
                 "creativeSizeValue": { # The creative size value to exclude/include.
                   "skippableAdType": "A String", # The skippable ad type for video size.
                   "creativeSizeType": "A String", # The Creative size type.
+                  "nativeTemplate": "A String", # The native template for native ad.
                   "companionSizes": [ # For video size type, the list of companion sizes.
                     {
                       "width": 42, # The width of the creative.
@@ -562,12 +592,18 @@
             "key": "A String", # The key representing the shared targeting criterion.
           },
         ],
+        "buyer": { # The buyer that created the offer if this is a buyer initiated offer (readonly, except on create)
+          "accountId": "A String", # Adx account id of the buyer.
+        },
         "lastUpdateTimeMs": "A String", # Time of last update in ms. since epoch (readonly)
         "legacyOfferId": "A String", # Optional legacy offer id if this offer is a preferred deal offer.
         "kind": "adexchangebuyer#product", # Identifies what kind of resource this is. Value: the fixed string "adexchangebuyer#product".
         "marketplacePublisherProfileId": "A String", # Marketplace publisher profile Id. This Id differs from the regular publisher_profile_id in that 1. This is a new id, the old Id will be deprecated in 2017. 2. This id uniquely identifies a publisher profile by itself.
         "name": "A String", # The name for this product as set by the seller. (buyer-readonly)
         "syndicationProduct": "A String", # The syndication product associated with the deal. (readonly, except on create)
+        "billedBuyer": { # The billed buyer corresponding to the buyer that created the offer. (readonly, except on create)
+          "accountId": "A String", # Adx account id of the buyer.
+        },
         "flightStartTimeMs": "A String", # Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)
         "creationTimeMs": "A String", # Creation time in ms. since epoch (readonly)
       },
diff --git a/docs/dyn/adexchangebuyer_v1_4.proposals.html b/docs/dyn/adexchangebuyer_v1_4.proposals.html
index c061cfd..116c353 100644
--- a/docs/dyn/adexchangebuyer_v1_4.proposals.html
+++ b/docs/dyn/adexchangebuyer_v1_4.proposals.html
@@ -159,7 +159,7 @@
     "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
       "accountId": "A String", # Adx account id of the buyer.
     },
-    "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+    "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
     "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
       {
         "email": "A String", # Email address of the contact.
@@ -236,7 +236,7 @@
         "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
           "accountId": "A String", # Adx account id of the buyer.
         },
-        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
         "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
           {
             "email": "A String", # Email address of the contact.
@@ -309,7 +309,7 @@
         "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
           "accountId": "A String", # Adx account id of the buyer.
         },
-        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
         "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
           {
             "email": "A String", # Email address of the contact.
@@ -395,7 +395,7 @@
   "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
     "accountId": "A String", # Adx account id of the buyer.
   },
-  "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+  "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
   "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
     {
       "email": "A String", # Email address of the contact.
@@ -464,7 +464,7 @@
     "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
       "accountId": "A String", # Adx account id of the buyer.
     },
-    "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+    "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
     "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
       {
         "email": "A String", # Email address of the contact.
@@ -542,7 +542,7 @@
         "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
           "accountId": "A String", # Adx account id of the buyer.
         },
-        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+        "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
         "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
           {
             "email": "A String", # Email address of the contact.
@@ -637,7 +637,7 @@
   "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
     "accountId": "A String", # Adx account id of the buyer.
   },
-  "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+  "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
   "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
     {
       "email": "A String", # Email address of the contact.
@@ -706,7 +706,7 @@
     "billedBuyer": { # Reference to the buyer that will get billed for this proposal. (readonly)
       "accountId": "A String", # Adx account id of the buyer.
     },
-    "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action)
+    "isSetupComplete": True or False, # True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.
     "buyerContacts": [ # Optional contact information of the buyer. (seller-readonly)
       {
         "email": "A String", # Email address of the contact.
diff --git a/docs/dyn/datastore_v1beta2.html b/docs/dyn/adexperiencereport_v1.html
similarity index 83%
copy from docs/dyn/datastore_v1beta2.html
copy to docs/dyn/adexperiencereport_v1.html
index 5744916..3dd5a12 100644
--- a/docs/dyn/datastore_v1beta2.html
+++ b/docs/dyn/adexperiencereport_v1.html
@@ -72,12 +72,17 @@
 
 </style>
 
-<h1><a href="datastore_v1beta2.html">Google Cloud Datastore API</a></h1>
+<h1><a href="adexperiencereport_v1.html">Google Ad Experience Report API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="datastore_v1beta2.datasets.html">datasets()</a></code>
+  <code><a href="adexperiencereport_v1.sites.html">sites()</a></code>
 </p>
-<p class="firstline">Returns the datasets Resource.</p>
+<p class="firstline">Returns the sites Resource.</p>
+
+<p class="toc_element">
+  <code><a href="adexperiencereport_v1.violatingSites.html">violatingSites()</a></code>
+</p>
+<p class="firstline">Returns the violatingSites Resource.</p>
 
 <p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
diff --git a/docs/dyn/adexperiencereport_v1.sites.html b/docs/dyn/adexperiencereport_v1.sites.html
new file mode 100644
index 0000000..da756c3
--- /dev/null
+++ b/docs/dyn/adexperiencereport_v1.sites.html
@@ -0,0 +1,126 @@
+<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="adexperiencereport_v1.html">Google Ad Experience Report API</a> . <a href="adexperiencereport_v1.sites.html">sites</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a summary of the ads rating of a site.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a summary of the ads rating of a site.
+
+Args:
+  name: string, The required site name. It should be a site property registered in Search
+Console. The server will return an error of BAD_REQUEST if this field is
+not filled in. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for GetSiteSummary.
+    "reviewedSite": "A String", # The name of the site reviewed.
+    "desktopSummary": { # Summary of the ads rating of a site for a specific platform. # Summary for the desktop review of the site.
+      "egregiousStatus": "A String", # The status of the site reviewed for egregious ads.
+      "lastChangeTime": "A String", # The last time that the site changed status.
+      "region": [ # The assigned regions for the site and platform.
+        "A String",
+      ],
+      "reportUrl": "A String", # A link that leads to a full ad experience report.
+      "underReview": True or False, # Whether the site is currently under review.
+      "enforcementTime": "A String", # The date on which ad filtering begins.
+      "filterStatus": "A String", # The ad filtering status of the site.
+      "betterAdsStatus": "A String", # The status of the site reviewed for the Better Ads Standards.
+    },
+    "mobileSummary": { # Summary of the ads rating of a site for a specific platform. # Summary for the mobile review of the site.
+      "egregiousStatus": "A String", # The status of the site reviewed for egregious ads.
+      "lastChangeTime": "A String", # The last time that the site changed status.
+      "region": [ # The assigned regions for the site and platform.
+        "A String",
+      ],
+      "reportUrl": "A String", # A link that leads to a full ad experience report.
+      "underReview": True or False, # Whether the site is currently under review.
+      "enforcementTime": "A String", # The date on which ad filtering begins.
+      "filterStatus": "A String", # The ad filtering status of the site.
+      "betterAdsStatus": "A String", # The status of the site reviewed for the Better Ads Standards.
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexperiencereport_v1.violatingSites.html b/docs/dyn/adexperiencereport_v1.violatingSites.html
new file mode 100644
index 0000000..3b87bf2
--- /dev/null
+++ b/docs/dyn/adexperiencereport_v1.violatingSites.html
@@ -0,0 +1,129 @@
+<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="adexperiencereport_v1.html">Google Ad Experience Report API</a> . <a href="adexperiencereport_v1.violatingSites.html">violatingSites</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(x__xgafv=None)</a></code></p>
+<p class="firstline">Lists sites with Ad Experience Report statuses of "Reviewed - out of</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(x__xgafv=None)</code>
+  <pre>Lists sites with Ad Experience Report statuses of "Reviewed - out of
+compliance," "Reviewed - significantly out of compliance," or "Failed
+review - egregious issues found."
+
+Args:
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListViolatingSites.
+    "violatingSites": [ # A list of summaries of violating sites.
+      { # Response message for GetSiteSummary.
+        "reviewedSite": "A String", # The name of the site reviewed.
+        "desktopSummary": { # Summary of the ads rating of a site for a specific platform. # Summary for the desktop review of the site.
+          "egregiousStatus": "A String", # The status of the site reviewed for egregious ads.
+          "lastChangeTime": "A String", # The last time that the site changed status.
+          "region": [ # The assigned regions for the site and platform.
+            "A String",
+          ],
+          "reportUrl": "A String", # A link that leads to a full ad experience report.
+          "underReview": True or False, # Whether the site is currently under review.
+          "enforcementTime": "A String", # The date on which ad filtering begins.
+          "filterStatus": "A String", # The ad filtering status of the site.
+          "betterAdsStatus": "A String", # The status of the site reviewed for the Better Ads Standards.
+        },
+        "mobileSummary": { # Summary of the ads rating of a site for a specific platform. # Summary for the mobile review of the site.
+          "egregiousStatus": "A String", # The status of the site reviewed for egregious ads.
+          "lastChangeTime": "A String", # The last time that the site changed status.
+          "region": [ # The assigned regions for the site and platform.
+            "A String",
+          ],
+          "reportUrl": "A String", # A link that leads to a full ad experience report.
+          "underReview": True or False, # Whether the site is currently under review.
+          "enforcementTime": "A String", # The date on which ad filtering begins.
+          "filterStatus": "A String", # The ad filtering status of the site.
+          "betterAdsStatus": "A String", # The status of the site reviewed for the Better Ads Standards.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/admin_directory_v1.chromeosdevices.html b/docs/dyn/admin_directory_v1.chromeosdevices.html
index bf643c1..a5b9170 100644
--- a/docs/dyn/admin_directory_v1.chromeosdevices.html
+++ b/docs/dyn/admin_directory_v1.chromeosdevices.html
@@ -98,8 +98,8 @@
   <pre>Take action on Chrome OS Device
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  resourceId: string, Immutable id of Chrome OS Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  resourceId: string, Immutable ID of Chrome OS Device (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -116,8 +116,8 @@
   <pre>Retrieve Chrome OS Device
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  deviceId: string, Immutable id of Chrome OS Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  deviceId: string, Immutable ID of Chrome OS Device (required)
   projection: string, Restrict information returned to a set of selected fields.
     Allowed values
       BASIC - Includes only the basic metadata fields (e.g., deviceId, serialNumber, status, and user)
@@ -128,7 +128,7 @@
 
     { # JSON template for Chrome Os Device resource in Directory API.
       "macAddress": "A String", # Chromebook Mac Address on wifi network interface (Read-only)
-      "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+      "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
       "orderNumber": "A String", # Chromebook order number (Read-only)
       "annotatedLocation": "A String", # Address or location of the device as noted by the administrator
       "activeTimeRanges": [ # List of active time ranges (Read-only)
@@ -170,7 +170,7 @@
   <pre>Retrieve all Chrome OS Devices of a customer (paginated)
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   orderBy: string, Column to use for sorting results
     Allowed values
       annotatedLocation - Chromebook location as annotated by the administrator.
@@ -200,7 +200,7 @@
     "chromeosdevices": [ # List of Chrome OS Device objects.
       { # JSON template for Chrome Os Device resource in Directory API.
           "macAddress": "A String", # Chromebook Mac Address on wifi network interface (Read-only)
-          "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+          "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
           "orderNumber": "A String", # Chromebook order number (Read-only)
           "annotatedLocation": "A String", # Address or location of the device as noted by the administrator
           "activeTimeRanges": [ # List of active time ranges (Read-only)
@@ -260,14 +260,14 @@
   <pre>Update Chrome OS Device. This method supports patch semantics.
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  deviceId: string, Immutable id of Chrome OS Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  deviceId: string, Immutable ID of Chrome OS Device (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # JSON template for Chrome Os Device resource in Directory API.
     "macAddress": "A String", # Chromebook Mac Address on wifi network interface (Read-only)
-    "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+    "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
     "orderNumber": "A String", # Chromebook order number (Read-only)
     "annotatedLocation": "A String", # Address or location of the device as noted by the administrator
     "activeTimeRanges": [ # List of active time ranges (Read-only)
@@ -313,7 +313,7 @@
 
     { # JSON template for Chrome Os Device resource in Directory API.
       "macAddress": "A String", # Chromebook Mac Address on wifi network interface (Read-only)
-      "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+      "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
       "orderNumber": "A String", # Chromebook order number (Read-only)
       "annotatedLocation": "A String", # Address or location of the device as noted by the administrator
       "activeTimeRanges": [ # List of active time ranges (Read-only)
@@ -355,14 +355,14 @@
   <pre>Update Chrome OS Device
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  deviceId: string, Immutable id of Chrome OS Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  deviceId: string, Immutable ID of Chrome OS Device (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # JSON template for Chrome Os Device resource in Directory API.
     "macAddress": "A String", # Chromebook Mac Address on wifi network interface (Read-only)
-    "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+    "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
     "orderNumber": "A String", # Chromebook order number (Read-only)
     "annotatedLocation": "A String", # Address or location of the device as noted by the administrator
     "activeTimeRanges": [ # List of active time ranges (Read-only)
@@ -408,7 +408,7 @@
 
     { # JSON template for Chrome Os Device resource in Directory API.
       "macAddress": "A String", # Chromebook Mac Address on wifi network interface (Read-only)
-      "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+      "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
       "orderNumber": "A String", # Chromebook order number (Read-only)
       "annotatedLocation": "A String", # Address or location of the device as noted by the administrator
       "activeTimeRanges": [ # List of active time ranges (Read-only)
diff --git a/docs/dyn/admin_directory_v1.customers.html b/docs/dyn/admin_directory_v1.customers.html
index b7c621a..c6d27b4 100644
--- a/docs/dyn/admin_directory_v1.customers.html
+++ b/docs/dyn/admin_directory_v1.customers.html
@@ -113,7 +113,7 @@
         "addressLine1": "A String", # A customer's physical address. The address can be composed of one to three lines.
         "postalCode": "A String", # The postal code. A postalCode example is a postal zip code such as 10009. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
       },
-      "id": "A String", # The unique ID for the customer's Google account. (Readonly)
+      "id": "A String", # The unique ID for the customer's G Suite account. (Readonly)
     }</pre>
 </div>
 
@@ -145,7 +145,7 @@
       "addressLine1": "A String", # A customer's physical address. The address can be composed of one to three lines.
       "postalCode": "A String", # The postal code. A postalCode example is a postal zip code such as 10009. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
     },
-    "id": "A String", # The unique ID for the customer's Google account. (Readonly)
+    "id": "A String", # The unique ID for the customer's G Suite account. (Readonly)
   }
 
 
@@ -171,7 +171,7 @@
         "addressLine1": "A String", # A customer's physical address. The address can be composed of one to three lines.
         "postalCode": "A String", # The postal code. A postalCode example is a postal zip code such as 10009. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
       },
-      "id": "A String", # The unique ID for the customer's Google account. (Readonly)
+      "id": "A String", # The unique ID for the customer's G Suite account. (Readonly)
     }</pre>
 </div>
 
@@ -203,7 +203,7 @@
       "addressLine1": "A String", # A customer's physical address. The address can be composed of one to three lines.
       "postalCode": "A String", # The postal code. A postalCode example is a postal zip code such as 10009. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
     },
-    "id": "A String", # The unique ID for the customer's Google account. (Readonly)
+    "id": "A String", # The unique ID for the customer's G Suite account. (Readonly)
   }
 
 
@@ -229,7 +229,7 @@
         "addressLine1": "A String", # A customer's physical address. The address can be composed of one to three lines.
         "postalCode": "A String", # The postal code. A postalCode example is a postal zip code such as 10009. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element.
       },
-      "id": "A String", # The unique ID for the customer's Google account. (Readonly)
+      "id": "A String", # The unique ID for the customer's G Suite account. (Readonly)
     }</pre>
 </div>
 
diff --git a/docs/dyn/admin_directory_v1.domainAliases.html b/docs/dyn/admin_directory_v1.domainAliases.html
index 2d68567..21a7c85 100644
--- a/docs/dyn/admin_directory_v1.domainAliases.html
+++ b/docs/dyn/admin_directory_v1.domainAliases.html
@@ -92,7 +92,7 @@
   <pre>Deletes a Domain Alias of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   domainAliasName: string, Name of domain alias to be retrieved. (required)
 </pre>
 </div>
@@ -102,7 +102,7 @@
   <pre>Retrieves a domain alias of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   domainAliasName: string, Name of domain alias to be retrieved. (required)
 
 Returns:
@@ -123,7 +123,7 @@
   <pre>Inserts a Domain alias of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -155,7 +155,7 @@
   <pre>Lists the domain aliases of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   parentDomainName: string, Name of the parent domain for which domain aliases are to be fetched.
 
 Returns:
diff --git a/docs/dyn/admin_directory_v1.domains.html b/docs/dyn/admin_directory_v1.domains.html
index 2939b48..1ebd2f8 100644
--- a/docs/dyn/admin_directory_v1.domains.html
+++ b/docs/dyn/admin_directory_v1.domains.html
@@ -92,7 +92,7 @@
   <pre>Deletes a domain of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   domainName: string, Name of domain to be deleted (required)
 </pre>
 </div>
@@ -102,7 +102,7 @@
   <pre>Retrieves a domain of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   domainName: string, Name of domain to be retrieved (required)
 
 Returns:
@@ -133,7 +133,7 @@
   <pre>Inserts a domain of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -185,7 +185,7 @@
   <pre>Lists the domains of the customer.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/admin_directory_v1.groups.html b/docs/dyn/admin_directory_v1.groups.html
index feb0848..1e2e61d 100644
--- a/docs/dyn/admin_directory_v1.groups.html
+++ b/docs/dyn/admin_directory_v1.groups.html
@@ -190,7 +190,7 @@
   <pre>Retrieve all groups in a domain (paginated)
 
 Args:
-  customer: string, Immutable id of the Google Apps account. In case of multi-domain, to fetch all groups for a customer, fill this field instead of domain.
+  customer: string, Immutable ID of the G Suite account. In case of multi-domain, to fetch all groups for a customer, fill this field instead of domain.
   domain: string, Name of the domain. Fill this field to get groups from only this domain. To return all groups in a multi-domain fill customer field instead.
   pageToken: string, Token to specify next page in the list
   maxResults: integer, Maximum number of results to return. Default is 200
diff --git a/docs/dyn/admin_directory_v1.mobiledevices.html b/docs/dyn/admin_directory_v1.mobiledevices.html
index 6809e8d..7e7d0ca 100644
--- a/docs/dyn/admin_directory_v1.mobiledevices.html
+++ b/docs/dyn/admin_directory_v1.mobiledevices.html
@@ -95,8 +95,8 @@
   <pre>Take action on Mobile Device
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  resourceId: string, Immutable id of Mobile Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  resourceId: string, Immutable ID of Mobile Device (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -112,8 +112,8 @@
   <pre>Delete Mobile Device
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  resourceId: string, Immutable id of Mobile Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  resourceId: string, Immutable ID of Mobile Device (required)
 </pre>
 </div>
 
@@ -122,8 +122,8 @@
   <pre>Retrieve Mobile Device
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
-  resourceId: string, Immutable id of Mobile Device (required)
+  customerId: string, Immutable ID of the G Suite account (required)
+  resourceId: string, Immutable ID of Mobile Device (required)
   projection: string, Restrict information returned to a set of selected fields.
     Allowed values
       BASIC - Includes only the basic metadata fields (e.g., deviceId, model, status, type, and status)
@@ -133,13 +133,13 @@
   An object of the form:
 
     { # JSON template for Mobile Device resource in Directory API.
-    "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+    "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
     "deviceCompromisedStatus": "A String", # Mobile Device compromised status (Read-only)
     "resourceId": "A String", # Unique identifier of Mobile Device (Read-only)
     "defaultLanguage": "A String", # The default locale used on the Mobile Device (Read-only)
     "hardware": "A String", # Mobile Device Hardware (Read-only)
     "userAgent": "A String", # Mobile Device user agent
-    "firstSync": "A String", # Date and time the device was first synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+    "firstSync": "A String", # Date and time the device was first synchronized with the policy settings in the G Suite administrator control panel (Read-only)
     "otherAccountsInfo": [ # List of accounts added on device (Read-only)
       "A String",
     ],
@@ -197,7 +197,7 @@
   <pre>Retrieve all Mobile Devices of a customer (paginated)
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   orderBy: string, Column to use for sorting results
     Allowed values
       deviceId - Mobile Device serial number.
@@ -229,13 +229,13 @@
     "etag": "A String", # ETag of the resource.
     "mobiledevices": [ # List of Mobile Device objects.
       { # JSON template for Mobile Device resource in Directory API.
-        "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+        "lastSync": "A String", # Date and time the device was last synchronized with the policy settings in the G Suite administrator control panel (Read-only)
         "deviceCompromisedStatus": "A String", # Mobile Device compromised status (Read-only)
         "resourceId": "A String", # Unique identifier of Mobile Device (Read-only)
         "defaultLanguage": "A String", # The default locale used on the Mobile Device (Read-only)
         "hardware": "A String", # Mobile Device Hardware (Read-only)
         "userAgent": "A String", # Mobile Device user agent
-        "firstSync": "A String", # Date and time the device was first synchronized with the policy settings in the Google Apps administrator control panel (Read-only)
+        "firstSync": "A String", # Date and time the device was first synchronized with the policy settings in the G Suite administrator control panel (Read-only)
         "otherAccountsInfo": [ # List of accounts added on device (Read-only)
           "A String",
         ],
diff --git a/docs/dyn/admin_directory_v1.notifications.html b/docs/dyn/admin_directory_v1.notifications.html
index dcd604f..c4cfc4d 100644
--- a/docs/dyn/admin_directory_v1.notifications.html
+++ b/docs/dyn/admin_directory_v1.notifications.html
@@ -98,7 +98,7 @@
   <pre>Deletes a notification
 
 Args:
-  customer: string, The unique ID for the customer's Google account. The customerId is also returned as part of the Users resource. (required)
+  customer: string, The unique ID for the customer's G Suite account. The customerId is also returned as part of the Users resource. (required)
   notificationId: string, The unique ID of the notification. (required)
 </pre>
 </div>
@@ -108,7 +108,7 @@
   <pre>Retrieves a notification.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. The customerId is also returned as part of the Users resource. (required)
+  customer: string, The unique ID for the customer's G Suite account. The customerId is also returned as part of the Users resource. (required)
   notificationId: string, The unique ID of the notification. (required)
 
 Returns:
@@ -131,7 +131,7 @@
   <pre>Retrieves a list of notifications.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. (required)
+  customer: string, The unique ID for the customer's G Suite account. (required)
   language: string, The ISO 639-1 code of the language notifications are returned in. The default is English (en).
   pageToken: string, The token to specify the page of results to retrieve.
   maxResults: integer, Maximum number of notifications to return per page. The default is 100.
@@ -178,7 +178,7 @@
   <pre>Updates a notification. This method supports patch semantics.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. (required)
+  customer: string, The unique ID for the customer's G Suite account. (required)
   notificationId: string, The unique ID of the notification. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -215,7 +215,7 @@
   <pre>Updates a notification.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. (required)
+  customer: string, The unique ID for the customer's G Suite account. (required)
   notificationId: string, The unique ID of the notification. (required)
   body: object, The request body. (required)
     The object takes the form of:
diff --git a/docs/dyn/admin_directory_v1.orgunits.html b/docs/dyn/admin_directory_v1.orgunits.html
index e67e1ee..a965340 100644
--- a/docs/dyn/admin_directory_v1.orgunits.html
+++ b/docs/dyn/admin_directory_v1.orgunits.html
@@ -98,7 +98,7 @@
   <pre>Remove Organization Unit
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   orgUnitPath: string, Full path of the organization unit or its Id (required) (repeated)
 </pre>
 </div>
@@ -108,7 +108,7 @@
   <pre>Retrieve Organization Unit
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   orgUnitPath: string, Full path of the organization unit or its Id (required) (repeated)
 
 Returns:
@@ -132,7 +132,7 @@
   <pre>Add Organization Unit
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -170,7 +170,7 @@
   <pre>Retrieve all Organization Units
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   type: string, Whether to return all sub-organizations or just immediate children
     Allowed values
       all - All sub-organization units.
@@ -204,7 +204,7 @@
   <pre>Update Organization Unit. This method supports patch semantics.
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   orgUnitPath: string, Full path of the organization unit or its Id (required) (repeated)
   body: object, The request body. (required)
     The object takes the form of:
@@ -243,7 +243,7 @@
   <pre>Update Organization Unit
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   orgUnitPath: string, Full path of the organization unit or its Id (required) (repeated)
   body: object, The request body. (required)
     The object takes the form of:
diff --git a/docs/dyn/admin_directory_v1.privileges.html b/docs/dyn/admin_directory_v1.privileges.html
index 37b931a..4400fbd 100644
--- a/docs/dyn/admin_directory_v1.privileges.html
+++ b/docs/dyn/admin_directory_v1.privileges.html
@@ -83,7 +83,7 @@
   <pre>Retrieves a paginated list of all privileges for a customer.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/admin_directory_v1.resources.calendars.html b/docs/dyn/admin_directory_v1.resources.calendars.html
index 66fa23c..e644d28 100644
--- a/docs/dyn/admin_directory_v1.resources.calendars.html
+++ b/docs/dyn/admin_directory_v1.resources.calendars.html
@@ -101,7 +101,7 @@
   <pre>Deletes a calendar resource.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
+  customer: string, The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
   calendarResourceId: string, The unique ID of the calendar resource to delete. (required)
 </pre>
 </div>
@@ -111,7 +111,7 @@
   <pre>Retrieves a calendar resource.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
+  customer: string, The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
   calendarResourceId: string, The unique ID of the calendar resource to retrieve. (required)
 
 Returns:
@@ -133,7 +133,7 @@
   <pre>Inserts a calendar resource.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
+  customer: string, The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -167,7 +167,7 @@
   <pre>Retrieves a list of calendar resources for an account.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
+  customer: string, The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
   pageToken: string, Token to specify the next page in the list.
   maxResults: integer, Maximum number of results to return.
 
@@ -211,7 +211,7 @@
   <pre>Updates a calendar resource. This method supports patch semantics.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
+  customer: string, The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
   calendarResourceId: string, The unique ID of the calendar resource to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -246,7 +246,7 @@
   <pre>Updates a calendar resource.
 
 Args:
-  customer: string, The unique ID for the customer's Google account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
+  customer: string, The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID. (required)
   calendarResourceId: string, The unique ID of the calendar resource to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
diff --git a/docs/dyn/admin_directory_v1.roleAssignments.html b/docs/dyn/admin_directory_v1.roleAssignments.html
index 5b3979d..9b6d8de 100644
--- a/docs/dyn/admin_directory_v1.roleAssignments.html
+++ b/docs/dyn/admin_directory_v1.roleAssignments.html
@@ -95,7 +95,7 @@
   <pre>Deletes a role assignment.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   roleAssignmentId: string, Immutable ID of the role assignment. (required)
 </pre>
 </div>
@@ -105,7 +105,7 @@
   <pre>Retrieve a role assignment.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   roleAssignmentId: string, Immutable ID of the role assignment. (required)
 
 Returns:
@@ -129,7 +129,7 @@
   <pre>Creates a role assignment.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -167,7 +167,7 @@
   <pre>Retrieves a paginated list of all roleAssignments.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   pageToken: string, Token to specify the next page in the list.
   roleId: string, Immutable ID of a role. If included in the request, returns only role assignments containing this role ID.
   maxResults: integer, Maximum number of results to return.
diff --git a/docs/dyn/admin_directory_v1.roles.html b/docs/dyn/admin_directory_v1.roles.html
index 9c74b4e..7ac231d 100644
--- a/docs/dyn/admin_directory_v1.roles.html
+++ b/docs/dyn/admin_directory_v1.roles.html
@@ -101,7 +101,7 @@
   <pre>Deletes a role.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   roleId: string, Immutable ID of the role. (required)
 </pre>
 </div>
@@ -111,7 +111,7 @@
   <pre>Retrieves a role.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   roleId: string, Immutable ID of the role. (required)
 
 Returns:
@@ -139,7 +139,7 @@
   <pre>Creates a role.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -185,7 +185,7 @@
   <pre>Retrieves a paginated list of all the roles in a domain.
 
 Args:
-  customer: string, Immutable id of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   pageToken: string, Token to specify the next page in the list.
   maxResults: integer, Maximum number of results to return.
 
@@ -235,7 +235,7 @@
   <pre>Updates a role. This method supports patch semantics.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   roleId: string, Immutable ID of the role. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -282,7 +282,7 @@
   <pre>Updates a role.
 
 Args:
-  customer: string, Immutable ID of the Google Apps account. (required)
+  customer: string, Immutable ID of the G Suite account. (required)
   roleId: string, Immutable ID of the role. (required)
   body: object, The request body. (required)
     The object takes the form of:
diff --git a/docs/dyn/admin_directory_v1.schemas.html b/docs/dyn/admin_directory_v1.schemas.html
index c364283..eb5e55b 100644
--- a/docs/dyn/admin_directory_v1.schemas.html
+++ b/docs/dyn/admin_directory_v1.schemas.html
@@ -98,7 +98,7 @@
   <pre>Delete schema
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   schemaKey: string, Name or immutable Id of the schema (required)
 </pre>
 </div>
@@ -108,7 +108,7 @@
   <pre>Retrieve schema
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   schemaKey: string, Name or immutable Id of the schema (required)
 
 Returns:
@@ -143,7 +143,7 @@
   <pre>Create schema.
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -203,7 +203,7 @@
   <pre>Retrieve all schemas for a customer
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
 
 Returns:
   An object of the form:
@@ -243,7 +243,7 @@
   <pre>Update schema. This method supports patch semantics.
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   schemaKey: string, Name or immutable Id of the schema. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -304,7 +304,7 @@
   <pre>Update schema
 
 Args:
-  customerId: string, Immutable id of the Google Apps account (required)
+  customerId: string, Immutable ID of the G Suite account (required)
   schemaKey: string, Name or immutable Id of the schema. (required)
   body: object, The request body. (required)
     The object takes the form of:
diff --git a/docs/dyn/admin_directory_v1.users.html b/docs/dyn/admin_directory_v1.users.html
index c52841b..05087ca 100644
--- a/docs/dyn/admin_directory_v1.users.html
+++ b/docs/dyn/admin_directory_v1.users.html
@@ -148,6 +148,7 @@
       "addresses": "",
       "posixAccounts": "",
       "phones": "",
+      "locations": "",
       "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
       "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
       "suspended": True or False, # Indicates if user is suspended
@@ -192,7 +193,7 @@
         "familyName": "A String", # Last Name
       },
       "notes": "",
-      "creationTime": "A String", # User's Google account creation time. (Read-only)
+      "creationTime": "A String", # User's G Suite account creation time. (Read-only)
       "websites": "",
       "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
       "customerId": "A String", # CustomerId of User (Read-only)
@@ -211,6 +212,7 @@
     "addresses": "",
     "posixAccounts": "",
     "phones": "",
+    "locations": "",
     "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
     "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
     "suspended": True or False, # Indicates if user is suspended
@@ -255,7 +257,7 @@
       "familyName": "A String", # Last Name
     },
     "notes": "",
-    "creationTime": "A String", # User's Google account creation time. (Read-only)
+    "creationTime": "A String", # User's G Suite account creation time. (Read-only)
     "websites": "",
     "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
     "customerId": "A String", # CustomerId of User (Read-only)
@@ -269,6 +271,7 @@
       "addresses": "",
       "posixAccounts": "",
       "phones": "",
+      "locations": "",
       "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
       "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
       "suspended": True or False, # Indicates if user is suspended
@@ -313,7 +316,7 @@
         "familyName": "A String", # Last Name
       },
       "notes": "",
-      "creationTime": "A String", # User's Google account creation time. (Read-only)
+      "creationTime": "A String", # User's G Suite account creation time. (Read-only)
       "websites": "",
       "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
       "customerId": "A String", # CustomerId of User (Read-only)
@@ -351,7 +354,7 @@
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
   maxResults: integer, Maximum number of results to return. Default is 100. Max allowed is 500
-  customer: string, Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.
+  customer: string, Immutable ID of the G Suite account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.
   customFieldMask: string, Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.
   viewType: string, Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.
     Allowed values
@@ -371,6 +374,7 @@
           "addresses": "",
           "posixAccounts": "",
           "phones": "",
+          "locations": "",
           "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
           "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
           "suspended": True or False, # Indicates if user is suspended
@@ -415,7 +419,7 @@
             "familyName": "A String", # Last Name
           },
           "notes": "",
-          "creationTime": "A String", # User's Google account creation time. (Read-only)
+          "creationTime": "A String", # User's G Suite account creation time. (Read-only)
           "websites": "",
           "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
           "customerId": "A String", # CustomerId of User (Read-only)
@@ -467,6 +471,7 @@
     "addresses": "",
     "posixAccounts": "",
     "phones": "",
+    "locations": "",
     "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
     "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
     "suspended": True or False, # Indicates if user is suspended
@@ -511,7 +516,7 @@
       "familyName": "A String", # Last Name
     },
     "notes": "",
-    "creationTime": "A String", # User's Google account creation time. (Read-only)
+    "creationTime": "A String", # User's G Suite account creation time. (Read-only)
     "websites": "",
     "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
     "customerId": "A String", # CustomerId of User (Read-only)
@@ -525,6 +530,7 @@
       "addresses": "",
       "posixAccounts": "",
       "phones": "",
+      "locations": "",
       "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
       "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
       "suspended": True or False, # Indicates if user is suspended
@@ -569,7 +575,7 @@
         "familyName": "A String", # Last Name
       },
       "notes": "",
-      "creationTime": "A String", # User's Google account creation time. (Read-only)
+      "creationTime": "A String", # User's G Suite account creation time. (Read-only)
       "websites": "",
       "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
       "customerId": "A String", # CustomerId of User (Read-only)
@@ -605,6 +611,7 @@
     "addresses": "",
     "posixAccounts": "",
     "phones": "",
+    "locations": "",
     "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
     "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
     "suspended": True or False, # Indicates if user is suspended
@@ -649,7 +656,7 @@
       "familyName": "A String", # Last Name
     },
     "notes": "",
-    "creationTime": "A String", # User's Google account creation time. (Read-only)
+    "creationTime": "A String", # User's G Suite account creation time. (Read-only)
     "websites": "",
     "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
     "customerId": "A String", # CustomerId of User (Read-only)
@@ -663,6 +670,7 @@
       "addresses": "",
       "posixAccounts": "",
       "phones": "",
+      "locations": "",
       "isDelegatedAdmin": True or False, # Boolean indicating if the user is delegated admin (Read-only)
       "thumbnailPhotoEtag": "A String", # ETag of the user's photo (Read-only)
       "suspended": True or False, # Indicates if user is suspended
@@ -707,7 +715,7 @@
         "familyName": "A String", # Last Name
       },
       "notes": "",
-      "creationTime": "A String", # User's Google account creation time. (Read-only)
+      "creationTime": "A String", # User's G Suite account creation time. (Read-only)
       "websites": "",
       "changePasswordAtNextLogin": True or False, # Boolean indicating if the user should change password in next login
       "customerId": "A String", # CustomerId of User (Read-only)
@@ -763,7 +771,7 @@
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
   maxResults: integer, Maximum number of results to return. Default is 100. Max allowed is 500
-  customer: string, Immutable id of the Google Apps account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.
+  customer: string, Immutable ID of the G Suite account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.
   customFieldMask: string, Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.
   viewType: string, Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.
     Allowed values
diff --git a/docs/dyn/analyticsreporting_v4.reports.html b/docs/dyn/analyticsreporting_v4.reports.html
index 5b36f8f..f9e92f7 100644
--- a/docs/dyn/analyticsreporting_v4.reports.html
+++ b/docs/dyn/analyticsreporting_v4.reports.html
@@ -91,41 +91,6 @@
         # There can be a maximum of 5 requests. All requests should have the same
         # `dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.
       { # The main request class which specifies the Reporting API request.
-        "dateRanges": [ # Date ranges in the request. The request can have a maximum of 2 date
-            # ranges. The response will contain a set of metric values for each
-            # combination of the dimensions for each date range in the request. So, if
-            # there are two date ranges, there will be two set of metric values, one for
-            # the original date range and one for the second date range.
-            # The `reportRequest.dateRanges` field should not be specified for cohorts
-            # or Lifetime value requests.
-            # If a date range is not provided, the default date range is (startDate:
-            # current date - 7 days, endDate: current date - 1 day). Every
-            # [ReportRequest](#ReportRequest) within a `batchGet` method must
-            # contain the same `dateRanges` definition.
-          { # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
-              # The start and end dates are specified in
-              # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
-            "startDate": "A String", # The start date for the query in the format `YYYY-MM-DD`.
-            "endDate": "A String", # The end date for the query in the format `YYYY-MM-DD`.
-          },
-        ],
-        "hideTotals": True or False, # If set to true, hides the total of all metrics for all the matching rows,
-            # for every date range. The default false and will return the totals.
-        "filtersExpression": "A String", # Dimension or metric filters that restrict the data returned for your
-            # request. To use the `filtersExpression`, supply a dimension or metric on
-            # which to filter, followed by the filter expression. For example, the
-            # following expression selects `ga:browser` dimension which starts with
-            # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
-            # and metric filters, see
-            # [Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).
-        "pageSize": 42, # Page size is for paging and specifies the maximum number of returned rows.
-            # Page size should be >= 0. A query returns the default of 1,000 rows.
-            # The Analytics Core Reporting API returns a maximum of 10,000 rows per
-            # request, no matter how many you ask for. It can also return fewer rows
-            # than requested, if there aren't as many dimension segments as you expect.
-            # For instance, there are fewer than 300 possible values for `ga:country`,
-            # so when segmenting only by country, you can't get more than 300 rows,
-            # even if you set `pageSize` to a higher value.
         "pivots": [ # The pivot definitions. Requests can have a maximum of 2 pivots.
           { # The Pivot describes the pivot section in the request.
               # The Pivot helps rearrange the information in the table for certain reports
@@ -152,6 +117,8 @@
                     # `INTEGER`.
               },
             ],
+            "maxGroupCount": 42, # Specifies the maximum number of groups to return.
+                # The default value is 10, also the maximum value is 1,000.
             "dimensions": [ # A list of dimensions to show as pivot columns. A Pivot can have a maximum
                 # of 4 dimensions. Pivot dimensions are part of the restriction on the
                 # total number of dimensions allowed in the request.
@@ -195,8 +162,6 @@
                 ],
               },
             ],
-            "maxGroupCount": 42, # Specifies the maximum number of groups to return.
-                # The default value is 10, also the maximum value is 1,000.
             "dimensionFilterClauses": [ # DimensionFilterClauses are logically combined with an `AND` operator: only
                 # data that is included by all these DimensionFilterClauses contributes to
                 # the values in this pivot region. Dimension filters can be used to restrict
@@ -241,20 +206,97 @@
                 # included in the response.
           },
         ],
+        "hideTotals": True or False, # If set to true, hides the total of all metrics for all the matching rows,
+            # for every date range. The default false and will return the totals.
+        "metrics": [ # The metrics requested.
+            # Requests must specify at least one metric. Requests can have a
+            # total of 10 metrics.
+          { # [Metrics](https://support.google.com/analytics/answer/1033861)
+              # are the quantitative measurements. For example, the metric `ga:users`
+              # indicates the total number of users for the requested time period.
+            "alias": "A String", # An alias for the metric expression is an alternate name for the
+                # expression. The alias can be used for filtering and sorting. This field
+                # is optional and is useful if the expression is not a single metric but
+                # a complex expression which cannot be used in filtering and sorting.
+                # The alias is also used in the response column header.
+            "expression": "A String", # A metric expression in the request. An expression is constructed from one
+                # or more metrics and numbers. Accepted operators include: Plus (+), Minus
+                # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
+                # Positive cardinal numbers (0-9), can include decimals and is limited to
+                # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
+                # metric expression is just a single metric name like `ga:users`.
+                # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
+                # will result in unexpected results.
+            "formattingType": "A String", # Specifies how the metric expression should be formatted, for example
+                # `INTEGER`.
+          },
+        ],
+        "dimensions": [ # The dimensions requested.
+            # Requests can have a total of 7 dimensions.
+          { # [Dimensions](https://support.google.com/analytics/answer/1033861)
+              # are attributes of your data. For example, the dimension `ga:city`
+              # indicates the city, for example, "Paris" or "New York", from which
+              # a session originates.
+            "name": "A String", # Name of the dimension to fetch, for example `ga:browser`.
+            "histogramBuckets": [ # If non-empty, we place dimension values into buckets after string to
+                # int64. Dimension values that are not the string representation of an
+                # integral value will be converted to zero.  The bucket values have to be in
+                # increasing order.  Each bucket is closed on the lower end, and open on the
+                # upper end. The "first" bucket includes all values less than the first
+                # boundary, the "last" bucket includes all values up to infinity. Dimension
+                # values that fall in a bucket get transformed to a new dimension value. For
+                # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
+                # following buckets:
+                #
+                # - bucket #1: values < 0, dimension value "<0"
+                # - bucket #2: values in [0,1), dimension value "0"
+                # - bucket #3: values in [1,3), dimension value "1-2"
+                # - bucket #4: values in [3,4), dimension value "3"
+                # - bucket #5: values in [4,7), dimension value "4-6"
+                # - bucket #6: values >= 7, dimension value "7+"
+                #
+                # NOTE: If you are applying histogram mutation on any dimension, and using
+                # that dimension in sort, you will want to use the sort type
+                # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
+                # will be sorted according to dictionary
+                # (lexicographic) order. For example the ascending dictionary order is:
+                #
+                #    "<50", "1001+", "121-1000", "50-120"
+                #
+                # And the ascending `HISTOGRAM_BUCKET` order is:
+                #
+                #    "<50", "50-120", "121-1000", "1001+"
+                #
+                # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
+                # for a histogram-mutated dimension.
+              "A String",
+            ],
+          },
+        ],
+        "pageSize": 42, # Page size is for paging and specifies the maximum number of returned rows.
+            # Page size should be >= 0. A query returns the default of 1,000 rows.
+            # The Analytics Core Reporting API returns a maximum of 10,000 rows per
+            # request, no matter how many you ask for. It can also return fewer rows
+            # than requested, if there aren't as many dimension segments as you expect.
+            # For instance, there are fewer than 300 possible values for `ga:country`,
+            # so when segmenting only by country, you can't get more than 300 rows,
+            # even if you set `pageSize` to a higher value.
         "includeEmptyRows": True or False, # If set to false, the response does not include rows if all the retrieved
             # metrics are equal to zero. The default is false which will exclude these
             # rows.
+        "filtersExpression": "A String", # Dimension or metric filters that restrict the data returned for your
+            # request. To use the `filtersExpression`, supply a dimension or metric on
+            # which to filter, followed by the filter expression. For example, the
+            # following expression selects `ga:browser` dimension which starts with
+            # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
+            # and metric filters, see
+            # [Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).
         "viewId": "A String", # The Analytics
             # [view ID](https://support.google.com/analytics/answer/1009618)
             # from which to retrieve data. Every [ReportRequest](#ReportRequest)
             # within a `batchGet` method must contain the same `viewId`.
-        "samplingLevel": "A String", # The desired report
-            # [sample](https://support.google.com/analytics/answer/2637192) size.
-            # If the the `samplingLevel` field is unspecified the `DEFAULT` sampling
-            # level is used. Every [ReportRequest](#ReportRequest) within a
-            # `batchGet` method must contain the same `samplingLevel` definition. See
-            # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
-            #  for details.
+        "hideValueRanges": True or False, # If set to true, hides the minimum and maximum across all matching rows.
+            # The default is false and the value ranges are returned.
         "orderBys": [ # Sort order on output rows. To compare two rows, the elements of the
             # following are applied in order until a difference is found.  All date
             # ranges in the output get the same row order.
@@ -341,35 +383,35 @@
               # - The `viewId` must be an
               #   [app view ID](https://support.google.com/analytics/answer/2649553#WebVersusAppViews)
         },
-        "metrics": [ # The metrics requested.
-            # Requests must specify at least one metric. Requests can have a
-            # total of 10 metrics.
-          { # [Metrics](https://support.google.com/analytics/answer/1033861)
-              # are the quantitative measurements. For example, the metric `ga:users`
-              # indicates the total number of users for the requested time period.
-            "alias": "A String", # An alias for the metric expression is an alternate name for the
-                # expression. The alias can be used for filtering and sorting. This field
-                # is optional and is useful if the expression is not a single metric but
-                # a complex expression which cannot be used in filtering and sorting.
-                # The alias is also used in the response column header.
-            "expression": "A String", # A metric expression in the request. An expression is constructed from one
-                # or more metrics and numbers. Accepted operators include: Plus (+), Minus
-                # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
-                # Positive cardinal numbers (0-9), can include decimals and is limited to
-                # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
-                # metric expression is just a single metric name like `ga:users`.
-                # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
-                # will result in unexpected results.
-            "formattingType": "A String", # Specifies how the metric expression should be formatted, for example
-                # `INTEGER`.
+        "dateRanges": [ # Date ranges in the request. The request can have a maximum of 2 date
+            # ranges. The response will contain a set of metric values for each
+            # combination of the dimensions for each date range in the request. So, if
+            # there are two date ranges, there will be two set of metric values, one for
+            # the original date range and one for the second date range.
+            # The `reportRequest.dateRanges` field should not be specified for cohorts
+            # or Lifetime value requests.
+            # If a date range is not provided, the default date range is (startDate:
+            # current date - 7 days, endDate: current date - 1 day). Every
+            # [ReportRequest](#ReportRequest) within a `batchGet` method must
+            # contain the same `dateRanges` definition.
+          { # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
+              # The start and end dates are specified in
+              # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
+            "startDate": "A String", # The start date for the query in the format `YYYY-MM-DD`.
+            "endDate": "A String", # The end date for the query in the format `YYYY-MM-DD`.
           },
         ],
         "pageToken": "A String", # A continuation token to get the next page of the results. Adding this to
             # the request will return the rows after the pageToken. The pageToken should
             # be the value returned in the nextPageToken parameter in the response to
             # the GetReports request.
-        "hideValueRanges": True or False, # If set to true, hides the minimum and maximum across all matching rows.
-            # The default is false and the value ranges are returned.
+        "samplingLevel": "A String", # The desired report
+            # [sample](https://support.google.com/analytics/answer/2637192) size.
+            # If the the `samplingLevel` field is unspecified the `DEFAULT` sampling
+            # level is used. Every [ReportRequest](#ReportRequest) within a
+            # `batchGet` method must contain the same `samplingLevel` definition. See
+            # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
+            #  for details.
         "dimensionFilterClauses": [ # The dimension filter clauses for filtering Dimension Values. They are
             # logically combined with the `AND` operator. Note that filtering occurs
             # before any dimensions are aggregated, so that the returned metrics
@@ -502,8 +544,6 @@
                         # be combined with special sequence operators.
                         # by one or more dimension/metric conditions. Multiple steps can be combined
                         # with special sequence operators.
-                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
-                          # the date range).
                       "segmentSequenceSteps": [ # The list of steps in the sequence.
                         { # A segment sequence definition.
                           "matchType": "A String", # Specifies if the step immediately precedes or can be any time before the
@@ -545,6 +585,8 @@
                           ],
                         },
                       ],
+                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
+                          # the date range).
                     },
                   },
                 ],
@@ -621,8 +663,6 @@
                         # be combined with special sequence operators.
                         # by one or more dimension/metric conditions. Multiple steps can be combined
                         # with special sequence operators.
-                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
-                          # the date range).
                       "segmentSequenceSteps": [ # The list of steps in the sequence.
                         { # A segment sequence definition.
                           "matchType": "A String", # Specifies if the step immediately precedes or can be any time before the
@@ -664,6 +704,8 @@
                           ],
                         },
                       ],
+                      "firstStepShouldMatchFirstHit": True or False, # If set, first step condition must match the first hit of the visitor (in
+                          # the date range).
                     },
                   },
                 ],
@@ -672,48 +714,6 @@
             "segmentId": "A String", # The segment ID of a built-in or custom segment, for example `gaid::-3`.
           },
         ],
-        "dimensions": [ # The dimensions requested.
-            # Requests can have a total of 7 dimensions.
-          { # [Dimensions](https://support.google.com/analytics/answer/1033861)
-              # are attributes of your data. For example, the dimension `ga:city`
-              # indicates the city, for example, "Paris" or "New York", from which
-              # a session originates.
-            "name": "A String", # Name of the dimension to fetch, for example `ga:browser`.
-            "histogramBuckets": [ # If non-empty, we place dimension values into buckets after string to
-                # int64. Dimension values that are not the string representation of an
-                # integral value will be converted to zero.  The bucket values have to be in
-                # increasing order.  Each bucket is closed on the lower end, and open on the
-                # upper end. The "first" bucket includes all values less than the first
-                # boundary, the "last" bucket includes all values up to infinity. Dimension
-                # values that fall in a bucket get transformed to a new dimension value. For
-                # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
-                # following buckets:
-                #
-                # - bucket #1: values < 0, dimension value "<0"
-                # - bucket #2: values in [0,1), dimension value "0"
-                # - bucket #3: values in [1,3), dimension value "1-2"
-                # - bucket #4: values in [3,4), dimension value "3"
-                # - bucket #5: values in [4,7), dimension value "4-6"
-                # - bucket #6: values >= 7, dimension value "7+"
-                #
-                # NOTE: If you are applying histogram mutation on any dimension, and using
-                # that dimension in sort, you will want to use the sort type
-                # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
-                # will be sorted according to dictionary
-                # (lexicographic) order. For example the ascending dictionary order is:
-                #
-                #    "<50", "1001+", "121-1000", "50-120"
-                #
-                # And the ascending `HISTOGRAM_BUCKET` order is:
-                #
-                #    "<50", "50-120", "121-1000", "1001+"
-                #
-                # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
-                # for a histogram-mutated dimension.
-              "A String",
-            ],
-          },
-        ],
       },
     ],
   }
diff --git a/docs/dyn/androidenterprise_v1.collections.html b/docs/dyn/androidenterprise_v1.collections.html
deleted file mode 100644
index 6c72708..0000000
--- a/docs/dyn/androidenterprise_v1.collections.html
+++ /dev/null
@@ -1,290 +0,0 @@
-<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="androidenterprise_v1.html">Google Play EMM API</a> . <a href="androidenterprise_v1.collections.html">collections</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(enterpriseId, collectionId)</a></code></p>
-<p class="firstline">Deletes a collection.</p>
-<p class="toc_element">
-  <code><a href="#get">get(enterpriseId, collectionId)</a></code></p>
-<p class="firstline">Retrieves the details of a collection.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(enterpriseId, body)</a></code></p>
-<p class="firstline">Creates a new collection.</p>
-<p class="toc_element">
-  <code><a href="#list">list(enterpriseId)</a></code></p>
-<p class="firstline">Retrieves the IDs of all the collections for an enterprise.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(enterpriseId, collectionId, body)</a></code></p>
-<p class="firstline">Updates a collection. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(enterpriseId, collectionId, body)</a></code></p>
-<p class="firstline">Updates a collection.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(enterpriseId, collectionId)</code>
-  <pre>Deletes a collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(enterpriseId, collectionId)</code>
-  <pre>Retrieves the details of a collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-
-Returns:
-  An object of the form:
-
-    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-        #
-        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-        "A String",
-      ],
-      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-          #
-          # The "allUsers" setting is deprecated, and will be removed.
-      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(enterpriseId, body)</code>
-  <pre>Creates a new collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-      # 
-      # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-    "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-    "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-      "A String",
-    ],
-    "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-    "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-        # 
-        # The "allUsers" setting is deprecated, and will be removed.
-    "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-        #
-        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-        "A String",
-      ],
-      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-          #
-          # The "allUsers" setting is deprecated, and will be removed.
-      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(enterpriseId)</code>
-  <pre>Retrieves the IDs of all the collections for an enterprise.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-
-Returns:
-  An object of the form:
-
-    { # The collection resources for the enterprise.
-    "kind": "androidenterprise#collectionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collectionsListResponse".
-    "collection": [ # An ordered collection of products which can be made visible on the Google Play Store to a selected group of users.
-      { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-            #
-            # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-          "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-          "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-            "A String",
-          ],
-          "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-          "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-              #
-              # The "allUsers" setting is deprecated, and will be removed.
-          "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(enterpriseId, collectionId, body)</code>
-  <pre>Updates a collection. This method supports patch semantics.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-      # 
-      # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-    "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-    "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-      "A String",
-    ],
-    "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-    "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-        # 
-        # The "allUsers" setting is deprecated, and will be removed.
-    "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-        #
-        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-        "A String",
-      ],
-      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-          #
-          # The "allUsers" setting is deprecated, and will be removed.
-      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(enterpriseId, collectionId, body)</code>
-  <pre>Updates a collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-      # 
-      # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-    "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-    "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-      "A String",
-    ],
-    "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-    "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-        # 
-        # The "allUsers" setting is deprecated, and will be removed.
-    "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
-        #
-        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
-      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
-      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
-        "A String",
-      ],
-      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
-      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the "Collectionviewers" API. With the launch of the "setAvailableProductSet" API, this property should always be set to "viewersOnly", as the "allUsers" option will bypass the "availableProductSet" for all users within a domain.
-          #
-          # The "allUsers" setting is deprecated, and will be removed.
-      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.collectionviewers.html b/docs/dyn/androidenterprise_v1.collectionviewers.html
deleted file mode 100644
index 908f915..0000000
--- a/docs/dyn/androidenterprise_v1.collectionviewers.html
+++ /dev/null
@@ -1,238 +0,0 @@
-<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="androidenterprise_v1.html">Google Play EMM API</a> . <a href="androidenterprise_v1.collectionviewers.html">collectionviewers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(enterpriseId, collectionId, userId)</a></code></p>
-<p class="firstline">Removes the user from the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.</p>
-<p class="toc_element">
-  <code><a href="#get">get(enterpriseId, collectionId, userId)</a></code></p>
-<p class="firstline">Retrieves the ID of the user if they have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.</p>
-<p class="toc_element">
-  <code><a href="#list">list(enterpriseId, collectionId)</a></code></p>
-<p class="firstline">Retrieves the IDs of the users who have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(enterpriseId, collectionId, userId, body)</a></code></p>
-<p class="firstline">Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(enterpriseId, collectionId, userId, body)</a></code></p>
-<p class="firstline">Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(enterpriseId, collectionId, userId)</code>
-  <pre>Removes the user from the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-  userId: string, The ID of the user. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(enterpriseId, collectionId, userId)</code>
-  <pre>Retrieves the ID of the user if they have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-  userId: string, The ID of the user. (required)
-
-Returns:
-  An object of the form:
-
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(enterpriseId, collectionId)</code>
-  <pre>Retrieves the IDs of the users who have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-
-Returns:
-  An object of the form:
-
-    { # The user resources for the collection.
-    "kind": "androidenterprise#collectionViewersListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collectionViewersListResponse".
-    "user": [ # A user of an enterprise.
-      { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-            # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-            # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-          "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-          "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-          "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-          "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-          "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-          "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-          "id": "A String", # The unique ID for the user.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(enterpriseId, collectionId, userId, body)</code>
-  <pre>Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection. This method supports patch semantics.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-  userId: string, The ID of the user. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-      # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-      # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-    "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-    "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-    "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-    "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-    "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-    "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-    "id": "A String", # The unique ID for the user.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(enterpriseId, collectionId, userId, body)</code>
-  <pre>Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.
-
-Args:
-  enterpriseId: string, The ID of the enterprise. (required)
-  collectionId: string, The ID of the collection. (required)
-  userId: string, The ID of the user. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-      # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-      # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-    "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-    "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-    "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-    "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-    "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-    "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-    "id": "A String", # The unique ID for the user.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A Users resource represents an account associated with an enterprise. The account may be specific to a device or to an individual user (who can then use the account across multiple devices). The account may provide access to Google Play for Work only, or to other Google services, depending on the identity model:
-        # - Google managed domain identity model requires synchronization to Google account sources (via primaryEmail).
-        # - Android for Work Accounts identity model provides a dynamic means for enterprises to create user or device accounts as needed. These accounts provide access to Google Play for Work only.
-      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
-      "displayName": "A String", # The name that will appear in user interfaces. Setting this property is optional when creating EMM-managed users. If you do set this property, use something generic about the organization (such as "Example, Inc.") or your name (as EMM). Not used for Google-managed user accounts.
-      "accountIdentifier": "A String", # A unique identifier you create for this user, such as "user342" or "asset#44418". Do not use personally identifiable information (PII) for this property. Must always be set for EMM-managed users. Not set for Google-managed users.
-      "managementType": "A String", # The entity that manages the user. With googleManaged users, the source of truth is Google so EMMs have to make sure a Google Account exists for the user. With emmManaged users, the EMM is in charge.
-      "primaryEmail": "A String", # The user's primary email address, for example, "jsmith@example.com". Will always be set for Google managed users and not set for EMM managed users.
-      "accountType": "A String", # The type of account that this user represents. A userAccount can be installed on multiple devices, but a deviceAccount is specific to a single device. An EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount), but a Google-managed user (googleManaged) is always a userAccount.
-      "id": "A String", # The unique ID for the user.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.devices.html b/docs/dyn/androidenterprise_v1.devices.html
index b14c852..a158f28 100644
--- a/docs/dyn/androidenterprise_v1.devices.html
+++ b/docs/dyn/androidenterprise_v1.devices.html
@@ -106,9 +106,9 @@
     "managementType": "A String", # Identifies the extent to which the device is controlled by a managed Google Play EMM in various deployment configurations.
         #
         # Possible values include:
-        # - "managedDevice", a device that has the EMM's device policy controller (DPC) as the device owner,
-        # - "managedProfile", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC,
-        # - "containerApp", a device running the container App. The container App is managed by the DPC,
+        # - "managedDevice", a device that has the EMM's device policy controller (DPC) as the device owner.
+        # - "managedProfile", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC.
+        # - "containerApp", no longer used (deprecated).
         # - "unmanagedProfile", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use managed Google Play, but the profile is itself not owned by a DPC.
     "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string. For example, "123456789abcdef0".
   }</pre>
@@ -152,9 +152,9 @@
         "managementType": "A String", # Identifies the extent to which the device is controlled by a managed Google Play EMM in various deployment configurations.
             #
             # Possible values include:
-            # - "managedDevice", a device that has the EMM's device policy controller (DPC) as the device owner,
-            # - "managedProfile", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC,
-            # - "containerApp", a device running the container App. The container App is managed by the DPC,
+            # - "managedDevice", a device that has the EMM's device policy controller (DPC) as the device owner.
+            # - "managedProfile", a device that has a profile managed by the DPC (DPC is profile owner) in addition to a separate, personal profile that is unavailable to the DPC.
+            # - "containerApp", no longer used (deprecated).
             # - "unmanagedProfile", a device that has been allowed (by the domain's admin, using the Admin Console to enable the privilege) to use managed Google Play, but the profile is itself not owned by a DPC.
         "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string. For example, "123456789abcdef0".
       },
diff --git a/docs/dyn/androidenterprise_v1.enterprises.html b/docs/dyn/androidenterprise_v1.enterprises.html
index 78800f1..d86087b 100644
--- a/docs/dyn/androidenterprise_v1.enterprises.html
+++ b/docs/dyn/androidenterprise_v1.enterprises.html
@@ -100,7 +100,7 @@
 <p class="firstline">Returns a service account and credentials. The service account can be bound to the enterprise by calling setAccount. The service account is unique to this enterprise and EMM, and will be deleted if the enterprise is unbound. The credentials contain private key data and are not stored server-side.</p>
 <p class="toc_element">
   <code><a href="#getStoreLayout">getStoreLayout(enterpriseId)</a></code></p>
-<p class="firstline">Returns the store layout for the enterprise. If the store layout has not been set, or if the store layout has no homepageId set, returns a NOT_FOUND error.</p>
+<p class="firstline">Returns the store layout for the enterprise. If the store layout has not been set, returns "basic" as the store layout type and no homepage.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(token, body)</a></code></p>
 <p class="firstline">Establishes the binding between the EMM and an enterprise. This is now deprecated; use enroll instead.</p>
@@ -118,7 +118,7 @@
 <p class="firstline">Sets the account that will be used to authenticate to the API as the enterprise.</p>
 <p class="toc_element">
   <code><a href="#setStoreLayout">setStoreLayout(enterpriseId, body)</a></code></p>
-<p class="firstline">Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom"), the basic store layout is disabled.</p>
+<p class="firstline">Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom" and setting a homepage), the basic store layout is disabled.</p>
 <p class="toc_element">
   <code><a href="#unenroll">unenroll(enterpriseId)</a></code></p>
 <p class="firstline">Unenrolls an enterprise from the calling EMM.</p>
@@ -314,7 +314,7 @@
 
 <div class="method">
     <code class="details" id="getStoreLayout">getStoreLayout(enterpriseId)</code>
-  <pre>Returns the store layout for the enterprise. If the store layout has not been set, or if the store layout has no homepageId set, returns a NOT_FOUND error.
+  <pre>Returns the store layout for the enterprise. If the store layout has not been set, returns "basic" as the store layout type and no homepage.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -323,13 +323,11 @@
   An object of the form:
 
     { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
-    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the managed Google Play store.
+    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage is the first page shown in the managed Google Play Store.
         #
-        # If a homepage has not been set, the Play store shown on devices will be empty. Not specifying a homepage on a store layout effectively empties the store.
-        #
-        # If there exists at least one page, this field must be set to the ID of a valid page.
+        # Not specifying a homepage is equivalent to setting the store layout type to "basic".
     "kind": "androidenterprise#storeLayout", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeLayout".
-    "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic". If set to "custom", "homepageId" must be specified. If set to "basic", the layout will consist of all approved apps accessible by the user, split in pages of 100 each; in this case, "homepageId" must not be specified. The "basic" setting takes precedence over any existing collections setup for this enterprise (if any). Should the enterprise use collectionViewers for controlling access rights, these will still be respected.
+    "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic" if the homepageId field is not set, and to "custom" otherwise. If set to "basic", the layout will consist of all approved apps that have been whitelisted for the user.
   }</pre>
 </div>
 
@@ -440,6 +438,7 @@
           ],
           "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which new permissions were added. This field will always be present.
         },
+        "notificationType": "A String", # Type of the notification.
         "productAvailabilityChangeEvent": { # An event generated whenever a product's availability changes. # Notifications about product availability changes.
           "availabilityStatus": "A String", # The new state of the product. This field will always be present.
           "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the product availability changed. This field will always be present.
@@ -518,7 +517,7 @@
 
 <div class="method">
     <code class="details" id="setStoreLayout">setStoreLayout(enterpriseId, body)</code>
-  <pre>Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom"), the basic store layout is disabled.
+  <pre>Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the  setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom" and setting a homepage), the basic store layout is disabled.
 
 Args:
   enterpriseId: string, The ID of the enterprise. (required)
@@ -526,13 +525,11 @@
     The object takes the form of:
 
 { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
-  "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the managed Google Play store.
+  "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage is the first page shown in the managed Google Play Store.
       # 
-      # If a homepage has not been set, the Play store shown on devices will be empty. Not specifying a homepage on a store layout effectively empties the store.
-      # 
-      # If there exists at least one page, this field must be set to the ID of a valid page.
+      # Not specifying a homepage is equivalent to setting the store layout type to "basic".
   "kind": "androidenterprise#storeLayout", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeLayout".
-  "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic". If set to "custom", "homepageId" must be specified. If set to "basic", the layout will consist of all approved apps accessible by the user, split in pages of 100 each; in this case, "homepageId" must not be specified. The "basic" setting takes precedence over any existing collections setup for this enterprise (if any). Should the enterprise use collectionViewers for controlling access rights, these will still be respected.
+  "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic" if the homepageId field is not set, and to "custom" otherwise. If set to "basic", the layout will consist of all approved apps that have been whitelisted for the user.
 }
 
 
@@ -540,13 +537,11 @@
   An object of the form:
 
     { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
-    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage will be used as the first page shown in the managed Google Play store.
+    "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage is the first page shown in the managed Google Play Store.
         #
-        # If a homepage has not been set, the Play store shown on devices will be empty. Not specifying a homepage on a store layout effectively empties the store.
-        #
-        # If there exists at least one page, this field must be set to the ID of a valid page.
+        # Not specifying a homepage is equivalent to setting the store layout type to "basic".
     "kind": "androidenterprise#storeLayout", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#storeLayout".
-    "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic". If set to "custom", "homepageId" must be specified. If set to "basic", the layout will consist of all approved apps accessible by the user, split in pages of 100 each; in this case, "homepageId" must not be specified. The "basic" setting takes precedence over any existing collections setup for this enterprise (if any). Should the enterprise use collectionViewers for controlling access rights, these will still be respected.
+    "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic" if the homepageId field is not set, and to "custom" otherwise. If set to "basic", the layout will consist of all approved apps that have been whitelisted for the user.
   }</pre>
 </div>
 
diff --git a/docs/dyn/androidenterprise_v1.grouplicenses.html b/docs/dyn/androidenterprise_v1.grouplicenses.html
index 4302591..edd50df 100644
--- a/docs/dyn/androidenterprise_v1.grouplicenses.html
+++ b/docs/dyn/androidenterprise_v1.grouplicenses.html
@@ -103,6 +103,10 @@
     "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this Grouplicenses resource was created because the enterprise purchased licenses for this product; otherwise, the value is "free" (for free products).
     "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise. Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections, and new entitlements to them should not normally be created.
     "productId": "A String", # The ID of the product that the license is for. For example, "app:com.google.android.gm".
+    "permissions": "A String", # The permission approval status of the product. This field is only set if the product is approved. Possible states are:
+        # - "currentApproved", the current set of permissions is approved, but additional permissions will require the administrator to reapprove the product (If the product was approved without specifying the approved permissions setting, then this is the default behavior.),
+        # - "needsReapproval", the product has unapproved permissions. No additional product licenses can be assigned until the product is reapproved,
+        # - "allCurrentAndFutureApproved", the current permissions are approved and any future permission updates will be automatically approved without administrator review.
   }</pre>
 </div>
 
@@ -129,6 +133,10 @@
         "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this Grouplicenses resource was created because the enterprise purchased licenses for this product; otherwise, the value is "free" (for free products).
         "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise. Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections, and new entitlements to them should not normally be created.
         "productId": "A String", # The ID of the product that the license is for. For example, "app:com.google.android.gm".
+        "permissions": "A String", # The permission approval status of the product. This field is only set if the product is approved. Possible states are:
+            # - "currentApproved", the current set of permissions is approved, but additional permissions will require the administrator to reapprove the product (If the product was approved without specifying the approved permissions setting, then this is the default behavior.),
+            # - "needsReapproval", the product has unapproved permissions. No additional product licenses can be assigned until the product is reapproved,
+            # - "allCurrentAndFutureApproved", the current permissions are approved and any future permission updates will be automatically approved without administrator review.
       },
     ],
     "kind": "androidenterprise#groupLicensesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicensesListResponse".
diff --git a/docs/dyn/androidenterprise_v1.products.html b/docs/dyn/androidenterprise_v1.products.html
index ddc33c1..9d693e7 100644
--- a/docs/dyn/androidenterprise_v1.products.html
+++ b/docs/dyn/androidenterprise_v1.products.html
@@ -109,6 +109,7 @@
     The object takes the form of:
 
 {
+    "approvedPermissions": "A String", # Sets how new permission requests for the product are handled. "allPermissions" automatically approves all current and future permissions for the product. "currentPermissionsOnly" approves the current set of permissions for the product, but any future permissions added through updates will require manual reapproval. If not specified, only the current set of permissions will be approved.
     "approvalUrlInfo": { # Information on an approval URL. # The approval URL that was shown to the user. Only the permissions shown to the user with that URL will be accepted, which may not be the product's entire set of permissions. For example, the URL may only display new permissions from an update after the product was approved, or not include new permissions if the product was updated since the URL was generated.
       "kind": "androidenterprise#approvalUrlInfo", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#approvalUrlInfo".
       "approvalUrl": "A String", # A URL that displays a product's permissions and that can also be used to approve the product with the Products.approve call.
@@ -166,7 +167,7 @@
     "productPricing": "A String", # Whether this product is free, free with in-app purchases, or paid. If the pricing is unknown, this means the product is not generally available anymore (even though it might still be available to people who own it).
     "iconUrl": "A String", # A link to an image that can be used as an icon for the product. This image is suitable for use at up to 512px x 512px.
     "authorName": "A String", # The name of the author of the product (for example, the app developer).
-    "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android container app.
+    "requiresContainerApp": True or False, # Deprecated.
     "detailsUrl": "A String", # A link to the (consumer) Google Play details page for the product.
     "productId": "A String", # A string of the form app:<package name>. For example, app:com.google.android.gm represents the Gmail app.
   }</pre>
@@ -274,7 +275,7 @@
         "productPricing": "A String", # Whether this product is free, free with in-app purchases, or paid. If the pricing is unknown, this means the product is not generally available anymore (even though it might still be available to people who own it).
         "iconUrl": "A String", # A link to an image that can be used as an icon for the product. This image is suitable for use at up to 512px x 512px.
         "authorName": "A String", # The name of the author of the product (for example, the app developer).
-        "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android container app.
+        "requiresContainerApp": True or False, # Deprecated.
         "detailsUrl": "A String", # A link to the (consumer) Google Play details page for the product.
         "productId": "A String", # A string of the form app:<package name>. For example, app:com.google.android.gm represents the Gmail app.
       },
diff --git a/docs/dyn/androidenterprise_v1.users.html b/docs/dyn/androidenterprise_v1.users.html
index d23eea4..c1faa5b 100644
--- a/docs/dyn/androidenterprise_v1.users.html
+++ b/docs/dyn/androidenterprise_v1.users.html
@@ -194,7 +194,7 @@
 
     { # A set of products.
       "kind": "androidenterprise#productSet", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productSet".
-      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
+      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that the user is entitled to access the product set. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. "allApproved" means that the user is entitled to access all products that are approved for the enterprise. If the value is "allApproved" or "includeAll", the productId field is ignored. If no value is provided, it is interpreted as "whitelist" for backwards compatibility.
       "productId": [ # The list of product IDs making up the set of products.
         "A String",
       ],
@@ -334,7 +334,7 @@
 
 { # A set of products.
     "kind": "androidenterprise#productSet", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productSet".
-    "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
+    "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that the user is entitled to access the product set. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. "allApproved" means that the user is entitled to access all products that are approved for the enterprise. If the value is "allApproved" or "includeAll", the productId field is ignored. If no value is provided, it is interpreted as "whitelist" for backwards compatibility.
     "productId": [ # The list of product IDs making up the set of products.
       "A String",
     ],
@@ -346,7 +346,7 @@
 
     { # A set of products.
       "kind": "androidenterprise#productSet", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productSet".
-      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that this product set constitutes a whitelist. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. If the value is "includeAll", the value of the productId field is therefore ignored. If a value is not supplied, it is interpreted to be "whitelist" for backwards compatibility.
+      "productSetBehavior": "A String", # The interpretation of this product set. "unknown" should never be sent and is ignored if received. "whitelist" means that the user is entitled to access the product set. "includeAll" means that all products are accessible, including products that are approved, products with revoked approval, and products that have never been approved. "allApproved" means that the user is entitled to access all products that are approved for the enterprise. If the value is "allApproved" or "includeAll", the productId field is ignored. If no value is provided, it is interpreted as "whitelist" for backwards compatibility.
       "productId": [ # The list of product IDs making up the set of products.
         "A String",
       ],
diff --git a/docs/dyn/appengine_v1.apps.html b/docs/dyn/appengine_v1.apps.html
index 70aba84..39c7e2e 100644
--- a/docs/dyn/appengine_v1.apps.html
+++ b/docs/dyn/appengine_v1.apps.html
@@ -91,20 +91,22 @@
 
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).</p>
+<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields:</p>
 <p class="toc_element">
   <code><a href="#get">get(appsId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about an application.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application.</p>
+<p class="firstline">Updates the specified Application resource. You can update the following fields:</p>
 <p class="toc_element">
   <code><a href="#repair">repair(appsId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
+  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields:
+id - The ID of the target Cloud Platform project.
+location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
 
 Args:
   body: object, The request body. (required)
@@ -113,7 +115,6 @@
 { # An Application resource contains the top-level configuration of an App Engine application.
     "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
     "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
-    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
     "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
     "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
     "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly
@@ -124,7 +125,7 @@
       },
     ],
     "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
-    "servingStatus": "A String", # Serving status of this application.
+    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
     "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
     "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
@@ -132,20 +133,31 @@
       "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
       "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
     },
+    "servingStatus": "A String", # Serving status of this application.
     "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
     "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -155,10 +167,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -169,6 +181,9 @@
 Args:
   appsId: string, Part of `name`. Name of the Application resource to get. Example: apps/myapp. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -176,7 +191,6 @@
     { # An Application resource contains the top-level configuration of an App Engine application.
       "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
       "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
-      "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
       "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
       "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
       "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly
@@ -187,7 +201,7 @@
         },
       ],
       "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
-      "servingStatus": "A String", # Serving status of this application.
+      "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
       "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
       "iap": { # Identity-Aware Proxy
         "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
@@ -195,6 +209,7 @@
         "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
         "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
       },
+      "servingStatus": "A String", # Serving status of this application.
       "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
       "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
     }</pre>
@@ -202,7 +217,9 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application.
+  <pre>Updates the specified Application resource. You can update the following fields:
+auth_domain - Google authentication domain for controlling user access to the application.
+default_cookie_expiration - Cookie expiration policy for the application.
 
 Args:
   appsId: string, Part of `name`. Name of the Application resource to update. Example: apps/myapp. (required)
@@ -212,7 +229,6 @@
 { # An Application resource contains the top-level configuration of an App Engine application.
     "defaultHostname": "A String", # Hostname used to reach this application, as resolved by App Engine.@OutputOnly
     "name": "A String", # Full path to the Application resource in the API. Example: apps/myapp.@OutputOnly
-    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
     "codeBucket": "A String", # Google Cloud Storage bucket that can be used for storing files associated with this application. This bucket is associated with the application and can be used by the gcloud deployment commands.@OutputOnly
     "defaultBucket": "A String", # Google Cloud Storage bucket that can be used by this application to store content.@OutputOnly
     "dispatchRules": [ # HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.@OutputOnly
@@ -223,7 +239,7 @@
       },
     ],
     "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
-    "servingStatus": "A String", # Serving status of this application.
+    "gcrDomain": "A String", # The Google Container Registry domain used for storing managed build docker images for this application.
     "locationId": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
     "iap": { # Identity-Aware Proxy
       "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
@@ -231,21 +247,32 @@
       "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow.For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
       "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
     },
+    "servingStatus": "A String", # Serving status of this application.
     "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
     "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
   }
 
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -255,10 +282,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -275,15 +302,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -293,10 +330,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1.apps.locations.html b/docs/dyn/appengine_v1.apps.locations.html
index 72924a9..0cb8344 100644
--- a/docs/dyn/appengine_v1.apps.locations.html
+++ b/docs/dyn/appengine_v1.apps.locations.html
@@ -92,12 +92,16 @@
   appsId: string, Part of `name`. Resource name for the location. (required)
   locationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
       "a_key": "A String",
     },
     "locationId": "A String", # The canonical id for this location. For example: "us-east1".
@@ -118,6 +122,9 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -126,7 +133,8 @@
     "nextPageToken": "A String", # The standard List next-page token.
     "locations": [ # A list of locations that matches the specified filter in the request.
       { # A resource that represents Google Cloud Platform location.
-        "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
           "a_key": "A String",
         },
         "locationId": "A String", # The canonical id for this location. For example: "us-east1".
diff --git a/docs/dyn/appengine_v1.apps.operations.html b/docs/dyn/appengine_v1.apps.operations.html
index 0e5e39c..3971693 100644
--- a/docs/dyn/appengine_v1.apps.operations.html
+++ b/docs/dyn/appengine_v1.apps.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</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>
@@ -92,15 +92,25 @@
   appsId: string, Part of `name`. The name of the operation resource. (required)
   operationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -110,23 +120,26 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
 
 Args:
-  appsId: string, Part of `name`. The name of the operation collection. (required)
+  appsId: string, Part of `name`. The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -134,10 +147,17 @@
     { # The response message for Operations.ListOperations.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -147,10 +167,10 @@
           ],
         },
         "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
       },
     ],
     "nextPageToken": "A String", # The standard List next-page token.
diff --git a/docs/dyn/appengine_v1.apps.services.html b/docs/dyn/appengine_v1.apps.services.html
index 91a8095..286fc66 100644
--- a/docs/dyn/appengine_v1.apps.services.html
+++ b/docs/dyn/appengine_v1.apps.services.html
@@ -103,15 +103,25 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -121,10 +131,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -136,19 +146,22 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+      "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
       "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
         "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
         "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
           "a_key": 3.14,
         },
       },
-      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
-      "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
     }</pre>
 </div>
 
@@ -161,6 +174,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -168,14 +184,14 @@
     { # Response message for Services.ListServices.
     "services": [ # The services belonging to the requested application.
       { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+          "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
           "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
             "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
             "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
               "a_key": 3.14,
             },
           },
-          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
-          "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
         },
     ],
     "nextPageToken": "A String", # Continuation token for fetching the next page of results.
@@ -207,28 +223,38 @@
     The object takes the form of:
 
 { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
+    "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
     "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
       "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
       "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
         "a_key": 3.14,
       },
     },
-    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
-    "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
   }
 
   migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -238,10 +264,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1.apps.services.versions.html b/docs/dyn/appengine_v1.apps.services.versions.html
index bbe2f19..72da99b 100644
--- a/docs/dyn/appengine_v1.apps.services.versions.html
+++ b/docs/dyn/appengine_v1.apps.services.versions.html
@@ -96,7 +96,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.</p>
+<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(appsId, servicesId, body, x__xgafv=None)</code>
@@ -113,15 +113,15 @@
       "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
       "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
     },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
       "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
       "maxInstances": 42, # Maximum number of instances to create for this version.
     },
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -141,11 +141,21 @@
     "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
       "url": "A String", # URL to serve the endpoint at.
       "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "script": "A String", # Path to the script from the application root directory.
     },
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
     "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
       "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
       "checkInterval": "A String", # Interval between health checks.
@@ -155,7 +165,6 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
     "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
@@ -173,15 +182,15 @@
         "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
         "targetSentBytesPerSecond": 42, # Target bytes sent per second.
       },
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetReadOpsPerSecond": 42, # Target ops read per seconds.
         "targetWriteBytesPerSecond": 42, # Target bytes written per second.
         "targetReadBytesPerSecond": 42, # Target bytes read per second.
         "targetWriteOpsPerSecond": 42, # Target ops written per second.
       },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
       "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
         "targetConcurrentRequests": 42, # Target number of concurrent requests.
         "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -199,6 +208,9 @@
       "a_key": "A String",
     },
     "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
       "volumes": [ # User specified volumes.
         { # Volumes mounted within the app container. Only applicable for VM runtimes.
           "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -206,9 +218,6 @@
           "sizeGb": 3.14, # Volume size in gigabytes.
         },
       ],
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "memoryGb": 3.14, # Memory (GB) needed.
     },
     "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
       "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -216,12 +225,15 @@
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
     ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
     "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
     "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
@@ -230,19 +242,9 @@
       },
       "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
         "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
       },
     },
-    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-    "createTime": "A String", # Time that this version was created.@OutputOnly
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-    },
     "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
       "checkInterval": "A String", # Interval between health checks.
       "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -252,6 +254,10 @@
       "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
       "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
       { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -275,8 +281,8 @@
         "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
           "scriptPath": "A String", # Path to the script from the application root directory.
         },
-        "login": "A String", # Level of login required to access this resource.
         "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
       },
     ],
     "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
@@ -284,15 +290,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -302,10 +318,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -318,15 +334,25 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -336,10 +362,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -352,6 +378,9 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the Get response.
 
 Returns:
@@ -362,15 +391,15 @@
         "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
         "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
       },
+      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
         "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
         "maxInstances": 42, # Maximum number of instances to create for this version.
       },
-      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-        "a_key": "A String",
-      },
       "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+          # AutomaticScaling: F1, F2, F4, F4_1G
+          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
       "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
         { # Custom static error page to be served when an error occurs.
           "errorCode": "A String", # Error condition this handler applies to.
@@ -390,11 +419,21 @@
       "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
         "url": "A String", # URL to serve the endpoint at.
         "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
         "login": "A String", # Level of login required to access this resource. Defaults to optional.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
         "script": "A String", # Path to the script from the application root directory.
       },
-      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+          "A String",
+        ],
+        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+            # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+            # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+            # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+      },
       "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
         "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
         "checkInterval": "A String", # Interval between health checks.
@@ -404,7 +443,6 @@
         "timeout": "A String", # Time before the health check is considered failed.
         "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
       },
-      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
       "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
         { # Third-party Python runtime library that is required by the application.
@@ -422,15 +460,15 @@
           "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
           "targetSentBytesPerSecond": 42, # Target bytes sent per second.
         },
+        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
         "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
           "targetReadOpsPerSecond": 42, # Target ops read per seconds.
           "targetWriteBytesPerSecond": 42, # Target bytes written per second.
           "targetReadBytesPerSecond": 42, # Target bytes read per second.
           "targetWriteOpsPerSecond": 42, # Target ops written per second.
         },
-        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
         "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
           "targetConcurrentRequests": 42, # Target number of concurrent requests.
           "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -448,6 +486,9 @@
         "a_key": "A String",
       },
       "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+        "memoryGb": 3.14, # Memory (GB) needed.
+        "diskGb": 3.14, # Disk size (GB) needed.
+        "cpu": 3.14, # Number of CPU cores needed.
         "volumes": [ # User specified volumes.
           { # Volumes mounted within the app container. Only applicable for VM runtimes.
             "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -455,9 +496,6 @@
             "sizeGb": 3.14, # Volume size in gigabytes.
           },
         ],
-        "diskGb": 3.14, # Disk size (GB) needed.
-        "cpu": 3.14, # Number of CPU cores needed.
-        "memoryGb": 3.14, # Memory (GB) needed.
       },
       "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
         "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -465,12 +503,15 @@
       "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
         "A String",
       ],
+      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+        "a_key": "A String",
+      },
       "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
       "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
         "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
           "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
             "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
             "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
           },
         },
@@ -479,19 +520,9 @@
         },
         "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
           "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
         },
       },
-      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-      "createTime": "A String", # Time that this version was created.@OutputOnly
-      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-          "A String",
-        ],
-        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-      },
       "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
         "checkInterval": "A String", # Interval between health checks.
         "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -501,6 +532,10 @@
         "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
         "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
       },
+      "createTime": "A String", # Time that this version was created.@OutputOnly
+      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
       "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
       "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
         { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -524,8 +559,8 @@
           "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
             "scriptPath": "A String", # Path to the script from the application root directory.
           },
-          "login": "A String", # Level of login required to access this resource.
           "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+          "login": "A String", # Level of login required to access this resource.
         },
       ],
       "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
@@ -542,6 +577,9 @@
   servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
   pageSize: integer, Maximum results to return per page.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   pageToken: string, Continuation token for fetching the next page of results.
   view: string, Controls the set of fields returned in the List response.
 
@@ -556,15 +594,15 @@
             "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
             "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
           },
+          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
             "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
             "maxInstances": 42, # Maximum number of instances to create for this version.
           },
-          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-            "a_key": "A String",
-          },
           "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+              # AutomaticScaling: F1, F2, F4, F4_1G
+              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
           "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
             { # Custom static error page to be served when an error occurs.
               "errorCode": "A String", # Error condition this handler applies to.
@@ -584,11 +622,21 @@
           "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
             "url": "A String", # URL to serve the endpoint at.
             "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
             "login": "A String", # Level of login required to access this resource. Defaults to optional.
+            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
             "script": "A String", # Path to the script from the application root directory.
           },
-          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+              "A String",
+            ],
+            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+                # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+                # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+                # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+          },
           "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
             "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
             "checkInterval": "A String", # Interval between health checks.
@@ -598,7 +646,6 @@
             "timeout": "A String", # Time before the health check is considered failed.
             "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
           },
-          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
           "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
             { # Third-party Python runtime library that is required by the application.
@@ -616,15 +663,15 @@
               "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
               "targetSentBytesPerSecond": 42, # Target bytes sent per second.
             },
+            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
             "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
               "targetReadOpsPerSecond": 42, # Target ops read per seconds.
               "targetWriteBytesPerSecond": 42, # Target bytes written per second.
               "targetReadBytesPerSecond": 42, # Target bytes read per second.
               "targetWriteOpsPerSecond": 42, # Target ops written per second.
             },
-            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
             "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
               "targetConcurrentRequests": 42, # Target number of concurrent requests.
               "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -642,6 +689,9 @@
             "a_key": "A String",
           },
           "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+            "memoryGb": 3.14, # Memory (GB) needed.
+            "diskGb": 3.14, # Disk size (GB) needed.
+            "cpu": 3.14, # Number of CPU cores needed.
             "volumes": [ # User specified volumes.
               { # Volumes mounted within the app container. Only applicable for VM runtimes.
                 "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -649,9 +699,6 @@
                 "sizeGb": 3.14, # Volume size in gigabytes.
               },
             ],
-            "diskGb": 3.14, # Disk size (GB) needed.
-            "cpu": 3.14, # Number of CPU cores needed.
-            "memoryGb": 3.14, # Memory (GB) needed.
           },
           "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
             "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -659,12 +706,15 @@
           "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
             "A String",
           ],
+          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+            "a_key": "A String",
+          },
           "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
           "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
             "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
               "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
                 "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
                 "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
               },
             },
@@ -673,19 +723,9 @@
             },
             "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
               "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
             },
           },
-          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-          "createTime": "A String", # Time that this version was created.@OutputOnly
-          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-              "A String",
-            ],
-            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-          },
           "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
             "checkInterval": "A String", # Interval between health checks.
             "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -695,6 +735,10 @@
             "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
             "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
           },
+          "createTime": "A String", # Time that this version was created.@OutputOnly
+          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
           "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
           "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
             { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -718,8 +762,8 @@
               "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
                 "scriptPath": "A String", # Path to the script from the application root directory.
               },
-              "login": "A String", # Level of login required to access this resource.
               "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+              "login": "A String", # Level of login required to access this resource.
             },
           ],
           "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
@@ -745,7 +789,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.
+  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
+serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
+instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
+automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
 
 Args:
   appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1. (required)
@@ -759,15 +807,15 @@
       "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
       "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
     },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
       "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
       "maxInstances": 42, # Maximum number of instances to create for this version.
     },
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -787,11 +835,21 @@
     "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
       "url": "A String", # URL to serve the endpoint at.
       "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "script": "A String", # Path to the script from the application root directory.
     },
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
     "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
       "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
       "checkInterval": "A String", # Interval between health checks.
@@ -801,7 +859,6 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
     "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
@@ -819,15 +876,15 @@
         "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
         "targetSentBytesPerSecond": 42, # Target bytes sent per second.
       },
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetReadOpsPerSecond": 42, # Target ops read per seconds.
         "targetWriteBytesPerSecond": 42, # Target bytes written per second.
         "targetReadBytesPerSecond": 42, # Target bytes read per second.
         "targetWriteOpsPerSecond": 42, # Target ops written per second.
       },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
       "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
         "targetConcurrentRequests": 42, # Target number of concurrent requests.
         "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -845,6 +902,9 @@
       "a_key": "A String",
     },
     "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
       "volumes": [ # User specified volumes.
         { # Volumes mounted within the app container. Only applicable for VM runtimes.
           "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -852,9 +912,6 @@
           "sizeGb": 3.14, # Volume size in gigabytes.
         },
       ],
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "memoryGb": 3.14, # Memory (GB) needed.
     },
     "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
       "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -862,12 +919,15 @@
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
     ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
     "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
     "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
@@ -876,19 +936,9 @@
       },
       "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
         "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
       },
     },
-    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-    "createTime": "A String", # Time that this version was created.@OutputOnly
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-    },
     "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
       "checkInterval": "A String", # Interval between health checks.
       "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -898,6 +948,10 @@
       "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
       "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
       { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -921,8 +975,8 @@
         "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
           "scriptPath": "A String", # Path to the script from the application root directory.
         },
-        "login": "A String", # Level of login required to access this resource.
         "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
       },
     ],
     "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
@@ -931,15 +985,25 @@
 
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -949,10 +1013,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1.apps.services.versions.instances.html b/docs/dyn/appengine_v1.apps.services.versions.instances.html
index 0be048a..4d169c0 100644
--- a/docs/dyn/appengine_v1.apps.services.versions.instances.html
+++ b/docs/dyn/appengine_v1.apps.services.versions.instances.html
@@ -103,19 +103,31 @@
     The object takes the form of:
 
 { # Request message for Instances.DebugInstance.
-    "sshKey": "A String", # Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
+        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
+        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -125,10 +137,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -142,15 +154,25 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -160,10 +182,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -177,6 +199,9 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -187,7 +212,7 @@
     "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
     "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+    "availability": "A String", # Availability of the instance.@OutputOnly
     "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
     "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "startTime": "A String", # Time that this instance was started.@OutputOnly
@@ -195,7 +220,7 @@
     "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
     "requests": 42, # Number of requests since this instance was started.@OutputOnly
     "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "availability": "A String", # Availability of the instance.@OutputOnly
+    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
     "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
   }</pre>
@@ -211,6 +236,9 @@
   versionsId: string, Part of `parent`. See documentation of `appsId`. (required)
   pageSize: integer, Maximum results to return per page.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   pageToken: string, Continuation token for fetching the next page of results.
 
 Returns:
@@ -225,7 +253,7 @@
         "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
         "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+        "availability": "A String", # Availability of the instance.@OutputOnly
         "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
         "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "startTime": "A String", # Time that this instance was started.@OutputOnly
@@ -233,7 +261,7 @@
         "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
         "requests": 42, # Number of requests since this instance was started.@OutputOnly
         "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "availability": "A String", # Availability of the instance.@OutputOnly
+        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
         "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
       },
diff --git a/docs/dyn/appengine_v1.experimental.apps.html b/docs/dyn/appengine_v1.experimental.apps.html
deleted file mode 100644
index fa26ce2..0000000
--- a/docs/dyn/appengine_v1.experimental.apps.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<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="appengine_v1.html">Google App Engine Admin API</a> . <a href="appengine_v1.experimental.html">experimental</a> . <a href="appengine_v1.experimental.apps.html">apps</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="appengine_v1.experimental.apps.operations.html">operations()</a></code>
-</p>
-<p class="firstline">Returns the operations Resource.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1.experimental.apps.operations.html b/docs/dyn/appengine_v1.experimental.apps.operations.html
deleted file mode 100644
index f9aae20..0000000
--- a/docs/dyn/appengine_v1.experimental.apps.operations.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<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="appengine_v1.html">Google App Engine Admin API</a> . <a href="appengine_v1.experimental.html">experimental</a> . <a href="appengine_v1.experimental.apps.html">apps</a> . <a href="appengine_v1.experimental.apps.operations.html">operations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(appsId, operationsId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
-<p class="toc_element">
-  <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.</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="get">get(appsId, operationsId, x__xgafv=None)</code>
-  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
-
-Args:
-  appsId: string, Part of `name`. The name of the operation resource. (required)
-  operationsId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.
-
-Args:
-  appsId: string, Part of `name`. The name of the operation collection. (required)
-  pageSize: integer, The standard list page size.
-  filter: string, The standard list filter.
-  pageToken: string, The standard list page token.
-  x__xgafv: string, V1 error format.
-
-Returns:
-  An object of the form:
-
-    { # The response message for Operations.ListOperations.
-    "operations": [ # A list of operations that matches the specified filter in the request.
-      { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
-          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-            {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-        },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed, and either `error` or `response` is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `operations/some/unique/name`.
-        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      },
-    ],
-    "nextPageToken": "A String", # The standard List next-page token.
-  }</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
diff --git a/docs/dyn/appengine_v1alpha.apps.locations.html b/docs/dyn/appengine_v1alpha.apps.locations.html
index dce39f3..7e8bf58 100644
--- a/docs/dyn/appengine_v1alpha.apps.locations.html
+++ b/docs/dyn/appengine_v1alpha.apps.locations.html
@@ -92,12 +92,16 @@
   appsId: string, Part of `name`. Resource name for the location. (required)
   locationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
       "a_key": "A String",
     },
     "locationId": "A String", # The canonical id for this location. For example: "us-east1".
@@ -118,6 +122,9 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -126,7 +133,8 @@
     "nextPageToken": "A String", # The standard List next-page token.
     "locations": [ # A list of locations that matches the specified filter in the request.
       { # A resource that represents Google Cloud Platform location.
-        "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
           "a_key": "A String",
         },
         "locationId": "A String", # The canonical id for this location. For example: "us-east1".
diff --git a/docs/dyn/appengine_v1alpha.apps.operations.html b/docs/dyn/appengine_v1alpha.apps.operations.html
index ba84a81..f623cbc 100644
--- a/docs/dyn/appengine_v1alpha.apps.operations.html
+++ b/docs/dyn/appengine_v1alpha.apps.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</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>
@@ -92,15 +92,25 @@
   appsId: string, Part of `name`. The name of the operation resource. (required)
   operationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -110,23 +120,26 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
 
 Args:
-  appsId: string, Part of `name`. The name of the operation collection. (required)
+  appsId: string, Part of `name`. The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -134,10 +147,17 @@
     { # The response message for Operations.ListOperations.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -147,10 +167,10 @@
           ],
         },
         "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
       },
     ],
     "nextPageToken": "A String", # The standard List next-page token.
diff --git a/docs/dyn/appengine_v1alpha.apps.services.html b/docs/dyn/appengine_v1alpha.apps.services.html
deleted file mode 100644
index 1fe1500..0000000
--- a/docs/dyn/appengine_v1alpha.apps.services.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<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="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.services.html">services</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="appengine_v1alpha.apps.services.versions.html">versions()</a></code>
-</p>
-<p class="firstline">Returns the versions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#delete">delete(appsId, servicesId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes the specified service and all enclosed versions.</p>
-<p class="toc_element">
-  <code><a href="#get">get(appsId, servicesId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the current configuration of the specified service.</p>
-<p class="toc_element">
-  <code><a href="#list">list(appsId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all the services in the application.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(appsId, servicesId, body, migrateTraffic=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the configuration of the specified service.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(appsId, servicesId, x__xgafv=None)</code>
-  <pre>Deletes the specified service and all enclosed versions.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(appsId, servicesId, x__xgafv=None)</code>
-  <pre>Gets the current configuration of the specified service.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
-      "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
-      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
-      "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
-        "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
-        "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
-          "a_key": 3.14,
-        },
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(appsId, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists all the services in the application.
-
-Args:
-  appsId: string, Part of `parent`. Name of the parent Application resource. Example: apps/myapp. (required)
-  pageSize: integer, Maximum results to return per page.
-  pageToken: string, Continuation token for fetching the next page of results.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message for Services.ListServices.
-    "services": [ # The services belonging to the requested application.
-      { # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
-          "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
-          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
-          "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
-            "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
-            "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
-              "a_key": 3.14,
-            },
-          },
-        },
-    ],
-    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(appsId, servicesId, body, migrateTraffic=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the configuration of the specified service.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Service resource is a logical component of an application that can share state and communicate in a secure fashion with other services. For example, an application that handles customer requests might include separate services to handle tasks such as backend data analysis or API requests from mobile devices. Each service has a collection of versions that define a specific set of code used to implement the functionality of that service.
-    "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
-    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
-    "split": { # Traffic routing configuration for versions within a single service. Traffic splits define how traffic directed to the service is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the service.
-      "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
-      "allocations": { # Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
-        "a_key": 3.14,
-      },
-    },
-  }
-
-  migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
-  updateMask: string, Standard field mask for the set of fields to be updated.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1alpha.apps.services.versions.html b/docs/dyn/appengine_v1alpha.apps.services.versions.html
deleted file mode 100644
index 961545b..0000000
--- a/docs/dyn/appengine_v1alpha.apps.services.versions.html
+++ /dev/null
@@ -1,1019 +0,0 @@
-<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="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.services.html">services</a> . <a href="appengine_v1alpha.apps.services.versions.html">versions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="appengine_v1alpha.apps.services.versions.instances.html">instances()</a></code>
-</p>
-<p class="firstline">Returns the instances Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#create">create(appsId, servicesId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Deploys code and resource files to a new version.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(appsId, servicesId, versionsId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes an existing Version resource.</p>
-<p class="toc_element">
-  <code><a href="#get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</a></code></p>
-<p class="firstline">Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.</p>
-<p class="toc_element">
-  <code><a href="#list">list(appsId, servicesId, pageSize=None, x__xgafv=None, pageToken=None, view=None)</a></code></p>
-<p class="firstline">Lists the versions of a service.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(appsId, servicesId, body, x__xgafv=None)</code>
-  <pre>Deploys code and resource files to a new version.
-
-Args:
-  appsId: string, Part of `parent`. Name of the parent resource to create this version under. Example: apps/myapp/services/default. (required)
-  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Version resource is a specific set of source code and configuration files that are deployed into a service.
-    "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
-      "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
-      "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
-    },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
-    "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-      "maxInstances": 42, # Maximum number of instances to create for this version.
-    },
-    "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
-        # AutomaticScaling: F1, F2, F4, F4_1G
-        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
-    "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
-      { # Custom static error page to be served when an error occurs.
-        "errorCode": "A String", # Error condition this handler applies to.
-        "mimeType": "A String", # MIME type of file. Defaults to text/html.
-        "staticFile": "A String", # Static file content to be served for this error.
-      },
-    ],
-    "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
-    "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
-      "checkInterval": "A String", # Interval between health checks.
-      "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
-      "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
-      "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
-      "timeout": "A String", # Time before the check is considered failed.
-      "path": "A String", # The request path.
-    },
-    "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
-      "url": "A String", # URL to serve the endpoint at.
-      "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-      "login": "A String", # Level of login required to access this resource. Defaults to optional.
-      "script": "A String", # Path to the script from the application root directory.
-    },
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
-          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
-          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
-          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-    },
-    "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
-      "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
-      "checkInterval": "A String", # Interval between health checks.
-      "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
-      "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
-      "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
-      "timeout": "A String", # Time before the health check is considered failed.
-      "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
-    },
-    "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
-    "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
-      { # Third-party Python runtime library that is required by the application.
-        "version": "A String", # Version of the library to select, or "latest".
-        "name": "A String", # Name of the library. Example: "django".
-      },
-    ],
-    "env": "A String", # App Engine execution environment for this version.Defaults to standard.
-    "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
-    "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
-      "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
-        "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
-        "targetSentPacketsPerSecond": 42, # Target packets sent per second.
-        "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
-        "targetSentBytesPerSecond": 42, # Target bytes sent per second.
-      },
-      "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
-        "targetReadOpsPerSecond": 42, # Target ops read per seconds.
-        "targetWriteBytesPerSecond": 42, # Target bytes written per second.
-        "targetReadBytesPerSecond": 42, # Target bytes read per second.
-        "targetWriteOpsPerSecond": 42, # Target ops written per second.
-      },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
-      "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
-        "targetConcurrentRequests": 42, # Target number of concurrent requests.
-        "targetRequestCountPerSecond": 42, # Target requests per second.
-      },
-      "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
-      "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
-      "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
-      "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-      },
-    },
-    "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
-      "a_key": "A String",
-    },
-    "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
-      "memoryGb": 3.14, # Memory (GB) needed.
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "volumes": [ # User specified volumes.
-        { # Volumes mounted within the app container. Only applicable for VM runtimes.
-          "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
-          "name": "A String", # Unique name for the volume.
-          "sizeGb": 3.14, # Volume size in gigabytes.
-        },
-      ],
-    },
-    "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-      "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
-    },
-    "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
-      "A String",
-    ],
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
-    "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
-    "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
-      "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
-        "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
-          "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-          "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
-        },
-      },
-      "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
-        "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
-      },
-      "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
-        "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-      },
-    },
-    "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
-      "checkInterval": "A String", # Interval between health checks.
-      "initialDelay": "A String", # The initial delay before starting to execute the checks.
-      "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
-      "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
-      "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
-      "timeout": "A String", # Time before the check is considered failed.
-      "path": "A String", # The request path.
-    },
-    "createTime": "A String", # Time that this version was created.@OutputOnly
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
-    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-    "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
-    "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
-      { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
-        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-        "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
-        "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
-          "scriptPath": "A String", # Path to the script from the application root directory.
-        },
-        "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
-          "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
-          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-            "a_key": "A String",
-          },
-          "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
-          "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-          "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
-          "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
-          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
-        },
-        "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
-          "scriptPath": "A String", # Path to the script from the application root directory.
-        },
-        "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
-        "login": "A String", # Level of login required to access this resource.
-      },
-    ],
-    "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
-    "runtime": "A String", # Desired runtime. Example: python27.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(appsId, servicesId, versionsId, x__xgafv=None)</code>
-  <pre>Deletes an existing Version resource.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</code>
-  <pre>Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-  view: string, Controls the set of fields returned in the Get response.
-
-Returns:
-  An object of the form:
-
-    { # A Version resource is a specific set of source code and configuration files that are deployed into a service.
-      "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
-        "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
-        "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
-      },
-      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
-      "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-        "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-        "maxInstances": 42, # Maximum number of instances to create for this version.
-      },
-      "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
-          # AutomaticScaling: F1, F2, F4, F4_1G
-          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
-      "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
-        { # Custom static error page to be served when an error occurs.
-          "errorCode": "A String", # Error condition this handler applies to.
-          "mimeType": "A String", # MIME type of file. Defaults to text/html.
-          "staticFile": "A String", # Static file content to be served for this error.
-        },
-      ],
-      "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
-      "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
-        "checkInterval": "A String", # Interval between health checks.
-        "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
-        "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
-        "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
-        "timeout": "A String", # Time before the check is considered failed.
-        "path": "A String", # The request path.
-      },
-      "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
-        "url": "A String", # URL to serve the endpoint at.
-        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-        "login": "A String", # Level of login required to access this resource. Defaults to optional.
-        "script": "A String", # Path to the script from the application root directory.
-      },
-      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-          "A String",
-        ],
-        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
-            # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
-            # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
-            # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-      },
-      "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
-        "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
-        "checkInterval": "A String", # Interval between health checks.
-        "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
-        "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
-        "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
-        "timeout": "A String", # Time before the health check is considered failed.
-        "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
-      },
-      "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
-      "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
-        { # Third-party Python runtime library that is required by the application.
-          "version": "A String", # Version of the library to select, or "latest".
-          "name": "A String", # Name of the library. Example: "django".
-        },
-      ],
-      "env": "A String", # App Engine execution environment for this version.Defaults to standard.
-      "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
-      "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-        "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
-        "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
-          "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
-          "targetSentPacketsPerSecond": 42, # Target packets sent per second.
-          "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
-          "targetSentBytesPerSecond": 42, # Target bytes sent per second.
-        },
-        "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
-          "targetReadOpsPerSecond": 42, # Target ops read per seconds.
-          "targetWriteBytesPerSecond": 42, # Target bytes written per second.
-          "targetReadBytesPerSecond": 42, # Target bytes read per second.
-          "targetWriteOpsPerSecond": 42, # Target ops written per second.
-        },
-        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
-        "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
-          "targetConcurrentRequests": 42, # Target number of concurrent requests.
-          "targetRequestCountPerSecond": 42, # Target requests per second.
-        },
-        "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
-        "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
-        "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
-        "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-        "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-          "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-          "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-        },
-      },
-      "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
-        "a_key": "A String",
-      },
-      "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
-        "memoryGb": 3.14, # Memory (GB) needed.
-        "diskGb": 3.14, # Disk size (GB) needed.
-        "cpu": 3.14, # Number of CPU cores needed.
-        "volumes": [ # User specified volumes.
-          { # Volumes mounted within the app container. Only applicable for VM runtimes.
-            "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
-            "name": "A String", # Unique name for the volume.
-            "sizeGb": 3.14, # Volume size in gigabytes.
-          },
-        ],
-      },
-      "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-        "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
-      },
-      "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
-        "A String",
-      ],
-      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-        "a_key": "A String",
-      },
-      "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
-      "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
-        "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
-          "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
-            "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-            "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
-          },
-        },
-        "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
-          "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
-        },
-        "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
-          "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-        },
-      },
-      "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
-        "checkInterval": "A String", # Interval between health checks.
-        "initialDelay": "A String", # The initial delay before starting to execute the checks.
-        "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
-        "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
-        "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
-        "timeout": "A String", # Time before the check is considered failed.
-        "path": "A String", # The request path.
-      },
-      "createTime": "A String", # Time that this version was created.@OutputOnly
-      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
-      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-      "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
-      "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
-        { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
-          "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-          "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-          "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
-          "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
-            "scriptPath": "A String", # Path to the script from the application root directory.
-          },
-          "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
-            "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
-            "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-              "a_key": "A String",
-            },
-            "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
-            "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-            "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
-            "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
-            "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
-          },
-          "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
-            "scriptPath": "A String", # Path to the script from the application root directory.
-          },
-          "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
-          "login": "A String", # Level of login required to access this resource.
-        },
-      ],
-      "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
-      "runtime": "A String", # Desired runtime. Example: python27.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(appsId, servicesId, pageSize=None, x__xgafv=None, pageToken=None, view=None)</code>
-  <pre>Lists the versions of a service.
-
-Args:
-  appsId: string, Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default. (required)
-  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
-  pageSize: integer, Maximum results to return per page.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-  pageToken: string, Continuation token for fetching the next page of results.
-  view: string, Controls the set of fields returned in the List response.
-
-Returns:
-  An object of the form:
-
-    { # Response message for Versions.ListVersions.
-    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
-    "versions": [ # The versions belonging to the requested service.
-      { # A Version resource is a specific set of source code and configuration files that are deployed into a service.
-          "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
-            "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
-            "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
-          },
-          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
-          "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-            "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-            "maxInstances": 42, # Maximum number of instances to create for this version.
-          },
-          "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
-              # AutomaticScaling: F1, F2, F4, F4_1G
-              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
-          "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
-            { # Custom static error page to be served when an error occurs.
-              "errorCode": "A String", # Error condition this handler applies to.
-              "mimeType": "A String", # MIME type of file. Defaults to text/html.
-              "staticFile": "A String", # Static file content to be served for this error.
-            },
-          ],
-          "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
-          "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
-            "checkInterval": "A String", # Interval between health checks.
-            "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
-            "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
-            "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
-            "timeout": "A String", # Time before the check is considered failed.
-            "path": "A String", # The request path.
-          },
-          "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
-            "url": "A String", # URL to serve the endpoint at.
-            "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-            "login": "A String", # Level of login required to access this resource. Defaults to optional.
-            "script": "A String", # Path to the script from the application root directory.
-          },
-          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-              "A String",
-            ],
-            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
-                # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
-                # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
-                # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-          },
-          "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
-            "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
-            "checkInterval": "A String", # Interval between health checks.
-            "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
-            "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
-            "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
-            "timeout": "A String", # Time before the health check is considered failed.
-            "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
-          },
-          "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
-          "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
-            { # Third-party Python runtime library that is required by the application.
-              "version": "A String", # Version of the library to select, or "latest".
-              "name": "A String", # Name of the library. Example: "django".
-            },
-          ],
-          "env": "A String", # App Engine execution environment for this version.Defaults to standard.
-          "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
-          "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-            "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
-            "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
-              "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
-              "targetSentPacketsPerSecond": 42, # Target packets sent per second.
-              "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
-              "targetSentBytesPerSecond": 42, # Target bytes sent per second.
-            },
-            "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
-              "targetReadOpsPerSecond": 42, # Target ops read per seconds.
-              "targetWriteBytesPerSecond": 42, # Target bytes written per second.
-              "targetReadBytesPerSecond": 42, # Target bytes read per second.
-              "targetWriteOpsPerSecond": 42, # Target ops written per second.
-            },
-            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
-            "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
-              "targetConcurrentRequests": 42, # Target number of concurrent requests.
-              "targetRequestCountPerSecond": 42, # Target requests per second.
-            },
-            "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
-            "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
-            "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
-            "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-            "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-              "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-              "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-            },
-          },
-          "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
-            "a_key": "A String",
-          },
-          "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
-            "memoryGb": 3.14, # Memory (GB) needed.
-            "diskGb": 3.14, # Disk size (GB) needed.
-            "cpu": 3.14, # Number of CPU cores needed.
-            "volumes": [ # User specified volumes.
-              { # Volumes mounted within the app container. Only applicable for VM runtimes.
-                "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
-                "name": "A String", # Unique name for the volume.
-                "sizeGb": 3.14, # Volume size in gigabytes.
-              },
-            ],
-          },
-          "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-            "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
-          },
-          "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
-            "A String",
-          ],
-          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-            "a_key": "A String",
-          },
-          "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
-          "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
-            "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
-              "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
-                "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-                "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
-              },
-            },
-            "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
-              "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
-            },
-            "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
-              "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-            },
-          },
-          "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
-            "checkInterval": "A String", # Interval between health checks.
-            "initialDelay": "A String", # The initial delay before starting to execute the checks.
-            "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
-            "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
-            "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
-            "timeout": "A String", # Time before the check is considered failed.
-            "path": "A String", # The request path.
-          },
-          "createTime": "A String", # Time that this version was created.@OutputOnly
-          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
-          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-          "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
-          "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
-            { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
-              "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-              "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-              "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
-              "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
-                "scriptPath": "A String", # Path to the script from the application root directory.
-              },
-              "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
-                "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
-                "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-                  "a_key": "A String",
-                },
-                "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
-                "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-                "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
-                "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
-                "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
-              },
-              "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
-                "scriptPath": "A String", # Path to the script from the application root directory.
-              },
-              "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
-              "login": "A String", # Level of login required to access this resource.
-            },
-          ],
-          "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
-          "runtime": "A String", # Desired runtime. Example: python27.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
-serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
-instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
-automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
-automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Version resource is a specific set of source code and configuration files that are deployed into a service.
-    "endpointsApiService": { # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy.The fields here refer to the name and configuration id of a "service" resource in the Service Management API (https://cloud.google.com/service-management/overview). # Cloud Endpoints configuration.If endpoints_api_service is set, the Cloud Endpoints Extensible Service Proxy will be provided to serve the API implemented by the app.
-      "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
-      "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
-    },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1alpha/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
-    "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-      "maxInstances": 42, # Maximum number of instances to create for this version.
-    },
-    "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
-        # AutomaticScaling: F1, F2, F4, F4_1G
-        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
-    "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
-      { # Custom static error page to be served when an error occurs.
-        "errorCode": "A String", # Error condition this handler applies to.
-        "mimeType": "A String", # MIME type of file. Defaults to text/html.
-        "staticFile": "A String", # Static file content to be served for this error.
-      },
-    ],
-    "id": "A String", # Relative name of the version within the service. Example: v1. Version names can contain only lowercase letters, numbers, or hyphens. Reserved names: "default", "latest", and any name with the prefix "ah-".
-    "readinessCheck": { # Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation. # Configures readiness health checking for VM instances. Unhealthy instances are not put into the backend traffic rotation.Only returned in GET requests if view=FULL is set.
-      "checkInterval": "A String", # Interval between health checks.
-      "unhealthyThreshold": 42, # Number of consecutive failed checks required before removing traffic.
-      "healthyThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
-      "host": "A String", # Host header to send when performing a HTTP Readiness check. Example: "myapp.appspot.com"
-      "timeout": "A String", # Time before the check is considered failed.
-      "path": "A String", # The request path.
-    },
-    "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
-      "url": "A String", # URL to serve the endpoint at.
-      "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-      "login": "A String", # Level of login required to access this resource. Defaults to optional.
-      "script": "A String", # Path to the script from the application root directory.
-    },
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
-          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
-          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
-          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-    },
-    "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
-      "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
-      "checkInterval": "A String", # Interval between health checks.
-      "unhealthyThreshold": 42, # Number of consecutive failed health checks required before removing traffic.
-      "healthyThreshold": 42, # Number of consecutive successful health checks required before receiving traffic.
-      "host": "A String", # Host header to send when performing an HTTP health check. Example: "myapp.appspot.com"
-      "timeout": "A String", # Time before the health check is considered failed.
-      "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
-    },
-    "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
-    "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
-      { # Third-party Python runtime library that is required by the application.
-        "version": "A String", # Version of the library to select, or "latest".
-        "name": "A String", # Name of the library. Example: "django".
-      },
-    ],
-    "env": "A String", # App Engine execution environment for this version.Defaults to standard.
-    "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
-    "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
-      "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
-        "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
-        "targetSentPacketsPerSecond": 42, # Target packets sent per second.
-        "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
-        "targetSentBytesPerSecond": 42, # Target bytes sent per second.
-      },
-      "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
-        "targetReadOpsPerSecond": 42, # Target ops read per seconds.
-        "targetWriteBytesPerSecond": 42, # Target bytes written per second.
-        "targetReadBytesPerSecond": 42, # Target bytes read per second.
-        "targetWriteOpsPerSecond": 42, # Target ops written per second.
-      },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
-      "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
-        "targetConcurrentRequests": 42, # Target number of concurrent requests.
-        "targetRequestCountPerSecond": 42, # Target requests per second.
-      },
-      "coolDownPeriod": "A String", # Amount of time that the Autoscaler (https://cloud.google.com/compute/docs/autoscaler/) should wait between changes to the number of virtual machines. Only applicable for VM runtimes.
-      "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
-      "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
-      "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-      },
-    },
-    "envVariables": { # Environment variables available to the application.Only returned in GET requests if view=FULL is set.
-      "a_key": "A String",
-    },
-    "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
-      "memoryGb": 3.14, # Memory (GB) needed.
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "volumes": [ # User specified volumes.
-        { # Volumes mounted within the app container. Only applicable for VM runtimes.
-          "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
-          "name": "A String", # Unique name for the volume.
-          "sizeGb": 3.14, # Volume size in gigabytes.
-        },
-      ],
-    },
-    "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-      "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
-    },
-    "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
-      "A String",
-    ],
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
-    "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
-    "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
-      "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
-        "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
-          "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-          "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
-        },
-      },
-      "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
-        "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
-      },
-      "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
-        "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
-      },
-    },
-    "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
-      "checkInterval": "A String", # Interval between health checks.
-      "initialDelay": "A String", # The initial delay before starting to execute the checks.
-      "unhealthyThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
-      "healthyThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
-      "host": "A String", # Host header to send when performing a HTTP Liveness check. Example: "myapp.appspot.com"
-      "timeout": "A String", # Time before the check is considered failed.
-      "path": "A String", # The request path.
-    },
-    "createTime": "A String", # Time that this version was created.@OutputOnly
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
-    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-    "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
-    "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
-      { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
-        "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
-        "urlRegex": "A String", # URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings. All URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.
-        "script": { # Executes a script to handle the request that matches the URL pattern. # Executes a script to handle the request that matches this URL pattern.
-          "scriptPath": "A String", # Path to the script from the application root directory.
-        },
-        "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
-          "mimeType": "A String", # MIME type used to serve all files served by this handler.Defaults to file-specific MIME types, which are derived from each file's filename extension.
-          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-            "a_key": "A String",
-          },
-          "expiration": "A String", # Time a static file served by this handler should be cached by web proxies and browsers.
-          "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-          "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
-          "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
-          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
-        },
-        "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
-          "scriptPath": "A String", # Path to the script from the application root directory.
-        },
-        "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
-        "login": "A String", # Level of login required to access this resource.
-      },
-    ],
-    "servingStatus": "A String", # Current serving status of this version. Only the versions with a SERVING status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an invalid value. Defaults to SERVING.
-    "runtime": "A String", # Desired runtime. Example: python27.
-  }
-
-  updateMask: string, Standard field mask for the set of fields to be updated.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/appengine_v1alpha.apps.services.versions.instances.html b/docs/dyn/appengine_v1alpha.apps.services.versions.instances.html
deleted file mode 100644
index 7d8ac8c..0000000
--- a/docs/dyn/appengine_v1alpha.apps.services.versions.instances.html
+++ /dev/null
@@ -1,286 +0,0 @@
-<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="appengine_v1alpha.html">Google App Engine Admin API</a> . <a href="appengine_v1alpha.apps.html">apps</a> . <a href="appengine_v1alpha.apps.services.html">services</a> . <a href="appengine_v1alpha.apps.services.versions.html">versions</a> . <a href="appengine_v1alpha.apps.services.versions.instances.html">instances</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#debug">debug(appsId, servicesId, versionsId, instancesId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in "debug mode", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
-<p class="firstline">Stops a running instance.</p>
-<p class="toc_element">
-  <code><a href="#get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets instance information.</p>
-<p class="toc_element">
-  <code><a href="#list">list(appsId, servicesId, versionsId, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
-<p class="firstline">Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).</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="debug">debug(appsId, servicesId, versionsId, instancesId, body, x__xgafv=None)</code>
-  <pre>Enables debugging on a VM instance. This allows you to use the SSH command to connect to the virtual machine where the instance lives. While in "debug mode", the instance continues to serve live traffic. You should delete the instance when you are done debugging and then allow the system to take over and determine if another instance should be started.Only applicable for instances in App Engine flexible environment.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
-  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for Instances.DebugInstance.
-    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
-        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
-        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</code>
-  <pre>Stops a running instance.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
-  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
-        # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
-        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
-        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
-        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
-        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
-        {
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      ],
-    },
-    "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</code>
-  <pre>Gets instance information.
-
-Args:
-  appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default/versions/v1/instances/instance-1. (required)
-  servicesId: string, Part of `name`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `name`. See documentation of `appsId`. (required)
-  instancesId: string, Part of `name`. See documentation of `appsId`. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
-    "errors": 42, # Number of errors since this instance was started.@OutputOnly
-    "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
-    "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
-    "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-    "availability": "A String", # Availability of the instance.@OutputOnly
-    "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
-    "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "startTime": "A String", # Time that this instance was started.@OutputOnly
-    "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
-    "requests": 42, # Number of requests since this instance was started.@OutputOnly
-    "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
-    "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(appsId, servicesId, versionsId, pageSize=None, x__xgafv=None, pageToken=None)</code>
-  <pre>Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
-
-Args:
-  appsId: string, Part of `parent`. Name of the parent Version resource. Example: apps/myapp/services/default/versions/v1. (required)
-  servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
-  versionsId: string, Part of `parent`. See documentation of `appsId`. (required)
-  pageSize: integer, Maximum results to return per page.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-  pageToken: string, Continuation token for fetching the next page of results.
-
-Returns:
-  An object of the form:
-
-    { # Response message for Instances.ListInstances.
-    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
-    "instances": [ # The instances belonging to the requested version.
-      { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
-        "errors": 42, # Number of errors since this instance was started.@OutputOnly
-        "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
-        "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
-        "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-        "availability": "A String", # Availability of the instance.@OutputOnly
-        "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
-        "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "startTime": "A String", # Time that this instance was started.@OutputOnly
-        "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
-        "requests": 42, # Number of requests since this instance was started.@OutputOnly
-        "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
-        "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@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
diff --git a/docs/dyn/appengine_v1beta.apps.authorizedCertificates.html b/docs/dyn/appengine_v1beta.apps.authorizedCertificates.html
index 4c5b5d8..e056abd 100644
--- a/docs/dyn/appengine_v1beta.apps.authorizedCertificates.html
+++ b/docs/dyn/appengine_v1beta.apps.authorizedCertificates.html
@@ -111,11 +111,8 @@
     ],
     "expireTime": "A String", # The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
     "certificateRawData": { # An SSL certificate obtained from a certificate authority. # The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.
-      "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example:
-          # -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
-          # @InputOnly
-      "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example:
-          # -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+      "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: <pre> -----BEGIN RSA PRIVATE KEY----- <unencrypted_key_value> -----END RSA PRIVATE KEY----- </pre> @InputOnly
+      "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: <pre> -----BEGIN CERTIFICATE----- <certificate_value> -----END CERTIFICATE----- </pre>
     },
     "id": "A String", # Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
     "domainNames": [ # Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
@@ -124,6 +121,9 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -137,11 +137,8 @@
       ],
       "expireTime": "A String", # The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
       "certificateRawData": { # An SSL certificate obtained from a certificate authority. # The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.
-        "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example:
-            # -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
-            # @InputOnly
-        "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example:
-            # -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+        "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: <pre> -----BEGIN RSA PRIVATE KEY----- <unencrypted_key_value> -----END RSA PRIVATE KEY----- </pre> @InputOnly
+        "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: <pre> -----BEGIN CERTIFICATE----- <certificate_value> -----END CERTIFICATE----- </pre>
       },
       "id": "A String", # Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
       "domainNames": [ # Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
@@ -158,11 +155,18 @@
   appsId: string, Part of `name`. Name of the resource to delete. Example: apps/myapp/authorizedCertificates/12345. (required)
   authorizedCertificatesId: string, Part of `name`. See documentation of `appsId`. (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 {}.
+    { # 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>
 
@@ -174,6 +178,9 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/authorizedCertificates/12345. (required)
   authorizedCertificatesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the GET response.
 
 Returns:
@@ -188,11 +195,8 @@
       ],
       "expireTime": "A String", # The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
       "certificateRawData": { # An SSL certificate obtained from a certificate authority. # The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.
-        "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example:
-            # -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
-            # @InputOnly
-        "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example:
-            # -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+        "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: <pre> -----BEGIN RSA PRIVATE KEY----- <unencrypted_key_value> -----END RSA PRIVATE KEY----- </pre> @InputOnly
+        "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: <pre> -----BEGIN CERTIFICATE----- <certificate_value> -----END CERTIFICATE----- </pre>
       },
       "id": "A String", # Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
       "domainNames": [ # Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
@@ -210,11 +214,15 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response message for AuthorizedCertificates.ListAuthorizedCertificates.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
     "certificates": [ # The SSL certificates the user is authorized to administer.
       { # An SSL certificate that a user has been authorized to administer. A user is authorized to administer any certificate that applies to one of their authorized domains.
           "displayName": "A String", # The user-specified display name of the certificate. This is not guaranteed to be unique. Example: My Certificate.
@@ -225,11 +233,8 @@
           ],
           "expireTime": "A String", # The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
           "certificateRawData": { # An SSL certificate obtained from a certificate authority. # The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.
-            "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example:
-                # -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
-                # @InputOnly
-            "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example:
-                # -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+            "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: <pre> -----BEGIN RSA PRIVATE KEY----- <unencrypted_key_value> -----END RSA PRIVATE KEY----- </pre> @InputOnly
+            "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: <pre> -----BEGIN CERTIFICATE----- <certificate_value> -----END CERTIFICATE----- </pre>
           },
           "id": "A String", # Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
           "domainNames": [ # Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
@@ -237,7 +242,6 @@
           ],
         },
     ],
-    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
   }</pre>
 </div>
 
@@ -274,11 +278,8 @@
     ],
     "expireTime": "A String", # The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
     "certificateRawData": { # An SSL certificate obtained from a certificate authority. # The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.
-      "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example:
-          # -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
-          # @InputOnly
-      "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example:
-          # -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+      "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: <pre> -----BEGIN RSA PRIVATE KEY----- <unencrypted_key_value> -----END RSA PRIVATE KEY----- </pre> @InputOnly
+      "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: <pre> -----BEGIN CERTIFICATE----- <certificate_value> -----END CERTIFICATE----- </pre>
     },
     "id": "A String", # Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
     "domainNames": [ # Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
@@ -288,6 +289,9 @@
 
   updateMask: string, Standard field mask for the set of fields to be updated. Updates are only supported on the certificate_raw_data and display_name fields.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -301,11 +305,8 @@
       ],
       "expireTime": "A String", # The time when this certificate expires. To update the renewal time on this certificate, upload an SSL certificate with a different expiration time using AuthorizedCertificates.UpdateAuthorizedCertificate.@OutputOnly
       "certificateRawData": { # An SSL certificate obtained from a certificate authority. # The SSL certificate serving the AuthorizedCertificate resource. This must be obtained independently from a certificate authority.
-        "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example:
-            # -----BEGIN RSA PRIVATE KEY-----  -----END RSA PRIVATE KEY-----
-            # @InputOnly
-        "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example:
-            # -----BEGIN CERTIFICATE-----  -----END CERTIFICATE-----
+        "privateKey": "A String", # Unencrypted PEM encoded RSA private key. This field is set once on certificate creation and then encrypted. The key size must be 2048 bits or fewer. Must include the header and footer. Example: <pre> -----BEGIN RSA PRIVATE KEY----- <unencrypted_key_value> -----END RSA PRIVATE KEY----- </pre> @InputOnly
+        "publicCertificate": "A String", # PEM encoded x.509 public key certificate. This field is set once on certificate creation. Must include the header and footer. Example: <pre> -----BEGIN CERTIFICATE----- <certificate_value> -----END CERTIFICATE----- </pre>
       },
       "id": "A String", # Relative name of the certificate. This is a unique value autogenerated on AuthorizedCertificate resource creation. Example: 12345.@OutputOnly
       "domainNames": [ # Topmost applicable domains of this certificate. This certificate applies to these domains and their subdomains. Example: example.com.@OutputOnly
diff --git a/docs/dyn/appengine_v1beta.apps.authorizedDomains.html b/docs/dyn/appengine_v1beta.apps.authorizedDomains.html
index 13630dc..5a9fa55 100644
--- a/docs/dyn/appengine_v1beta.apps.authorizedDomains.html
+++ b/docs/dyn/appengine_v1beta.apps.authorizedDomains.html
@@ -90,18 +90,21 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # Response message for AuthorizedDomains.ListAuthorizedDomains.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
     "domains": [ # The authorized domains belonging to the user.
       { # A domain that a user has been authorized to administer. To authorize use of a domain, verify ownership via Webmaster Central (https://www.google.com/webmasters/verification/home).
         "name": "A String", # Full path to the AuthorizedDomain resource in the API. Example: apps/myapp/authorizedDomains/example.com.@OutputOnly
         "id": "A String", # Fully qualified domain name of the domain authorized for use. Example: example.com.
       },
     ],
-    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta.apps.domainMappings.html b/docs/dyn/appengine_v1beta.apps.domainMappings.html
index 5b4bc80..c0e9c82 100644
--- a/docs/dyn/appengine_v1beta.apps.domainMappings.html
+++ b/docs/dyn/appengine_v1beta.apps.domainMappings.html
@@ -106,6 +106,7 @@
     "sslSettings": { # SSL configuration for a DomainMapping resource. # SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.
       "certificateId": "A String", # ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.
     },
+    "id": "A String", # Relative name of the domain serving the application. Example: example.com.
     "name": "A String", # Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly
     "resourceRecords": [ # The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly
       { # A DNS resource record.
@@ -114,19 +115,28 @@
         "name": "A String", # Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.
       },
     ],
-    "id": "A String", # Relative name of the domain serving the application. Example: example.com.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -136,10 +146,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -151,15 +161,25 @@
   appsId: string, Part of `name`. Name of the resource to delete. Example: apps/myapp/domainMappings/example.com. (required)
   domainMappingsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -169,10 +189,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -184,6 +204,9 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/domainMappings/example.com. (required)
   domainMappingsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -192,6 +215,7 @@
       "sslSettings": { # SSL configuration for a DomainMapping resource. # SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.
         "certificateId": "A String", # ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.
       },
+      "id": "A String", # Relative name of the domain serving the application. Example: example.com.
       "name": "A String", # Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly
       "resourceRecords": [ # The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly
         { # A DNS resource record.
@@ -200,7 +224,6 @@
           "name": "A String", # Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.
         },
       ],
-      "id": "A String", # Relative name of the domain serving the application. Example: example.com.
     }</pre>
 </div>
 
@@ -213,6 +236,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -224,6 +250,7 @@
           "sslSettings": { # SSL configuration for a DomainMapping resource. # SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.
             "certificateId": "A String", # ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.
           },
+          "id": "A String", # Relative name of the domain serving the application. Example: example.com.
           "name": "A String", # Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly
           "resourceRecords": [ # The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly
             { # A DNS resource record.
@@ -232,7 +259,6 @@
               "name": "A String", # Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.
             },
           ],
-          "id": "A String", # Relative name of the domain serving the application. Example: example.com.
         },
     ],
   }</pre>
@@ -266,6 +292,7 @@
     "sslSettings": { # SSL configuration for a DomainMapping resource. # SSL configuration for this domain. If unconfigured, this domain will not serve with SSL.
       "certificateId": "A String", # ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will remove SSL support. Example: 12345.
     },
+    "id": "A String", # Relative name of the domain serving the application. Example: example.com.
     "name": "A String", # Full path to the DomainMapping resource in the API. Example: apps/myapp/domainMapping/example.com.@OutputOnly
     "resourceRecords": [ # The resource records required to configure this domain mapping. These records must be added to the domain's DNS configuration in order to serve the application via this domain mapping.@OutputOnly
       { # A DNS resource record.
@@ -274,20 +301,29 @@
         "name": "A String", # Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.
       },
     ],
-    "id": "A String", # Relative name of the domain serving the application. Example: example.com.
   }
 
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -297,10 +333,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta.apps.html b/docs/dyn/appengine_v1beta.apps.html
index c9433e3..b378102 100644
--- a/docs/dyn/appengine_v1beta.apps.html
+++ b/docs/dyn/appengine_v1beta.apps.html
@@ -106,20 +106,22 @@
 
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).</p>
+<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields:</p>
 <p class="toc_element">
   <code><a href="#get">get(appsId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about an application.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application.</p>
+<p class="firstline">Updates the specified Application resource. You can update the following fields:</p>
 <p class="toc_element">
   <code><a href="#repair">repair(appsId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Recreates the required App Engine features for the specified App Engine application, for example a Cloud Storage bucket or App Engine service account. Use this method if you receive an error message about a missing feature, for example, Error retrieving the App Engine service account.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
+  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields:
+id - The ID of the target Cloud Platform project.
+location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
 
 Args:
   body: object, The request body. (required)
@@ -152,15 +154,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -170,10 +182,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -184,6 +196,9 @@
 Args:
   appsId: string, Part of `name`. Name of the Application resource to get. Example: apps/myapp. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -217,7 +232,9 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Application resource. You can update the following fields: auth_domain - Google authentication domain for controlling user access to the application. default_cookie_expiration - Cookie expiration policy for the application.
+  <pre>Updates the specified Application resource. You can update the following fields:
+auth_domain - Google authentication domain for controlling user access to the application.
+default_cookie_expiration - Cookie expiration policy for the application.
 
 Args:
   appsId: string, Part of `name`. Name of the Application resource to update. Example: apps/myapp. (required)
@@ -252,15 +269,25 @@
 
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -270,10 +297,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -290,15 +317,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -308,10 +345,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta.apps.locations.html b/docs/dyn/appengine_v1beta.apps.locations.html
index c3e5cff..6bb77ab 100644
--- a/docs/dyn/appengine_v1beta.apps.locations.html
+++ b/docs/dyn/appengine_v1beta.apps.locations.html
@@ -92,12 +92,16 @@
   appsId: string, Part of `name`. Resource name for the location. (required)
   locationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
       "a_key": "A String",
     },
     "locationId": "A String", # The canonical id for this location. For example: "us-east1".
@@ -118,6 +122,9 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -126,7 +133,8 @@
     "nextPageToken": "A String", # The standard List next-page token.
     "locations": [ # A list of locations that matches the specified filter in the request.
       { # A resource that represents Google Cloud Platform location.
-        "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
           "a_key": "A String",
         },
         "locationId": "A String", # The canonical id for this location. For example: "us-east1".
diff --git a/docs/dyn/appengine_v1beta.apps.operations.html b/docs/dyn/appengine_v1beta.apps.operations.html
index 8778ddc..7d5fe28 100644
--- a/docs/dyn/appengine_v1beta.apps.operations.html
+++ b/docs/dyn/appengine_v1beta.apps.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</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>
@@ -92,15 +92,25 @@
   appsId: string, Part of `name`. The name of the operation resource. (required)
   operationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -110,34 +120,45 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
 
 Args:
-  appsId: string, Part of `name`. The name of the operation collection. (required)
+  appsId: string, Part of `name`. The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -147,13 +168,12 @@
           ],
         },
         "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-        "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta.apps.services.html b/docs/dyn/appengine_v1beta.apps.services.html
index 7a8f6e9..0a107cf 100644
--- a/docs/dyn/appengine_v1beta.apps.services.html
+++ b/docs/dyn/appengine_v1beta.apps.services.html
@@ -103,15 +103,25 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -121,10 +131,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -136,6 +146,9 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -147,8 +160,8 @@
           "a_key": 3.14,
         },
       },
-      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
       "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+      "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
     }</pre>
 </div>
 
@@ -161,6 +174,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -174,8 +190,8 @@
               "a_key": 3.14,
             },
           },
-          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
           "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+          "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
         },
     ],
     "nextPageToken": "A String", # Continuation token for fetching the next page of results.
@@ -213,22 +229,32 @@
         "a_key": 3.14,
       },
     },
-    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
     "id": "A String", # Relative name of the service within the application. Example: default.@OutputOnly
+    "name": "A String", # Full path to the Service resource in the API. Example: apps/myapp/services/default.@OutputOnly
   }
 
   migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -238,10 +264,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta.apps.services.versions.html b/docs/dyn/appengine_v1beta.apps.services.versions.html
index 89185b9..84cb676 100644
--- a/docs/dyn/appengine_v1beta.apps.services.versions.html
+++ b/docs/dyn/appengine_v1beta.apps.services.versions.html
@@ -89,14 +89,14 @@
   <code><a href="#get">get(appsId, servicesId, versionsId, x__xgafv=None, view=None)</a></code></p>
 <p class="firstline">Gets the specified Version resource. By default, only a BASIC_VIEW will be returned. Specify the FULL_VIEW parameter to get the full resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(appsId, servicesId, pageSize=None, x__xgafv=None, pageToken=None, view=None)</a></code></p>
+  <code><a href="#list">list(appsId, servicesId, pageSize=None, pageToken=None, x__xgafv=None, view=None)</a></code></p>
 <p class="firstline">Lists the versions of a service.</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>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.</p>
+<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(appsId, servicesId, body, x__xgafv=None)</code>
@@ -113,15 +113,15 @@
       "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
       "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
     },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
       "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
       "maxInstances": 42, # Maximum number of instances to create for this version.
     },
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -141,11 +141,21 @@
     "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
       "url": "A String", # URL to serve the endpoint at.
       "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "script": "A String", # Path to the script from the application root directory.
     },
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
     "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
       "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
       "checkInterval": "A String", # Interval between health checks.
@@ -155,7 +165,6 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
     "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
@@ -166,6 +175,10 @@
     "env": "A String", # App Engine execution environment for this version.Defaults to standard.
     "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
     "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+      "standardSchedulerSettings": { # Scheduler settings for standard environment. # Scheduler settings for standard environment.
+        "targetCpuUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling.
+        "targetThroughputUtilization": 3.14, # Target throughput utilization ratio to maintain when scaling
+      },
       "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
       "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
         "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
@@ -173,15 +186,15 @@
         "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
         "targetSentBytesPerSecond": 42, # Target bytes sent per second.
       },
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetReadOpsPerSecond": 42, # Target ops read per seconds.
         "targetWriteBytesPerSecond": 42, # Target bytes written per second.
         "targetReadBytesPerSecond": 42, # Target bytes read per second.
         "targetWriteOpsPerSecond": 42, # Target ops written per second.
       },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
       "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
         "targetConcurrentRequests": 42, # Target number of concurrent requests.
         "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -199,6 +212,9 @@
       "a_key": "A String",
     },
     "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
       "volumes": [ # User specified volumes.
         { # Volumes mounted within the app container. Only applicable for VM runtimes.
           "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -206,9 +222,6 @@
           "sizeGb": 3.14, # Volume size in gigabytes.
         },
       ],
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "memoryGb": 3.14, # Memory (GB) needed.
     },
     "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
       "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -216,33 +229,29 @@
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
     ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
     "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
     "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
       "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
         "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
       },
+      "build": { # Google Cloud Container Builder build information. # Google Cloud Container Builder build information.
+        "cloudBuildId": "A String", # The Google Cloud Container Builder build id. Example: "f966068f-08b2-42c8-bdfe-74137dff2bf9"
+      },
       "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
         "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
       },
     },
-    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-    "createTime": "A String", # Time that this version was created.@OutputOnly
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-    },
     "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
       "checkInterval": "A String", # Interval between health checks.
       "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -252,6 +261,10 @@
       "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
       "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
       { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -284,15 +297,25 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -302,10 +325,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -318,15 +341,25 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -336,10 +369,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -352,6 +385,9 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the Get response.
 
 Returns:
@@ -362,15 +398,15 @@
         "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
         "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
       },
+      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
         "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
         "maxInstances": 42, # Maximum number of instances to create for this version.
       },
-      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-        "a_key": "A String",
-      },
       "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+          # AutomaticScaling: F1, F2, F4, F4_1G
+          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
       "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
         { # Custom static error page to be served when an error occurs.
           "errorCode": "A String", # Error condition this handler applies to.
@@ -390,11 +426,21 @@
       "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
         "url": "A String", # URL to serve the endpoint at.
         "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
         "login": "A String", # Level of login required to access this resource. Defaults to optional.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
         "script": "A String", # Path to the script from the application root directory.
       },
-      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+          "A String",
+        ],
+        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+            # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+            # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+            # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+      },
       "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
         "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
         "checkInterval": "A String", # Interval between health checks.
@@ -404,7 +450,6 @@
         "timeout": "A String", # Time before the health check is considered failed.
         "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
       },
-      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
       "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
         { # Third-party Python runtime library that is required by the application.
@@ -415,6 +460,10 @@
       "env": "A String", # App Engine execution environment for this version.Defaults to standard.
       "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
       "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+        "standardSchedulerSettings": { # Scheduler settings for standard environment. # Scheduler settings for standard environment.
+          "targetCpuUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling.
+          "targetThroughputUtilization": 3.14, # Target throughput utilization ratio to maintain when scaling
+        },
         "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
         "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
           "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
@@ -422,15 +471,15 @@
           "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
           "targetSentBytesPerSecond": 42, # Target bytes sent per second.
         },
+        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
         "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
           "targetReadOpsPerSecond": 42, # Target ops read per seconds.
           "targetWriteBytesPerSecond": 42, # Target bytes written per second.
           "targetReadBytesPerSecond": 42, # Target bytes read per second.
           "targetWriteOpsPerSecond": 42, # Target ops written per second.
         },
-        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
         "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
           "targetConcurrentRequests": 42, # Target number of concurrent requests.
           "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -448,6 +497,9 @@
         "a_key": "A String",
       },
       "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+        "memoryGb": 3.14, # Memory (GB) needed.
+        "diskGb": 3.14, # Disk size (GB) needed.
+        "cpu": 3.14, # Number of CPU cores needed.
         "volumes": [ # User specified volumes.
           { # Volumes mounted within the app container. Only applicable for VM runtimes.
             "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -455,9 +507,6 @@
             "sizeGb": 3.14, # Volume size in gigabytes.
           },
         ],
-        "diskGb": 3.14, # Disk size (GB) needed.
-        "cpu": 3.14, # Number of CPU cores needed.
-        "memoryGb": 3.14, # Memory (GB) needed.
       },
       "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
         "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -465,33 +514,29 @@
       "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
         "A String",
       ],
+      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+        "a_key": "A String",
+      },
       "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
       "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
         "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
           "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
             "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
             "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
           },
         },
         "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
           "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
         },
+        "build": { # Google Cloud Container Builder build information. # Google Cloud Container Builder build information.
+          "cloudBuildId": "A String", # The Google Cloud Container Builder build id. Example: "f966068f-08b2-42c8-bdfe-74137dff2bf9"
+        },
         "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
           "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
         },
       },
-      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-      "createTime": "A String", # Time that this version was created.@OutputOnly
-      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-          "A String",
-        ],
-        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-      },
       "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
         "checkInterval": "A String", # Interval between health checks.
         "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -501,6 +546,10 @@
         "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
         "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
       },
+      "createTime": "A String", # Time that this version was created.@OutputOnly
+      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+      "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
       "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
       "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
         { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -534,15 +583,18 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(appsId, servicesId, pageSize=None, x__xgafv=None, pageToken=None, view=None)</code>
+    <code class="details" id="list">list(appsId, servicesId, pageSize=None, pageToken=None, x__xgafv=None, view=None)</code>
   <pre>Lists the versions of a service.
 
 Args:
   appsId: string, Part of `parent`. Name of the parent Service resource. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
   pageSize: integer, Maximum results to return per page.
-  x__xgafv: string, V1 error format.
   pageToken: string, Continuation token for fetching the next page of results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the List response.
 
 Returns:
@@ -556,15 +608,15 @@
             "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
             "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
           },
+          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
             "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
             "maxInstances": 42, # Maximum number of instances to create for this version.
           },
-          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-            "a_key": "A String",
-          },
           "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+              # AutomaticScaling: F1, F2, F4, F4_1G
+              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
           "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
             { # Custom static error page to be served when an error occurs.
               "errorCode": "A String", # Error condition this handler applies to.
@@ -584,11 +636,21 @@
           "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
             "url": "A String", # URL to serve the endpoint at.
             "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
             "login": "A String", # Level of login required to access this resource. Defaults to optional.
+            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
             "script": "A String", # Path to the script from the application root directory.
           },
-          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+              "A String",
+            ],
+            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+                # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+                # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+                # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+          },
           "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
             "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
             "checkInterval": "A String", # Interval between health checks.
@@ -598,7 +660,6 @@
             "timeout": "A String", # Time before the health check is considered failed.
             "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
           },
-          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
           "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
             { # Third-party Python runtime library that is required by the application.
@@ -609,6 +670,10 @@
           "env": "A String", # App Engine execution environment for this version.Defaults to standard.
           "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
           "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+            "standardSchedulerSettings": { # Scheduler settings for standard environment. # Scheduler settings for standard environment.
+              "targetCpuUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling.
+              "targetThroughputUtilization": 3.14, # Target throughput utilization ratio to maintain when scaling
+            },
             "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
             "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
               "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
@@ -616,15 +681,15 @@
               "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
               "targetSentBytesPerSecond": 42, # Target bytes sent per second.
             },
+            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
             "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
               "targetReadOpsPerSecond": 42, # Target ops read per seconds.
               "targetWriteBytesPerSecond": 42, # Target bytes written per second.
               "targetReadBytesPerSecond": 42, # Target bytes read per second.
               "targetWriteOpsPerSecond": 42, # Target ops written per second.
             },
-            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
             "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
               "targetConcurrentRequests": 42, # Target number of concurrent requests.
               "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -642,6 +707,9 @@
             "a_key": "A String",
           },
           "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+            "memoryGb": 3.14, # Memory (GB) needed.
+            "diskGb": 3.14, # Disk size (GB) needed.
+            "cpu": 3.14, # Number of CPU cores needed.
             "volumes": [ # User specified volumes.
               { # Volumes mounted within the app container. Only applicable for VM runtimes.
                 "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -649,9 +717,6 @@
                 "sizeGb": 3.14, # Volume size in gigabytes.
               },
             ],
-            "diskGb": 3.14, # Disk size (GB) needed.
-            "cpu": 3.14, # Number of CPU cores needed.
-            "memoryGb": 3.14, # Memory (GB) needed.
           },
           "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
             "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -659,33 +724,29 @@
           "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
             "A String",
           ],
+          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+            "a_key": "A String",
+          },
           "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
           "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
             "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
               "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
                 "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
                 "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
               },
             },
             "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
               "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
             },
+            "build": { # Google Cloud Container Builder build information. # Google Cloud Container Builder build information.
+              "cloudBuildId": "A String", # The Google Cloud Container Builder build id. Example: "f966068f-08b2-42c8-bdfe-74137dff2bf9"
+            },
             "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
               "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+              "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
             },
           },
-          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-          "createTime": "A String", # Time that this version was created.@OutputOnly
-          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-              "A String",
-            ],
-            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-          },
           "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
             "checkInterval": "A String", # Interval between health checks.
             "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -695,6 +756,10 @@
             "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
             "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
           },
+          "createTime": "A String", # Time that this version was created.@OutputOnly
+          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+          "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
           "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
           "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
             { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -745,7 +810,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, servicesId, versionsId, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.
+  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
+serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
+instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
+automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
 
 Args:
   appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1. (required)
@@ -759,15 +828,15 @@
       "configId": "A String", # Endpoints service configuration id as specified by the Service Management API. For example "2016-09-19r1"
       "name": "A String", # Endpoints service name which is the name of the "service" resource in the Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
     },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "basicScaling": { # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A service with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
       "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
       "maxInstances": 42, # Maximum number of instances to create for this version.
     },
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -787,11 +856,21 @@
     "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
       "url": "A String", # URL to serve the endpoint at.
       "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "script": "A String", # Path to the script from the application root directory.
     },
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+    },
     "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
       "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
       "checkInterval": "A String", # Interval between health checks.
@@ -801,7 +880,6 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "versionUrl": "A String", # Serving URL for this version. Example: "https://myversion-dot-myservice-dot-myapp.appspot.com"@OutputOnly
     "libraries": [ # Configuration for third-party Python runtime libraries that are required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
@@ -812,6 +890,10 @@
     "env": "A String", # App Engine execution environment for this version.Defaults to standard.
     "diskUsageBytes": "A String", # Total size in bytes of all the files that are included in this version and curerntly hosted on the App Engine disk.@OutputOnly
     "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
+      "standardSchedulerSettings": { # Scheduler settings for standard environment. # Scheduler settings for standard environment.
+        "targetCpuUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling.
+        "targetThroughputUtilization": 3.14, # Target throughput utilization ratio to maintain when scaling
+      },
       "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
       "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
         "targetReceivedPacketsPerSecond": 42, # Target packets received per second.
@@ -819,15 +901,15 @@
         "targetReceivedBytesPerSecond": 42, # Target bytes received per second.
         "targetSentBytesPerSecond": 42, # Target bytes sent per second.
       },
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetReadOpsPerSecond": 42, # Target ops read per seconds.
         "targetWriteBytesPerSecond": 42, # Target bytes written per second.
         "targetReadBytesPerSecond": 42, # Target bytes read per second.
         "targetWriteOpsPerSecond": 42, # Target ops written per second.
       },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.
       "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
         "targetConcurrentRequests": 42, # Target number of concurrent requests.
         "targetRequestCountPerSecond": 42, # Target requests per second.
@@ -845,6 +927,9 @@
       "a_key": "A String",
     },
     "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
       "volumes": [ # User specified volumes.
         { # Volumes mounted within the app container. Only applicable for VM runtimes.
           "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -852,9 +937,6 @@
           "sizeGb": 3.14, # Volume size in gigabytes.
         },
       ],
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "memoryGb": 3.14, # Memory (GB) needed.
     },
     "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
       "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -862,33 +944,29 @@
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
     ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
     "createdBy": "A String", # Email address of the user who created this version.@OutputOnly
     "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
       "container": { # Docker image that is used to create a container and start a VM instance for the version that you deploy. Only applicable for instances running in the App Engine flexible environment. # The Docker image for the container that runs the version. Only applicable for instances running in the App Engine flexible environment.
         "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
       },
+      "build": { # Google Cloud Container Builder build information. # Google Cloud Container Builder build information.
+        "cloudBuildId": "A String", # The Google Cloud Container Builder build id. Example: "f966068f-08b2-42c8-bdfe-74137dff2bf9"
+      },
       "zip": { # The zip file information for a zip deployment. # The zip file for this deployment, if this is a zip deployment.
         "filesCount": 42, # An estimate of the number of files in a zip for a zip deployment. If set, must be greater than or equal to the actual number of files. Used for optimizing performance; if not provided, deployment may be slow.
-        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+        "sourceUrl": "A String", # URL of the zip file to deploy from. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
       },
     },
-    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
-    "createTime": "A String", # Time that this version was created.@OutputOnly
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
-    },
     "livenessCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. # Configures liveness health checking for VM instances. Unhealthy instances are stopped and replaced with new instancesOnly returned in GET requests if view=FULL is set.
       "checkInterval": "A String", # Interval between health checks.
       "initialDelay": "A String", # The initial delay before starting to execute the checks.
@@ -898,6 +976,10 @@
       "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
       "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
+    "createTime": "A String", # Time that this version was created.@OutputOnly
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+    "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
       { # URL pattern and description of how the URL should be handled. App Engine can handle URLs by executing application code or by serving static files uploaded with the version, such as images, CSS, or JavaScript.
@@ -931,15 +1013,25 @@
 
   updateMask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -949,10 +1041,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta.apps.services.versions.instances.html b/docs/dyn/appengine_v1beta.apps.services.versions.instances.html
index 51123af..9175d41 100644
--- a/docs/dyn/appengine_v1beta.apps.services.versions.instances.html
+++ b/docs/dyn/appengine_v1beta.apps.services.versions.instances.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(appsId, servicesId, versionsId, instancesId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets instance information.</p>
 <p class="toc_element">
-  <code><a href="#list">list(appsId, servicesId, versionsId, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(appsId, servicesId, versionsId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -103,19 +103,31 @@
     The object takes the form of:
 
 { # Request message for Instances.DebugInstance.
-    "sshKey": "A String", # Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
+        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
+        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -125,10 +137,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -142,15 +154,25 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -160,10 +182,10 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
-    "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
   }</pre>
 </div>
 
@@ -177,6 +199,9 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -187,7 +212,7 @@
     "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
     "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+    "availability": "A String", # Availability of the instance.@OutputOnly
     "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
     "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "startTime": "A String", # Time that this instance was started.@OutputOnly
@@ -195,14 +220,14 @@
     "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
     "requests": 42, # Number of requests since this instance was started.@OutputOnly
     "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "availability": "A String", # Availability of the instance.@OutputOnly
+    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
     "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(appsId, servicesId, versionsId, pageSize=None, x__xgafv=None, pageToken=None)</code>
+    <code class="details" id="list">list(appsId, servicesId, versionsId, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the instances of a version.Tip: To aggregate details about instances over time, see the Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
 
 Args:
@@ -210,8 +235,11 @@
   servicesId: string, Part of `parent`. See documentation of `appsId`. (required)
   versionsId: string, Part of `parent`. See documentation of `appsId`. (required)
   pageSize: integer, Maximum results to return per page.
-  x__xgafv: string, V1 error format.
   pageToken: string, Continuation token for fetching the next page of results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -225,7 +253,7 @@
         "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
         "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
+        "availability": "A String", # Availability of the instance.@OutputOnly
         "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
         "vmDebugEnabled": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "startTime": "A String", # Time that this instance was started.@OutputOnly
@@ -233,7 +261,7 @@
         "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
         "requests": 42, # Number of requests since this instance was started.@OutputOnly
         "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "availability": "A String", # Availability of the instance.@OutputOnly
+        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
         "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
       },
diff --git a/docs/dyn/appengine_v1beta4.apps.html b/docs/dyn/appengine_v1beta4.apps.html
index fadcb1e..edd52b6 100644
--- a/docs/dyn/appengine_v1beta4.apps.html
+++ b/docs/dyn/appengine_v1beta4.apps.html
@@ -91,17 +91,19 @@
 
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).</p>
+<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields:</p>
 <p class="toc_element">
   <code><a href="#get">get(appsId, x__xgafv=None, ensureResourcesExist=None)</a></code></p>
 <p class="firstline">Gets information about an application.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, body, mask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Application resource. You can update the following fields: auth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.auth_domain) default_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.default_cookie_expiration)</p>
+<p class="firstline">Updates the specified Application resource. You can update the following fields:</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
+  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields:
+id - The ID of the target Cloud Platform project.
+location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
 
 Args:
   body: object, The request body. (required)
@@ -120,27 +122,34 @@
       },
     ],
     "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
-    "iap": { # Identity-Aware Proxy
-      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
-      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
-      "oauth2ClientSecret": "A String", # For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
-      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
-    },
+    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
     "location": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
     "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
-    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+      "oauth2ClientSecret": "A String", # For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+    },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -150,6 +159,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -164,6 +176,9 @@
 Args:
   appsId: string, Part of `name`. Name of the application to get. Example: apps/myapp. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   ensureResourcesExist: boolean, Certain resources associated with an application are created on-demand. Controls whether these resources should be created when performing the GET operation. If specified and any resources could not be created, the request will fail with an error code. Additionally, this parameter can cause the request to take longer to complete.
 
 Returns:
@@ -182,21 +197,23 @@
         },
       ],
       "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
-      "iap": { # Identity-Aware Proxy
-        "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
-        "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
-        "oauth2ClientSecret": "A String", # For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
-        "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
-      },
+      "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
       "location": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
       "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
-      "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+      "iap": { # Identity-Aware Proxy
+        "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+        "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+        "oauth2ClientSecret": "A String", # For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+        "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+      },
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, body, mask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Application resource. You can update the following fields: auth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.auth_domain) default_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.default_cookie_expiration)
+  <pre>Updates the specified Application resource. You can update the following fields:
+auth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.auth_domain)
+default_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps#Application.FIELDS.default_cookie_expiration)
 
 Args:
   appsId: string, Part of `name`. Name of the Application resource to update. Example: apps/myapp. (required)
@@ -216,28 +233,35 @@
       },
     ],
     "defaultCookieExpiration": "A String", # Cookie expiration policy for this application.
-    "iap": { # Identity-Aware Proxy
-      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
-      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
-      "oauth2ClientSecret": "A String", # For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
-      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
-    },
+    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
     "location": "A String", # Location from which this application will be run. Application instances will run out of data centers in the chosen location, which is also where all of the application's end user content is stored.Defaults to us-central.Options are:us-central - Central USeurope-west - Western Europeus-east1 - Eastern US
     "authDomain": "A String", # Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
-    "id": "A String", # Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientSecretSha256": "A String", # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
+      "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests.If true, the oauth2_client_id and oauth2_client_secret fields must be non-empty.
+      "oauth2ClientSecret": "A String", # For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.@InputOnly
+      "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
+    },
   }
 
   mask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -247,6 +271,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta4.apps.locations.html b/docs/dyn/appengine_v1beta4.apps.locations.html
index 2eab9cf..388981a 100644
--- a/docs/dyn/appengine_v1beta4.apps.locations.html
+++ b/docs/dyn/appengine_v1beta4.apps.locations.html
@@ -92,12 +92,16 @@
   appsId: string, Part of `name`. Resource name for the location. (required)
   locationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
       "a_key": "A String",
     },
     "locationId": "A String", # The canonical id for this location. For example: "us-east1".
@@ -118,6 +122,9 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -126,7 +133,8 @@
     "nextPageToken": "A String", # The standard List next-page token.
     "locations": [ # A list of locations that matches the specified filter in the request.
       { # A resource that represents Google Cloud Platform location.
-        "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
           "a_key": "A String",
         },
         "locationId": "A String", # The canonical id for this location. For example: "us-east1".
diff --git a/docs/dyn/appengine_v1beta4.apps.modules.html b/docs/dyn/appengine_v1beta4.apps.modules.html
index 25c8f14..01f4dfc 100644
--- a/docs/dyn/appengine_v1beta4.apps.modules.html
+++ b/docs/dyn/appengine_v1beta4.apps.modules.html
@@ -103,15 +103,22 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default. (required)
   modulesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -121,6 +128,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -136,19 +146,22 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/modules/default. (required)
   modulesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Module resource is a logical component of an application that can share state and communicate in a secure fashion with other modules. For example, an application that handles customer requests might include separate modules to handle tasks such as backend data analysis or API requests from mobile devices. Each module has a collection of versions that define a specific set of code used to implement the functionality of that module.
+      "id": "A String", # Relative name of the module within the application. Example: default.@OutputOnly
+      "name": "A String", # Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly
       "split": { # Traffic routing configuration for versions within a single module. Traffic splits define how traffic directed to the module is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the module.
         "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
         "allocations": { # Mapping from version IDs within the module to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the module may not have any traffic allocation. Modules that have traffic allocated cannot be deleted until either the module is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
           "a_key": 3.14,
         },
       },
-      "name": "A String", # Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly
-      "id": "A String", # Relative name of the module within the application. Example: default.@OutputOnly
     }</pre>
 </div>
 
@@ -161,6 +174,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -169,14 +185,14 @@
     "nextPageToken": "A String", # Continuation token for fetching the next page of results.
     "modules": [ # The modules belonging to the requested application.
       { # A Module resource is a logical component of an application that can share state and communicate in a secure fashion with other modules. For example, an application that handles customer requests might include separate modules to handle tasks such as backend data analysis or API requests from mobile devices. Each module has a collection of versions that define a specific set of code used to implement the functionality of that module.
+          "id": "A String", # Relative name of the module within the application. Example: default.@OutputOnly
+          "name": "A String", # Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly
           "split": { # Traffic routing configuration for versions within a single module. Traffic splits define how traffic directed to the module is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the module.
             "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
             "allocations": { # Mapping from version IDs within the module to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the module may not have any traffic allocation. Modules that have traffic allocated cannot be deleted until either the module is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
               "a_key": 3.14,
             },
           },
-          "name": "A String", # Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly
-          "id": "A String", # Relative name of the module within the application. Example: default.@OutputOnly
         },
     ],
   }</pre>
@@ -207,28 +223,35 @@
     The object takes the form of:
 
 { # A Module resource is a logical component of an application that can share state and communicate in a secure fashion with other modules. For example, an application that handles customer requests might include separate modules to handle tasks such as backend data analysis or API requests from mobile devices. Each module has a collection of versions that define a specific set of code used to implement the functionality of that module.
+    "id": "A String", # Relative name of the module within the application. Example: default.@OutputOnly
+    "name": "A String", # Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly
     "split": { # Traffic routing configuration for versions within a single module. Traffic splits define how traffic directed to the module is assigned to versions. # Mapping that defines fractional HTTP traffic diversion to different versions within the module.
       "shardBy": "A String", # Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.
       "allocations": { # Mapping from version IDs within the module to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the module may not have any traffic allocation. Modules that have traffic allocated cannot be deleted until either the module is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.
         "a_key": 3.14,
       },
     },
-    "name": "A String", # Full path to the Module resource in the API. Example: apps/myapp/modules/default.@OutputOnly
-    "id": "A String", # Relative name of the module within the application. Example: default.@OutputOnly
   }
 
   migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules#shardby) field in the Module resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
   mask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -238,6 +261,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta4.apps.modules.versions.html b/docs/dyn/appengine_v1beta4.apps.modules.versions.html
index be1bd3a..fc70663 100644
--- a/docs/dyn/appengine_v1beta4.apps.modules.versions.html
+++ b/docs/dyn/appengine_v1beta4.apps.modules.versions.html
@@ -96,7 +96,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, modulesId, versionsId, body, mask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.</p>
+<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(appsId, modulesId, body, x__xgafv=None)</code>
@@ -109,15 +109,14 @@
     The object takes the form of:
 
 { # A Version resource is a specific set of source code and configuration files that are deployed into a module.
-    "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-      "maxInstances": 42, # Maximum number of instances to create for this version.
-    },
     "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
       "a_key": "A String",
     },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -133,7 +132,13 @@
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
       "script": "A String", # Path to the script from the application root directory.
     },
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+    },
     "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
       "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
       "checkInterval": "A String", # Interval between health checks.
@@ -143,22 +148,23 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
         "version": "A String", # Version of the library to select, or "latest".
         "name": "A String", # Name of the library. Example: "django".
       },
     ],
-    "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+    "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+      "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    },
     "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
     "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
       "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
       "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
         "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-        "targetSentBytesPerSec": 42, # Target bytes sent per second.
-        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
         "targetSentPacketsPerSec": 42, # Target packets sent per second.
+        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+        "targetSentBytesPerSec": 42, # Target bytes sent per second.
       },
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetWriteOpsPerSec": 42, # Target ops written per second.
@@ -197,8 +203,10 @@
       "cpu": 3.14, # Number of CPU cores needed.
       "memoryGb": 3.14, # Memory (GB) needed.
     },
-    "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-      "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+    "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+      "maxInstances": 42, # Maximum number of instances to create for this version.
     },
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
@@ -207,7 +215,7 @@
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
@@ -221,13 +229,8 @@
         "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
       },
     },
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-    },
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
     "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -262,8 +265,8 @@
         "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
           "scriptPath": "A String", # Path to the script from the application root directory.
         },
-        "login": "A String", # Level of login required to access this resource.
         "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
       },
     ],
     "creationTime": "A String", # Time that this version was created.@OutputOnly
@@ -272,15 +275,22 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -290,6 +300,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -306,15 +319,22 @@
   modulesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -324,6 +344,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -340,21 +363,23 @@
   modulesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the Get response.
 
 Returns:
   An object of the form:
 
     { # A Version resource is a specific set of source code and configuration files that are deployed into a module.
-      "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-        "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-        "maxInstances": 42, # Maximum number of instances to create for this version.
-      },
       "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
         "a_key": "A String",
       },
+      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+          # AutomaticScaling: F1, F2, F4, F4_1G
+          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
       "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
         { # Custom static error page to be served when an error occurs.
           "errorCode": "A String", # Error condition this handler applies to.
@@ -370,7 +395,13 @@
         "login": "A String", # Level of login required to access this resource. Defaults to optional.
         "script": "A String", # Path to the script from the application root directory.
       },
-      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+          "A String",
+        ],
+        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+      },
       "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
         "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
         "checkInterval": "A String", # Interval between health checks.
@@ -380,22 +411,23 @@
         "timeout": "A String", # Time before the health check is considered failed.
         "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
       },
-      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
         { # Third-party Python runtime library that is required by the application.
           "version": "A String", # Version of the library to select, or "latest".
           "name": "A String", # Name of the library. Example: "django".
         },
       ],
-      "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+      "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+        "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+      },
       "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
       "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
         "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
         "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
           "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-          "targetSentBytesPerSec": 42, # Target bytes sent per second.
-          "targetReceivedPacketsPerSec": 42, # Target packets received per second.
           "targetSentPacketsPerSec": 42, # Target packets sent per second.
+          "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+          "targetSentBytesPerSec": 42, # Target bytes sent per second.
         },
         "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
           "targetWriteOpsPerSec": 42, # Target ops written per second.
@@ -434,8 +466,10 @@
         "cpu": 3.14, # Number of CPU cores needed.
         "memoryGb": 3.14, # Memory (GB) needed.
       },
-      "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-        "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+      "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+      "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+        "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+        "maxInstances": 42, # Maximum number of instances to create for this version.
       },
       "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
         "A String",
@@ -444,7 +478,7 @@
         "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
           "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
             "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
             "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
           },
         },
@@ -458,13 +492,8 @@
           "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
         },
       },
-      "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-        "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-        "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-          "A String",
-        ],
-        "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      },
+      "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+      "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
       "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
       "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly
       "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -499,8 +528,8 @@
           "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
             "scriptPath": "A String", # Path to the script from the application root directory.
           },
-          "login": "A String", # Level of login required to access this resource.
           "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+          "login": "A String", # Level of login required to access this resource.
         },
       ],
       "creationTime": "A String", # Time that this version was created.@OutputOnly
@@ -519,6 +548,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the List response.
 
 Returns:
@@ -528,15 +560,14 @@
     "nextPageToken": "A String", # Continuation token for fetching the next page of results.
     "versions": [ # The versions belonging to the requested module.
       { # A Version resource is a specific set of source code and configuration files that are deployed into a module.
-          "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-            "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-            "maxInstances": 42, # Maximum number of instances to create for this version.
-          },
           "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
             "a_key": "A String",
           },
+          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+              # AutomaticScaling: F1, F2, F4, F4_1G
+              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
           "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
             { # Custom static error page to be served when an error occurs.
               "errorCode": "A String", # Error condition this handler applies to.
@@ -552,7 +583,13 @@
             "login": "A String", # Level of login required to access this resource. Defaults to optional.
             "script": "A String", # Path to the script from the application root directory.
           },
-          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+              "A String",
+            ],
+            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+          },
           "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
             "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
             "checkInterval": "A String", # Interval between health checks.
@@ -562,22 +599,23 @@
             "timeout": "A String", # Time before the health check is considered failed.
             "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
           },
-          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
             { # Third-party Python runtime library that is required by the application.
               "version": "A String", # Version of the library to select, or "latest".
               "name": "A String", # Name of the library. Example: "django".
             },
           ],
-          "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+          "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+            "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+          },
           "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
           "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
             "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
             "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
               "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-              "targetSentBytesPerSec": 42, # Target bytes sent per second.
-              "targetReceivedPacketsPerSec": 42, # Target packets received per second.
               "targetSentPacketsPerSec": 42, # Target packets sent per second.
+              "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+              "targetSentBytesPerSec": 42, # Target bytes sent per second.
             },
             "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
               "targetWriteOpsPerSec": 42, # Target ops written per second.
@@ -616,8 +654,10 @@
             "cpu": 3.14, # Number of CPU cores needed.
             "memoryGb": 3.14, # Memory (GB) needed.
           },
-          "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-            "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+          "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+          "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+            "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+            "maxInstances": 42, # Maximum number of instances to create for this version.
           },
           "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
             "A String",
@@ -626,7 +666,7 @@
             "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
               "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
                 "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
                 "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
               },
             },
@@ -640,13 +680,8 @@
               "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
             },
           },
-          "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-            "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-            "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-              "A String",
-            ],
-            "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-          },
+          "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+          "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
           "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
           "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly
           "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -681,8 +716,8 @@
               "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
                 "scriptPath": "A String", # Path to the script from the application root directory.
               },
-              "login": "A String", # Level of login required to access this resource.
               "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+              "login": "A String", # Level of login required to access this resource.
             },
           ],
           "creationTime": "A String", # Time that this version was created.@OutputOnly
@@ -709,7 +744,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, modulesId, versionsId, body, mask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.
+  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
+serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
+instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
+automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta4/apps.modules.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
 
 Args:
   appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/modules/default/versions/1. (required)
@@ -719,15 +758,14 @@
     The object takes the form of:
 
 { # A Version resource is a specific set of source code and configuration files that are deployed into a module.
-    "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
-      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
-      "maxInstances": 42, # Maximum number of instances to create for this version.
-    },
     "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
       "a_key": "A String",
     },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -743,7 +781,13 @@
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
       "script": "A String", # Path to the script from the application root directory.
     },
-    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
+      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
+      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
+        "A String",
+      ],
+      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
+    },
     "healthCheck": { # Health checking configuration for VM instances. Unhealthy instances are killed and replaced with new instances. Only applicable for instances in App Engine flexible environment. # Configures health checking for VM instances. Unhealthy instances are stopped and replaced with new instances. Only applicable for VM runtimes.Only returned in GET requests if view=FULL is set.
       "restartThreshold": 42, # Number of consecutive failed health checks required before an instance is restarted.
       "checkInterval": "A String", # Interval between health checks.
@@ -753,22 +797,23 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
         "version": "A String", # Version of the library to select, or "latest".
         "name": "A String", # Name of the library. Example: "django".
       },
     ],
-    "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+    "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
+      "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    },
     "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
     "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
       "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
       "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
         "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-        "targetSentBytesPerSec": 42, # Target bytes sent per second.
-        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
         "targetSentPacketsPerSec": 42, # Target packets sent per second.
+        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+        "targetSentBytesPerSec": 42, # Target bytes sent per second.
       },
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetWriteOpsPerSec": 42, # Target ops written per second.
@@ -807,8 +852,10 @@
       "cpu": 3.14, # Number of CPU cores needed.
       "memoryGb": 3.14, # Memory (GB) needed.
     },
-    "manualScaling": { # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A module with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
-      "instances": 42, # Number of instances to assign to the module at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
+    "deployer": "A String", # Email address of the user who created this version.@OutputOnly
+    "basicScaling": { # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity. # A module with basic scaling will create an instance when the application receives a request. The instance will be turned down when the app becomes idle. Basic scaling is ideal for work that is intermittent or driven by user activity.
+      "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
+      "maxInstances": 42, # Maximum number of instances to create for this version.
     },
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
@@ -817,7 +864,7 @@
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
@@ -831,13 +878,8 @@
         "image": "A String", # URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
       },
     },
-    "network": { # Extra network settings. Only applicable for VM runtimes. # Extra network settings. Only applicable for VM runtimes.
-      "instanceTag": "A String", # Tag to apply to the VM instance during creation.
-      "forwardedPorts": [ # List of ports, or port pairs, to forward from the virtual machine to the application container.
-        "A String",
-      ],
-      "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-    },
+    "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
     "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/modules/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -872,8 +914,8 @@
         "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
           "scriptPath": "A String", # Path to the script from the application root directory.
         },
-        "login": "A String", # Level of login required to access this resource.
         "redirectHttpResponseCode": "A String", # 30x code to use when performing redirects for the secure field. Defaults to 302.
+        "login": "A String", # Level of login required to access this resource.
       },
     ],
     "creationTime": "A String", # Time that this version was created.@OutputOnly
@@ -883,15 +925,22 @@
 
   mask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -901,6 +950,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta4.apps.modules.versions.instances.html b/docs/dyn/appengine_v1beta4.apps.modules.versions.instances.html
index 58e36e9..2ecbcca 100644
--- a/docs/dyn/appengine_v1beta4.apps.modules.versions.instances.html
+++ b/docs/dyn/appengine_v1beta4.apps.modules.versions.instances.html
@@ -103,19 +103,28 @@
     The object takes the form of:
 
 { # Request message for Instances.DebugInstance.
-    "sshKey": "A String", # Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
+        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
+        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -125,6 +134,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -142,15 +154,22 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -160,6 +179,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -177,6 +199,9 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -184,18 +209,18 @@
     { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
     "errors": 42, # Number of errors since this instance was started.@OutputOnly
     "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.@OutputOnly
+    "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "startTimestamp": "A String", # Time that this instance was started.@OutputOnly
     "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
     "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
-    "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "availability": "A String", # Availability of the instance.@OutputOnly
     "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
     "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
     "requests": 42, # Number of requests since this instance was started.@OutputOnly
     "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "availability": "A String", # Availability of the instance.@OutputOnly
+    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
     "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
   }</pre>
@@ -212,6 +237,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -222,18 +250,18 @@
       { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
         "errors": 42, # Number of errors since this instance was started.@OutputOnly
         "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/modules/default/versions/v1/instances/instance-1.@OutputOnly
+        "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "startTimestamp": "A String", # Time that this instance was started.@OutputOnly
         "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
         "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
-        "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "availability": "A String", # Availability of the instance.@OutputOnly
         "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
         "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
         "requests": 42, # Number of requests since this instance was started.@OutputOnly
         "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "availability": "A String", # Availability of the instance.@OutputOnly
+        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
         "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
       },
diff --git a/docs/dyn/appengine_v1beta4.apps.operations.html b/docs/dyn/appengine_v1beta4.apps.operations.html
index 72ba064..067fa29 100644
--- a/docs/dyn/appengine_v1beta4.apps.operations.html
+++ b/docs/dyn/appengine_v1beta4.apps.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</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>
@@ -92,15 +92,22 @@
   appsId: string, Part of `name`. The name of the operation resource. (required)
   operationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -110,6 +117,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -119,25 +129,33 @@
 
 <div class="method">
     <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
 
 Args:
-  appsId: string, Part of `name`. The name of the operation collection. (required)
+  appsId: string, Part of `name`. The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -147,13 +165,15 @@
           ],
         },
         "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
         "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/appengine_v1beta5.apps.html b/docs/dyn/appengine_v1beta5.apps.html
index e0b3803..a5c2100 100644
--- a/docs/dyn/appengine_v1beta5.apps.html
+++ b/docs/dyn/appengine_v1beta5.apps.html
@@ -91,17 +91,19 @@
 
 <p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).</p>
+<p class="firstline">Creates an App Engine application for a Google Cloud Platform project. Required fields:</p>
 <p class="toc_element">
   <code><a href="#get">get(appsId, x__xgafv=None, ensureResourcesExist=None)</a></code></p>
 <p class="firstline">Gets information about an application.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, body, mask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Application resource. You can update the following fields: auth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.auth_domain) default_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.default_cookie_expiration)</p>
+<p class="firstline">Updates the specified Application resource. You can update the following fields:</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
-  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
+  <pre>Creates an App Engine application for a Google Cloud Platform project. Required fields:
+id - The ID of the target Cloud Platform project.
+location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/python/console/).
 
 Args:
   body: object, The request body. (required)
@@ -132,15 +134,22 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -150,6 +159,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -164,6 +176,9 @@
 Args:
   appsId: string, Part of `name`. Name of the application to get. Example: apps/myapp. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   ensureResourcesExist: boolean, Certain resources associated with an application are created on-demand. Controls whether these resources should be created when performing the GET operation. If specified and any resources could not be created, the request will fail with an error code. Additionally, this parameter can cause the request to take longer to complete. Note: This parameter will be deprecated in a future version of the API.
 
 Returns:
@@ -196,7 +211,9 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, body, mask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Application resource. You can update the following fields: auth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.auth_domain) default_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.default_cookie_expiration)
+  <pre>Updates the specified Application resource. You can update the following fields:
+auth_domain (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.auth_domain)
+default_cookie_expiration (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps#Application.FIELDS.default_cookie_expiration)
 
 Args:
   appsId: string, Part of `name`. Name of the Application resource to update. Example: apps/myapp. (required)
@@ -229,15 +246,22 @@
 
   mask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -247,6 +271,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta5.apps.locations.html b/docs/dyn/appengine_v1beta5.apps.locations.html
index 2ab9275..64c7372 100644
--- a/docs/dyn/appengine_v1beta5.apps.locations.html
+++ b/docs/dyn/appengine_v1beta5.apps.locations.html
@@ -92,12 +92,16 @@
   appsId: string, Part of `name`. Resource name for the location. (required)
   locationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+    "labels": { # Cross-service attributes for the location. For example
+        # {"cloud.googleapis.com/region": "us-east1"}
       "a_key": "A String",
     },
     "locationId": "A String", # The canonical id for this location. For example: "us-east1".
@@ -118,6 +122,9 @@
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -126,7 +133,8 @@
     "nextPageToken": "A String", # The standard List next-page token.
     "locations": [ # A list of locations that matches the specified filter in the request.
       { # A resource that represents Google Cloud Platform location.
-        "labels": { # Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}
+        "labels": { # Cross-service attributes for the location. For example
+            # {"cloud.googleapis.com/region": "us-east1"}
           "a_key": "A String",
         },
         "locationId": "A String", # The canonical id for this location. For example: "us-east1".
diff --git a/docs/dyn/appengine_v1beta5.apps.operations.html b/docs/dyn/appengine_v1beta5.apps.operations.html
index 7b8249c..ace6b71 100644
--- a/docs/dyn/appengine_v1beta5.apps.operations.html
+++ b/docs/dyn/appengine_v1beta5.apps.operations.html
@@ -79,7 +79,7 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</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>
@@ -92,15 +92,22 @@
   appsId: string, Part of `name`. The name of the operation resource. (required)
   operationsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -110,6 +117,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -119,14 +129,17 @@
 
 <div class="method">
     <code class="details" id="list">list(appsId, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
 
 Args:
-  appsId: string, Part of `name`. The name of the operation collection. (required)
+  appsId: string, Part of `name`. The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -134,10 +147,14 @@
     { # The response message for Operations.ListOperations.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+        "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+            # Simple to use and understand for most users
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+            # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+            # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+            # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
           "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
           "code": 42, # The status code, which should be an enum value of google.rpc.Code.
           "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -147,6 +164,9 @@
           ],
         },
         "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
         "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta5.apps.services.html b/docs/dyn/appengine_v1beta5.apps.services.html
index 063d274..3cb89d4 100644
--- a/docs/dyn/appengine_v1beta5.apps.services.html
+++ b/docs/dyn/appengine_v1beta5.apps.services.html
@@ -103,15 +103,22 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -121,6 +128,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -136,6 +146,9 @@
   appsId: string, Part of `name`. Name of the resource requested. Example: apps/myapp/services/default. (required)
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -161,6 +174,9 @@
   pageSize: integer, Maximum results to return per page.
   pageToken: string, Continuation token for fetching the next page of results.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -220,15 +236,22 @@
   migrateTraffic: boolean, Set to true to gradually shift traffic to one or more versions that you specify. By default, traffic is shifted immediately. For gradual traffic migration, the target versions must be located within instances that are configured for both warmup requests (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#inboundservicetype) and automatic scaling (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#automaticscaling). You must specify the shardBy (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services#shardby) field in the Service resource. Gradual traffic migration is not supported in the App Engine flexible environment. For examples, see Migrating and Splitting Traffic (https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
   mask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -238,6 +261,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta5.apps.services.versions.html b/docs/dyn/appengine_v1beta5.apps.services.versions.html
index f6942a7..5595651 100644
--- a/docs/dyn/appengine_v1beta5.apps.services.versions.html
+++ b/docs/dyn/appengine_v1beta5.apps.services.versions.html
@@ -96,7 +96,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(appsId, servicesId, versionsId, body, mask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.</p>
+<p class="firstline">Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(appsId, servicesId, body, x__xgafv=None)</code>
@@ -117,11 +117,11 @@
       "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
       "maxInstances": 42, # Maximum number of instances to create for this version.
     },
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -133,8 +133,8 @@
     "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
       "url": "A String", # URL to serve the endpoint at.
       "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "script": "A String", # Path to the script from the application root directory.
     },
     "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
@@ -147,7 +147,6 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
         "version": "A String", # Version of the library to select, or "latest".
@@ -158,22 +157,25 @@
     "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
     "diskUsageBytes": "A String", # Total size of version files hosted on App Engine disk in bytes.@OutputOnly
     "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+      },
       "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
         "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-        "targetSentBytesPerSec": 42, # Target bytes sent per second.
-        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
         "targetSentPacketsPerSec": 42, # Target packets sent per second.
+        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+        "targetSentBytesPerSec": 42, # Target bytes sent per second.
       },
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetWriteOpsPerSec": 42, # Target ops written per second.
         "targetReadBytesPerSec": 42, # Target bytes read per second.
         "targetReadOpsPerSec": 42, # Target ops read per second.
         "targetWriteBytesPerSec": 42, # Target bytes written per second.
       },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
       "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
         "targetConcurrentRequests": 42, # Target number of concurrent requests.
         "targetRequestCountPerSec": 42, # Target requests per second.
@@ -182,15 +184,15 @@
       "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
       "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
       "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-      },
+      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
     },
     "envVariables": { # Environment variables made available to the application.Only returned in GET requests if view=FULL is set.
       "a_key": "A String",
     },
     "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
       "volumes": [ # Volumes mounted within the app container.
         { # Volumes mounted within the app container. Only applicable for VM runtimes.
           "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -198,9 +200,6 @@
           "sizeGb": 3.14, # Volume size in gigabytes.
         },
       ],
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "memoryGb": 3.14, # Memory (GB) needed.
     },
     "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
       "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -208,11 +207,14 @@
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
     ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
     "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
@@ -232,8 +234,12 @@
         "A String",
       ],
       "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
     },
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
     "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -246,14 +252,14 @@
         },
         "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
           "mimeType": "A String", # MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.
-          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+            "a_key": "A String",
+          },
           "expiration": "A String", # Time a static file served by this handler should be cached.
           "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
           "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
           "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-            "a_key": "A String",
-          },
+          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
         },
         "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
           "scriptPath": "A String", # Path to the script from the application root directory.
@@ -268,15 +274,22 @@
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -286,6 +299,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -302,15 +318,22 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -320,6 +343,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -336,6 +362,9 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   view: string, Controls the set of fields returned in the Get response.
 
 Returns:
@@ -350,11 +379,11 @@
         "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
         "maxInstances": 42, # Maximum number of instances to create for this version.
       },
-      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-        "a_key": "A String",
-      },
+      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+      "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+          # AutomaticScaling: F1, F2, F4, F4_1G
+          # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
       "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
         { # Custom static error page to be served when an error occurs.
           "errorCode": "A String", # Error condition this handler applies to.
@@ -366,8 +395,8 @@
       "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
         "url": "A String", # URL to serve the endpoint at.
         "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
         "login": "A String", # Level of login required to access this resource. Defaults to optional.
+        "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
         "script": "A String", # Path to the script from the application root directory.
       },
       "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
@@ -380,7 +409,6 @@
         "timeout": "A String", # Time before the health check is considered failed.
         "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
       },
-      "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
       "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
         { # Third-party Python runtime library that is required by the application.
           "version": "A String", # Version of the library to select, or "latest".
@@ -391,22 +419,25 @@
       "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
       "diskUsageBytes": "A String", # Total size of version files hosted on App Engine disk in bytes.@OutputOnly
       "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-        "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+        "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+          "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+          "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+        },
         "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
           "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-          "targetSentBytesPerSec": 42, # Target bytes sent per second.
-          "targetReceivedPacketsPerSec": 42, # Target packets received per second.
           "targetSentPacketsPerSec": 42, # Target packets sent per second.
+          "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+          "targetSentBytesPerSec": 42, # Target bytes sent per second.
         },
+        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
+        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
         "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
           "targetWriteOpsPerSec": 42, # Target ops written per second.
           "targetReadBytesPerSec": 42, # Target bytes read per second.
           "targetReadOpsPerSec": 42, # Target ops read per second.
           "targetWriteBytesPerSec": 42, # Target bytes written per second.
         },
-        "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-        "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-        "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
         "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
           "targetConcurrentRequests": 42, # Target number of concurrent requests.
           "targetRequestCountPerSec": 42, # Target requests per second.
@@ -415,15 +446,15 @@
         "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
         "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
         "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-        "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-          "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-          "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-        },
+        "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
       },
       "envVariables": { # Environment variables made available to the application.Only returned in GET requests if view=FULL is set.
         "a_key": "A String",
       },
       "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+        "memoryGb": 3.14, # Memory (GB) needed.
+        "diskGb": 3.14, # Disk size (GB) needed.
+        "cpu": 3.14, # Number of CPU cores needed.
         "volumes": [ # Volumes mounted within the app container.
           { # Volumes mounted within the app container. Only applicable for VM runtimes.
             "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -431,9 +462,6 @@
             "sizeGb": 3.14, # Volume size in gigabytes.
           },
         ],
-        "diskGb": 3.14, # Disk size (GB) needed.
-        "cpu": 3.14, # Number of CPU cores needed.
-        "memoryGb": 3.14, # Memory (GB) needed.
       },
       "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
         "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -441,11 +469,14 @@
       "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
         "A String",
       ],
+      "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+        "a_key": "A String",
+      },
       "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
         "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
           "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
             "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+            "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
             "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
           },
         },
@@ -465,8 +496,12 @@
           "A String",
         ],
         "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+        "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+            # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+            # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+            # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
       },
+      "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
       "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
       "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
       "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -479,14 +514,14 @@
           },
           "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
             "mimeType": "A String", # MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.
-            "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+            "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+              "a_key": "A String",
+            },
             "expiration": "A String", # Time a static file served by this handler should be cached.
             "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
             "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
             "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-            "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-              "a_key": "A String",
-            },
+            "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
           },
           "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
             "scriptPath": "A String", # Path to the script from the application root directory.
@@ -510,6 +545,9 @@
   servicesId: string, Part of `name`. See documentation of `appsId`. (required)
   pageSize: integer, Maximum results to return per page.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   pageToken: string, Continuation token for fetching the next page of results.
   view: string, Controls the set of fields returned in the List response.
 
@@ -528,11 +566,11 @@
             "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
             "maxInstances": 42, # Maximum number of instances to create for this version.
           },
-          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-            "a_key": "A String",
-          },
+          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+          "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+              # AutomaticScaling: F1, F2, F4, F4_1G
+              # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
           "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
             { # Custom static error page to be served when an error occurs.
               "errorCode": "A String", # Error condition this handler applies to.
@@ -544,8 +582,8 @@
           "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
             "url": "A String", # URL to serve the endpoint at.
             "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
             "login": "A String", # Level of login required to access this resource. Defaults to optional.
+            "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
             "script": "A String", # Path to the script from the application root directory.
           },
           "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
@@ -558,7 +596,6 @@
             "timeout": "A String", # Time before the health check is considered failed.
             "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
           },
-          "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
           "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
             { # Third-party Python runtime library that is required by the application.
               "version": "A String", # Version of the library to select, or "latest".
@@ -569,22 +606,25 @@
           "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
           "diskUsageBytes": "A String", # Total size of version files hosted on App Engine disk in bytes.@OutputOnly
           "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-            "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+            "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+              "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+              "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+            },
             "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
               "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-              "targetSentBytesPerSec": 42, # Target bytes sent per second.
-              "targetReceivedPacketsPerSec": 42, # Target packets received per second.
               "targetSentPacketsPerSec": 42, # Target packets sent per second.
+              "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+              "targetSentBytesPerSec": 42, # Target bytes sent per second.
             },
+            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
+            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
             "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
               "targetWriteOpsPerSec": 42, # Target ops written per second.
               "targetReadBytesPerSec": 42, # Target bytes read per second.
               "targetReadOpsPerSec": 42, # Target ops read per second.
               "targetWriteBytesPerSec": 42, # Target bytes written per second.
             },
-            "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-            "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-            "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
             "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
               "targetConcurrentRequests": 42, # Target number of concurrent requests.
               "targetRequestCountPerSec": 42, # Target requests per second.
@@ -593,15 +633,15 @@
             "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
             "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
             "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-            "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-              "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-              "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-            },
+            "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
           },
           "envVariables": { # Environment variables made available to the application.Only returned in GET requests if view=FULL is set.
             "a_key": "A String",
           },
           "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+            "memoryGb": 3.14, # Memory (GB) needed.
+            "diskGb": 3.14, # Disk size (GB) needed.
+            "cpu": 3.14, # Number of CPU cores needed.
             "volumes": [ # Volumes mounted within the app container.
               { # Volumes mounted within the app container. Only applicable for VM runtimes.
                 "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -609,9 +649,6 @@
                 "sizeGb": 3.14, # Volume size in gigabytes.
               },
             ],
-            "diskGb": 3.14, # Disk size (GB) needed.
-            "cpu": 3.14, # Number of CPU cores needed.
-            "memoryGb": 3.14, # Memory (GB) needed.
           },
           "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
             "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -619,11 +656,14 @@
           "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
             "A String",
           ],
+          "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+            "a_key": "A String",
+          },
           "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
             "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
               "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
                 "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+                "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
                 "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
               },
             },
@@ -643,8 +683,12 @@
               "A String",
             ],
             "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+            "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+                # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+                # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+                # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
           },
+          "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
           "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
           "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
           "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -657,14 +701,14 @@
               },
               "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
                 "mimeType": "A String", # MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.
-                "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+                "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+                  "a_key": "A String",
+                },
                 "expiration": "A String", # Time a static file served by this handler should be cached.
                 "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
                 "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
                 "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-                "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-                  "a_key": "A String",
-                },
+                "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
               },
               "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
                 "scriptPath": "A String", # Path to the script from the application root directory.
@@ -697,7 +741,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(appsId, servicesId, versionsId, body, mask=None, x__xgafv=None)</code>
-  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses: serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.serving_status): For Version resources that use basic scaling, manual scaling, or run in the App Engine flexible environment. instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.instance_class): For Version resources that run in the App Engine standard environment. automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment. automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling): For Version resources that use automatic scaling and run in the App Engine standard environment.
+  <pre>Updates the specified Version resource. You can specify the following fields depending on the App Engine environment and type of scaling that the version resource uses:
+serving_status (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.serving_status):  For Version resources that use basic scaling, manual scaling, or run in  the App Engine flexible environment.
+instance_class (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.instance_class):  For Version resources that run in the App Engine standard environment.
+automatic_scaling.min_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
+automatic_scaling.max_idle_instances (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta5/apps.services.versions#Version.FIELDS.automatic_scaling):  For Version resources that use automatic scaling and run in the App  Engine standard environment.
 
 Args:
   appsId: string, Part of `name`. Name of the resource to update. Example: apps/myapp/services/default/versions/1. (required)
@@ -715,11 +763,11 @@
       "idleTimeout": "A String", # Duration of time after the last request that an instance must wait before the instance is shut down.
       "maxInstances": 42, # Maximum number of instances to create for this version.
     },
-    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
-      "a_key": "A String",
-    },
+    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "vm": True or False, # Whether to deploy this version in a container on a virtual machine.
-    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are: AutomaticScaling: F1, F2, F4, F4_1G ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
+    "instanceClass": "A String", # Instance class that is used to run this version. Valid values are:
+        # AutomaticScaling: F1, F2, F4, F4_1G
+        # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for AutomaticScaling and B1 for ManualScaling or BasicScaling.
     "errorHandlers": [ # Custom static error pages. Limited to 10KB per page.Only returned in GET requests if view=FULL is set.
       { # Custom static error page to be served when an error occurs.
         "errorCode": "A String", # Error condition this handler applies to.
@@ -731,8 +779,8 @@
     "apiConfig": { # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers. # Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set.
       "url": "A String", # URL to serve the endpoint at.
       "securityLevel": "A String", # Security (HTTPS) enforcement for this URL.
-      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "login": "A String", # Level of login required to access this resource. Defaults to optional.
+      "authFailAction": "A String", # Action to take when users access resources that require authentication. Defaults to redirect.
       "script": "A String", # Path to the script from the application root directory.
     },
     "threadsafe": True or False, # Whether multiple requests can be dispatched to this version at once.
@@ -745,7 +793,6 @@
       "timeout": "A String", # Time before the health check is considered failed.
       "disableHealthCheck": True or False, # Whether to explicitly disable health checks for this instance.
     },
-    "defaultExpiration": "A String", # Duration that static files should be cached by web proxies and browsers. Only applicable if the corresponding StaticFilesHandler (https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#staticfileshandler) does not specify its own expiration time.Only returned in GET requests if view=FULL is set.
     "libraries": [ # Configuration for third-party Python runtime libraries required by the application.Only returned in GET requests if view=FULL is set.
       { # Third-party Python runtime library that is required by the application.
         "version": "A String", # Version of the library to select, or "latest".
@@ -756,22 +803,25 @@
     "env": "A String", # App Engine execution environment to use for this version.Defaults to 1.
     "diskUsageBytes": "A String", # Total size of version files hosted on App Engine disk in bytes.@OutputOnly
     "automaticScaling": { # Automatic scaling is based on request rate, response latencies, and other application metrics. # Automatic scaling is based on request rate, response latencies, and other application metrics.
-      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
+      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
+        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
+        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
+      },
       "networkUtilization": { # Target scaling by network usage. Only applicable for VM runtimes. # Target scaling by network usage.
         "targetReceivedBytesPerSec": 42, # Target bytes received per second.
-        "targetSentBytesPerSec": 42, # Target bytes sent per second.
-        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
         "targetSentPacketsPerSec": 42, # Target packets sent per second.
+        "targetReceivedPacketsPerSec": 42, # Target packets received per second.
+        "targetSentBytesPerSec": 42, # Target bytes sent per second.
       },
+      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
+      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
+      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
       "diskUtilization": { # Target scaling by disk usage. Only applicable for VM runtimes. # Target scaling by disk usage.
         "targetWriteOpsPerSec": 42, # Target ops written per second.
         "targetReadBytesPerSec": 42, # Target bytes read per second.
         "targetReadOpsPerSec": 42, # Target ops read per second.
         "targetWriteBytesPerSec": 42, # Target bytes written per second.
       },
-      "maxPendingLatency": "A String", # Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.
-      "maxIdleInstances": 42, # Maximum number of idle instances that should be maintained for this version.
-      "minIdleInstances": 42, # Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a module.
       "requestUtilization": { # Target scaling by request utilization. Only applicable for VM runtimes. # Target scaling by request utilization.
         "targetConcurrentRequests": 42, # Target number of concurrent requests.
         "targetRequestCountPerSec": 42, # Target requests per second.
@@ -780,15 +830,15 @@
       "maxTotalInstances": 42, # Maximum number of instances that should be started to handle requests.
       "maxConcurrentRequests": 42, # Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.Defaults to a runtime-specific value.
       "minTotalInstances": 42, # Minimum number of instances that should be maintained for this version.
-      "cpuUtilization": { # Target scaling by CPU usage. # Target scaling by CPU usage.
-        "targetUtilization": 3.14, # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
-        "aggregationWindowLength": "A String", # Period of time over which CPU utilization is calculated.
-      },
+      "minPendingLatency": "A String", # Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.
     },
     "envVariables": { # Environment variables made available to the application.Only returned in GET requests if view=FULL is set.
       "a_key": "A String",
     },
     "resources": { # Machine resources for a version. # Machine resources for this version. Only applicable for VM runtimes.
+      "memoryGb": 3.14, # Memory (GB) needed.
+      "diskGb": 3.14, # Disk size (GB) needed.
+      "cpu": 3.14, # Number of CPU cores needed.
       "volumes": [ # Volumes mounted within the app container.
         { # Volumes mounted within the app container. Only applicable for VM runtimes.
           "volumeType": "A String", # Underlying volume type, e.g. 'tmpfs'.
@@ -796,9 +846,6 @@
           "sizeGb": 3.14, # Volume size in gigabytes.
         },
       ],
-      "diskGb": 3.14, # Disk size (GB) needed.
-      "cpu": 3.14, # Number of CPU cores needed.
-      "memoryGb": 3.14, # Memory (GB) needed.
     },
     "manualScaling": { # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time. # A service with manual scaling runs continuously, allowing you to perform complex initialization and rely on the state of its memory over time.
       "instances": 42, # Number of instances to assign to the service at the start. This number can later be altered by using the Modules API (https://cloud.google.com/appengine/docs/python/modules/functions) set_num_instances() function.
@@ -806,11 +853,14 @@
     "inboundServices": [ # Before an application can receive email or XMPP messages, the application must be configured to enable the service.
       "A String",
     ],
+    "betaSettings": { # Metadata settings that are supplied to this version to enable beta runtime features.
+      "a_key": "A String",
+    },
     "deployment": { # Code and application artifacts used to deploy a version to App Engine. # Code and application artifacts that make up this version.Only returned in GET requests if view=FULL is set.
       "files": { # Manifest of the files stored in Google Cloud Storage that are included as part of this version. All files must be readable using the credentials supplied with this call.
         "a_key": { # Single source file that is part of the version to be deployed. Each source file that is deployed must be specified separately.
           "mimeType": "A String", # The MIME type of the file.Defaults to the value from Google Cloud Storage.
-          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com//'.
+          "sourceUrl": "A String", # URL source to use to fetch this file. Must be a URL to a resource in Google Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
           "sha1Sum": "A String", # The SHA1 hash of the file, in hex.
         },
       },
@@ -830,8 +880,12 @@
         "A String",
       ],
       "name": "A String", # Google Cloud Platform network where the virtual machines are created. Specify the short name, not the resource path.Defaults to default.
-      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network. If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range. If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network. If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
+      "subnetworkName": "A String", # Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.If a subnetwork name is specified, a network name will also be required unless it is for the default network.
+          # If the network the VM instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.
+          # If the network the VM instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetwork_name) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.
+          # If the network the VM instance is being created in is a custom Subnet Mode Network, then the subnetwork_name must be specified and the IP address is created from the IPCidrRange of the subnetwork.If specified, the subnetwork must exist in the same region as the Flex app.
     },
+    "runtimeApiVersion": "A String", # The version of the API in the given runtime environment. Please see the app.yaml reference for valid values at https://cloud.google.com/appengine/docs/standard/<language>/config/appref
     "nobuildFilesRegex": "A String", # Files that match this pattern will not be built into this version. Only applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
     "name": "A String", # Full path to the Version resource in the API. Example: apps/myapp/services/default/versions/v1.@OutputOnly
     "handlers": [ # An ordered list of URL-matching patterns that should be applied to incoming requests. The first matching URL handles the request and other request handlers are not attempted.Only returned in GET requests if view=FULL is set.
@@ -844,14 +898,14 @@
         },
         "staticFiles": { # Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them. # Returns the contents of a file, such as an image, as the response.
           "mimeType": "A String", # MIME type used to serve all files served by this handler. Defaults to file-specific MIME types, which are derived from each file's filename extension.
-          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
+          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
+            "a_key": "A String",
+          },
           "expiration": "A String", # Time a static file served by this handler should be cached.
           "requireMatchingFile": True or False, # Whether this handler should match the request if the file referenced by the handler does not exist.
           "uploadPathRegex": "A String", # Regular expression that matches the file paths for all files that should be referenced by this handler.
           "path": "A String", # Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.
-          "httpHeaders": { # HTTP headers to use for all responses from these URLs.
-            "a_key": "A String",
-          },
+          "applicationReadable": True or False, # Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as static data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged against both your code and static data storage resource quotas.
         },
         "apiEndpoint": { # Uses Google Cloud Endpoints to handle requests. # Uses API Endpoints to handle requests.
           "scriptPath": "A String", # Path to the script from the application root directory.
@@ -867,15 +921,22 @@
 
   mask: string, Standard field mask for the set of fields to be updated.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -885,6 +946,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
diff --git a/docs/dyn/appengine_v1beta5.apps.services.versions.instances.html b/docs/dyn/appengine_v1beta5.apps.services.versions.instances.html
index 4715503..3f05fcc 100644
--- a/docs/dyn/appengine_v1beta5.apps.services.versions.instances.html
+++ b/docs/dyn/appengine_v1beta5.apps.services.versions.instances.html
@@ -103,19 +103,28 @@
     The object takes the form of:
 
 { # Request message for Instances.DebugInstance.
-    "sshKey": "A String", # Public SSH key to add to the instance. Examples: [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME] [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+    "sshKey": "A String", # Public SSH key to add to the instance. Examples:
+        # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
+        # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}For more information, see Adding and Removing SSH Keys (https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -125,6 +134,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -142,15 +154,22 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: Simple to use and understand for most users Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include: Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors. Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose. Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response. Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message. Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure or cancellation.
+    "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
+        # Simple to use and understand for most users
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
+        # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
+        # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
+        # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
       "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
       "code": 42, # The status code, which should be an enum value of google.rpc.Code.
       "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
@@ -160,6 +179,9 @@
       ],
     },
     "done": True or False, # If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.
+    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is standard Get/Create/Update, the response should be the resource. For other methods, the response should have the type XxxResponse, where Xxx is the original method name. For example, if the original method name is TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should have the format of operations/some/unique/name.
     "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
@@ -177,6 +199,9 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   instancesId: string, Part of `name`. See documentation of `appsId`. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -184,18 +209,18 @@
     { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
     "errors": 42, # Number of errors since this instance was started.@OutputOnly
     "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
+    "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "startTimestamp": "A String", # Time that this instance was started.@OutputOnly
     "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
     "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
-    "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+    "availability": "A String", # Availability of the instance.@OutputOnly
     "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
     "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
     "requests": 42, # Number of requests since this instance was started.@OutputOnly
     "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-    "availability": "A String", # Availability of the instance.@OutputOnly
+    "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
     "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
     "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
   }</pre>
@@ -211,6 +236,9 @@
   versionsId: string, Part of `name`. See documentation of `appsId`. (required)
   pageSize: integer, Maximum results to return per page.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
   pageToken: string, Continuation token for fetching the next page of results.
 
 Returns:
@@ -222,18 +250,18 @@
       { # An Instance resource is the computing unit that App Engine uses to automatically scale an application.
         "errors": 42, # Number of errors since this instance was started.@OutputOnly
         "name": "A String", # Full path to the Instance resource in the API. Example: apps/myapp/services/default/versions/v1/instances/instance-1.@OutputOnly
+        "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "startTimestamp": "A String", # Time that this instance was started.@OutputOnly
         "appEngineRelease": "A String", # App Engine release this instance is running on.@OutputOnly
         "vmId": "A String", # Virtual machine ID of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "memoryUsage": "A String", # Total memory in use (bytes).@OutputOnly
-        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
-        "vmUnlocked": True or False, # Whether this instance is in debug mode. Only applicable for instances in App Engine flexible environment.@OutputOnly
+        "availability": "A String", # Availability of the instance.@OutputOnly
         "averageLatency": 42, # Average latency (ms) over the last minute.@OutputOnly
         "vmIp": "A String", # The IP address of this instance. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "qps": 3.14, # Average queries per second (QPS) over the last minute.@OutputOnly
         "requests": 42, # Number of requests since this instance was started.@OutputOnly
         "vmName": "A String", # Name of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
-        "availability": "A String", # Availability of the instance.@OutputOnly
+        "id": "A String", # Relative name of the instance within the version. Example: instance-1.@OutputOnly
         "vmZoneName": "A String", # Zone where the virtual machine is located. Only applicable for instances in App Engine flexible environment.@OutputOnly
         "vmStatus": "A String", # Status of the virtual machine where this instance lives. Only applicable for instances in App Engine flexible environment.@OutputOnly
       },
diff --git a/docs/dyn/bigquery_v2.datasets.html b/docs/dyn/bigquery_v2.datasets.html
index 4045384..a1bbe9b 100644
--- a/docs/dyn/bigquery_v2.datasets.html
+++ b/docs/dyn/bigquery_v2.datasets.html
@@ -125,7 +125,7 @@
         "projectId": "A String", # [Optional] The ID of the project containing this dataset.
         "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
       },
-      "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+      "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
         "a_key": "A String",
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -145,7 +145,7 @@
       ],
       "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
       "etag": "A String", # [Output-only] A hash of the resource.
-      "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+      "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
       "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
       "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
       "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
@@ -169,7 +169,7 @@
       "projectId": "A String", # [Optional] The ID of the project containing this dataset.
       "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
     },
-    "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+    "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
       "a_key": "A String",
     },
     "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -189,7 +189,7 @@
     ],
     "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
     "etag": "A String", # [Output-only] A hash of the resource.
-    "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+    "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
     "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
     "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
     "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
@@ -207,7 +207,7 @@
         "projectId": "A String", # [Optional] The ID of the project containing this dataset.
         "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
       },
-      "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+      "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
         "a_key": "A String",
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -227,7 +227,7 @@
       ],
       "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
       "etag": "A String", # [Output-only] A hash of the resource.
-      "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+      "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
       "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
       "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
       "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
@@ -256,7 +256,7 @@
       {
         "friendlyName": "A String", # A descriptive name for the dataset, if one exists.
         "kind": "bigquery#dataset", # The resource type. This property always returns the value "bigquery#dataset".
-        "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets.
+        "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets.
           "a_key": "A String",
         },
         "id": "A String", # The fully-qualified, unique, opaque ID of the dataset.
@@ -301,7 +301,7 @@
       "projectId": "A String", # [Optional] The ID of the project containing this dataset.
       "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
     },
-    "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+    "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
       "a_key": "A String",
     },
     "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -321,7 +321,7 @@
     ],
     "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
     "etag": "A String", # [Output-only] A hash of the resource.
-    "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+    "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
     "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
     "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
     "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
@@ -339,7 +339,7 @@
         "projectId": "A String", # [Optional] The ID of the project containing this dataset.
         "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
       },
-      "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+      "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
         "a_key": "A String",
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -359,7 +359,7 @@
       ],
       "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
       "etag": "A String", # [Output-only] A hash of the resource.
-      "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+      "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
       "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
       "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
       "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
@@ -384,7 +384,7 @@
       "projectId": "A String", # [Optional] The ID of the project containing this dataset.
       "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
     },
-    "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+    "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
       "a_key": "A String",
     },
     "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -404,7 +404,7 @@
     ],
     "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
     "etag": "A String", # [Output-only] A hash of the resource.
-    "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+    "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
     "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
     "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
     "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
@@ -422,7 +422,7 @@
         "projectId": "A String", # [Optional] The ID of the project containing this dataset.
         "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
       },
-      "labels": { # The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
+      "labels": { # [Experimental] The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Labeling Datasets for more information.
         "a_key": "A String",
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
@@ -442,7 +442,7 @@
       ],
       "defaultTableExpirationMs": "A String", # [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
       "etag": "A String", # [Output-only] A hash of the resource.
-      "location": "A String", # The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
+      "location": "A String", # [Experimental] The geographic location where the dataset should reside. Possible values include EU and US. The default value is US.
       "friendlyName": "A String", # [Optional] A descriptive name for the dataset.
       "lastModifiedTime": "A String", # [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
       "id": "A String", # [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index 6a076d1..eefb2d8 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -141,9 +141,8 @@
           "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
           "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
           "query": { # [Output-only] Statistics for a query job.
-            "queryPlan": [ # [Output-only] Describes execution plan for the query.
+            "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
               {
-                "status": "A String", # Current status for the stage.
                 "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
                 "recordsWritten": "A String", # Number of records written by the stage.
                 "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -195,7 +194,7 @@
                 "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
               },
             ],
-            "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+            "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
             "billingTier": 42, # [Output-only] Billing tier for the job.
             "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
               {
@@ -238,7 +237,7 @@
             ],
             "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
             "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
-            "autodetect": True or False, # Indicates if we should automatically infer the options and schema for CSV and JSON sources.
+            "autodetect": True or False, # [Experimental] Indicates if we should automatically infer the options and schema for CSV and JSON sources.
             "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". The default value is CSV.
             "destinationTable": { # [Required] The destination table to load the data into.
               "projectId": "A String", # [Required] The ID of the project containing this table.
@@ -247,7 +246,7 @@
             },
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-            "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
+            "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
             "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -258,7 +257,7 @@
             "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
             "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
             "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
-            "projectionFields": [ # If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
+            "projectionFields": [ # [Experimental] If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
               "A String",
             ],
             "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names
@@ -277,7 +276,7 @@
             },
           },
           "dryRun": True or False, # [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.
-          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
             "a_key": "A String",
           },
           "query": { # [Pick one] Configures a query job.
@@ -300,7 +299,7 @@
             "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
-            "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+            "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
               {
                 "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
                 "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -346,7 +345,7 @@
                   "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
                   "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
                 },
-                "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+                "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
                 "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
                 "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
                 "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -374,7 +373,7 @@
                     },
                   ],
                 },
-                "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+                "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
                 "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
                   "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
                 },
@@ -393,7 +392,7 @@
                 },
               },
             },
-            "parameterMode": "A String", # Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
+            "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
           },
           "copy": { # [Pick one] Copies a table.
             "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
@@ -480,9 +479,8 @@
         "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
         "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
         "query": { # [Output-only] Statistics for a query job.
-          "queryPlan": [ # [Output-only] Describes execution plan for the query.
+          "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
             {
-              "status": "A String", # Current status for the stage.
               "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
               "recordsWritten": "A String", # Number of records written by the stage.
               "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -534,7 +532,7 @@
               "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
             },
           ],
-          "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+          "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
           "billingTier": 42, # [Output-only] Billing tier for the job.
           "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
             {
@@ -577,7 +575,7 @@
           ],
           "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
           "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
-          "autodetect": True or False, # Indicates if we should automatically infer the options and schema for CSV and JSON sources.
+          "autodetect": True or False, # [Experimental] Indicates if we should automatically infer the options and schema for CSV and JSON sources.
           "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". The default value is CSV.
           "destinationTable": { # [Required] The destination table to load the data into.
             "projectId": "A String", # [Required] The ID of the project containing this table.
@@ -586,7 +584,7 @@
           },
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-          "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
+          "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
           "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
           "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -597,7 +595,7 @@
           "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
           "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
           "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
-          "projectionFields": [ # If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
+          "projectionFields": [ # [Experimental] If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
             "A String",
           ],
           "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names
@@ -616,7 +614,7 @@
           },
         },
         "dryRun": True or False, # [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.
-        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
           "a_key": "A String",
         },
         "query": { # [Pick one] Configures a query job.
@@ -639,7 +637,7 @@
           "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
-          "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+          "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
             {
               "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
               "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -685,7 +683,7 @@
                 "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
                 "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
               },
-              "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+              "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
               "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
               "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
               "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -713,7 +711,7 @@
                   },
                 ],
               },
-              "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+              "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
               "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
                 "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
               },
@@ -732,7 +730,7 @@
               },
             },
           },
-          "parameterMode": "A String", # Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
+          "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
         },
         "copy": { # [Pick one] Copies a table.
           "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
@@ -820,7 +818,7 @@
         ],
       },
     ],
-    "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+    "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
     "schema": { # The schema of the results. Present only when the query completes successfully.
       "fields": [ # Describes the fields in a table.
         {
@@ -890,9 +888,8 @@
       "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
       "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
       "query": { # [Output-only] Statistics for a query job.
-        "queryPlan": [ # [Output-only] Describes execution plan for the query.
+        "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
           {
-            "status": "A String", # Current status for the stage.
             "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
             "recordsWritten": "A String", # Number of records written by the stage.
             "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -944,7 +941,7 @@
             "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
           },
         ],
-        "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+        "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
         "billingTier": 42, # [Output-only] Billing tier for the job.
         "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
           {
@@ -987,7 +984,7 @@
         ],
         "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
         "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
-        "autodetect": True or False, # Indicates if we should automatically infer the options and schema for CSV and JSON sources.
+        "autodetect": True or False, # [Experimental] Indicates if we should automatically infer the options and schema for CSV and JSON sources.
         "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". The default value is CSV.
         "destinationTable": { # [Required] The destination table to load the data into.
           "projectId": "A String", # [Required] The ID of the project containing this table.
@@ -996,7 +993,7 @@
         },
         "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-        "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
+        "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
         "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
         "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1007,7 +1004,7 @@
         "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
         "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
         "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
-        "projectionFields": [ # If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
+        "projectionFields": [ # [Experimental] If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
           "A String",
         ],
         "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names
@@ -1026,7 +1023,7 @@
         },
       },
       "dryRun": True or False, # [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.
-      "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+      "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
         "a_key": "A String",
       },
       "query": { # [Pick one] Configures a query job.
@@ -1049,7 +1046,7 @@
         "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
         "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
         "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
-        "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
           {
             "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
             "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -1095,7 +1092,7 @@
               "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
               "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
             },
-            "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+            "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
             "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -1123,7 +1120,7 @@
                 },
               ],
             },
-            "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+            "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
             "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
               "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
             },
@@ -1142,7 +1139,7 @@
             },
           },
         },
-        "parameterMode": "A String", # Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
+        "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
       },
       "copy": { # [Pick one] Copies a table.
         "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
@@ -1221,9 +1218,8 @@
         "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
         "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
         "query": { # [Output-only] Statistics for a query job.
-          "queryPlan": [ # [Output-only] Describes execution plan for the query.
+          "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
             {
-              "status": "A String", # Current status for the stage.
               "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
               "recordsWritten": "A String", # Number of records written by the stage.
               "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -1275,7 +1271,7 @@
               "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
             },
           ],
-          "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+          "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
           "billingTier": 42, # [Output-only] Billing tier for the job.
           "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
             {
@@ -1318,7 +1314,7 @@
           ],
           "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
           "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
-          "autodetect": True or False, # Indicates if we should automatically infer the options and schema for CSV and JSON sources.
+          "autodetect": True or False, # [Experimental] Indicates if we should automatically infer the options and schema for CSV and JSON sources.
           "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". The default value is CSV.
           "destinationTable": { # [Required] The destination table to load the data into.
             "projectId": "A String", # [Required] The ID of the project containing this table.
@@ -1327,7 +1323,7 @@
           },
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-          "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
+          "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
           "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
           "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1338,7 +1334,7 @@
           "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
           "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
           "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
-          "projectionFields": [ # If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
+          "projectionFields": [ # [Experimental] If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
             "A String",
           ],
           "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names
@@ -1357,7 +1353,7 @@
           },
         },
         "dryRun": True or False, # [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.
-        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+        "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
           "a_key": "A String",
         },
         "query": { # [Pick one] Configures a query job.
@@ -1380,7 +1376,7 @@
           "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
-          "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+          "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
             {
               "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
               "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -1426,7 +1422,7 @@
                 "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
                 "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
               },
-              "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+              "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
               "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
               "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
               "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -1454,7 +1450,7 @@
                   },
                 ],
               },
-              "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+              "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
               "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
                 "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
               },
@@ -1473,7 +1469,7 @@
               },
             },
           },
-          "parameterMode": "A String", # Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
+          "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
         },
         "copy": { # [Pick one] Copies a table.
           "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
@@ -1574,9 +1570,8 @@
           "totalBytesProcessed": "A String", # [Output-only] [Deprecated] Use the bytes processed in the query statistics instead.
           "startTime": "A String", # [Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.
           "query": { # [Output-only] Statistics for a query job.
-            "queryPlan": [ # [Output-only] Describes execution plan for the query.
+            "queryPlan": [ # [Output-only, Experimental] Describes execution plan for the query.
               {
-                "status": "A String", # Current status for the stage.
                 "computeRatioMax": 3.14, # Relative amount of time the slowest shard spent on CPU-bound tasks.
                 "recordsWritten": "A String", # Number of records written by the stage.
                 "waitRatioMax": 3.14, # Relative amount of time the slowest shard spent waiting to be scheduled.
@@ -1628,7 +1623,7 @@
                 "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
               },
             ],
-            "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+            "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
             "billingTier": 42, # [Output-only] Billing tier for the job.
             "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
               {
@@ -1671,7 +1666,7 @@
             ],
             "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
             "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
-            "autodetect": True or False, # Indicates if we should automatically infer the options and schema for CSV and JSON sources.
+            "autodetect": True or False, # [Experimental] Indicates if we should automatically infer the options and schema for CSV and JSON sources.
             "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro, specify "AVRO". The default value is CSV.
             "destinationTable": { # [Required] The destination table to load the data into.
               "projectId": "A String", # [Required] The ID of the project containing this table.
@@ -1680,7 +1675,7 @@
             },
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
-            "nullMarker": "A String", # [Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify "\N", BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery still interprets the empty string as a null value for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.
+            "nullMarker": "A String", # [Optional] This string will be interpreted as a null value when it appears in a CSV file. The default value is the empty string. Please refer to the documentation for further information.
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
             "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1691,7 +1686,7 @@
             "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
             "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
             "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
-            "projectionFields": [ # If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
+            "projectionFields": [ # [Experimental] If sourceFormat is set to "DATASTORE_BACKUP", indicates which entity properties to load into BigQuery from a Cloud Datastore backup. Property names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties. If any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.
               "A String",
             ],
             "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names
@@ -1710,7 +1705,7 @@
             },
           },
           "dryRun": True or False, # [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.
-          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+          "labels": { # [Experimental] The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
             "a_key": "A String",
           },
           "query": { # [Pick one] Configures a query job.
@@ -1733,7 +1728,7 @@
             "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
-            "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+            "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
               {
                 "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
                 "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -1779,7 +1774,7 @@
                   "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
                   "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
                 },
-                "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+                "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
                 "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
                 "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
                 "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -1807,7 +1802,7 @@
                     },
                   ],
                 },
-                "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+                "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
                 "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
                   "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
                 },
@@ -1826,7 +1821,7 @@
                 },
               },
             },
-            "parameterMode": "A String", # Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
+            "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
           },
           "copy": { # [Pick one] Copies a table.
             "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
@@ -1904,7 +1899,7 @@
     "timeoutMs": 42, # [Optional] How long to wait for the query to complete, in milliseconds, before the request times out and returns. Note that this is only a timeout for the request, not the query. If the query takes longer to run than the timeout value, the call returns without any results and with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the query to complete and read the results. The default value is 10000 milliseconds (10 seconds).
     "kind": "bigquery#queryRequest", # The resource type of the request.
     "dryRun": True or False, # [Optional] If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.
-    "parameterMode": "A String", # Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.
+    "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
     "useQueryCache": true, # [Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true.
     "defaultDataset": { # [Optional] Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'.
       "projectId": "A String", # [Optional] The ID of the project containing this dataset.
@@ -1912,7 +1907,7 @@
     },
     "useLegacySql": true, # Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the values of allowLargeResults and flattenResults are ignored; query will be run as if allowLargeResults is true and flattenResults is false.
     "maxResults": 42, # [Optional] The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies.
-    "queryParameters": [ # Query parameters for Standard SQL queries.
+    "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
       {
         "parameterType": { # [Required] The type of this parameter.
           "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
@@ -1973,7 +1968,7 @@
         ],
       },
     ],
-    "numDmlAffectedRows": "A String", # [Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
+    "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
     "schema": { # The schema of the results. Present only when the query completes successfully.
       "fields": [ # Describes the fields in a table.
         {
diff --git a/docs/dyn/bigquery_v2.tabledata.html b/docs/dyn/bigquery_v2.tabledata.html
index edd2dee..e3eabd9 100644
--- a/docs/dyn/bigquery_v2.tabledata.html
+++ b/docs/dyn/bigquery_v2.tabledata.html
@@ -78,7 +78,7 @@
   <code><a href="#insertAll">insertAll(projectId, datasetId, tableId, body)</a></code></p>
 <p class="firstline">Streams data into BigQuery one record at a time without needing to run a load job. Requires the WRITER dataset role.</p>
 <p class="toc_element">
-  <code><a href="#list">list(projectId, datasetId, tableId, selectedFields=None, pageToken=None, maxResults=None, startIndex=None)</a></code></p>
+  <code><a href="#list">list(projectId, datasetId, tableId, pageToken=None, maxResults=None, startIndex=None)</a></code></p>
 <p class="firstline">Retrieves table data from a specified set of rows. Requires the READER dataset role.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -133,14 +133,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId, datasetId, tableId, selectedFields=None, pageToken=None, maxResults=None, startIndex=None)</code>
+    <code class="details" id="list">list(projectId, datasetId, tableId, pageToken=None, maxResults=None, startIndex=None)</code>
   <pre>Retrieves table data from a specified set of rows. Requires the READER dataset role.
 
 Args:
   projectId: string, Project ID of the table to read (required)
   datasetId: string, Dataset ID of the table to read (required)
   tableId: string, Table ID of the table to read (required)
-  selectedFields: string, List of fields to return (comma-separated). If unspecified, all fields are returned
   pageToken: string, Page token, returned by a previous call, identifying the result set
   maxResults: integer, Maximum number of results to return
   startIndex: string, Zero-based index of the starting row to read
diff --git a/docs/dyn/bigquery_v2.tables.html b/docs/dyn/bigquery_v2.tables.html
index 8c7b8e1..091ae9a 100644
--- a/docs/dyn/bigquery_v2.tables.html
+++ b/docs/dyn/bigquery_v2.tables.html
@@ -78,7 +78,7 @@
   <code><a href="#delete">delete(projectId, datasetId, tableId)</a></code></p>
 <p class="firstline">Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.</p>
 <p class="toc_element">
-  <code><a href="#get">get(projectId, datasetId, tableId, selectedFields=None)</a></code></p>
+  <code><a href="#get">get(projectId, datasetId, tableId)</a></code></p>
 <p class="firstline">Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(projectId, datasetId, body)</a></code></p>
@@ -108,14 +108,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId, datasetId, tableId, selectedFields=None)</code>
+    <code class="details" id="get">get(projectId, datasetId, tableId)</code>
   <pre>Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.
 
 Args:
   projectId: string, Project ID of the requested table (required)
   datasetId: string, Dataset ID of the requested table (required)
   tableId: string, Table ID of the requested table (required)
-  selectedFields: string, List of fields to return (comma-separated). If unspecified, all fields are returned
 
 Returns:
   An object of the form:
@@ -125,7 +124,7 @@
       "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -138,7 +137,7 @@
           "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
           "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
         },
-        "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+        "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
         "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -166,7 +165,7 @@
             },
           ],
         },
-        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
         "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
           "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
         },
@@ -195,7 +194,7 @@
       "view": { # [Optional] The view definition.
         "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
         "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-        "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
           {
             "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
             "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -249,7 +248,7 @@
     "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
     "description": "A String", # [Optional] A user-friendly description of this table.
     "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
       "a_key": "A String",
     },
     "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -262,7 +261,7 @@
         "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
         "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
       },
-      "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+      "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
       "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
       "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
       "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -290,7 +289,7 @@
           },
         ],
       },
-      "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+      "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
       "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
         "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
       },
@@ -319,7 +318,7 @@
     "view": { # [Optional] The view definition.
       "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
       "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-      "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+      "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
         {
           "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
           "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -366,7 +365,7 @@
       "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -379,7 +378,7 @@
           "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
           "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
         },
-        "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+        "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
         "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -407,7 +406,7 @@
             },
           ],
         },
-        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
         "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
           "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
         },
@@ -436,7 +435,7 @@
       "view": { # [Optional] The view definition.
         "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
         "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-        "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
           {
             "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
             "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -504,9 +503,6 @@
         "friendlyName": "A String", # The user-friendly name for this table.
         "type": "A String", # The type of table. Possible values are: TABLE, VIEW.
         "id": "A String", # An opaque ID of the table
-        "view": { # Additional details for a view.
-          "useLegacySql": True or False, # True if view is defined in legacy SQL dialect, false if in standard SQL.
-        },
       },
     ],
     "kind": "bigquery#tableList", # The type of list.
@@ -545,7 +541,7 @@
     "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
     "description": "A String", # [Optional] A user-friendly description of this table.
     "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
       "a_key": "A String",
     },
     "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -558,7 +554,7 @@
         "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
         "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
       },
-      "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+      "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
       "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
       "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
       "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -586,7 +582,7 @@
           },
         ],
       },
-      "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+      "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
       "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
         "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
       },
@@ -615,7 +611,7 @@
     "view": { # [Optional] The view definition.
       "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
       "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-      "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+      "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
         {
           "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
           "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -662,7 +658,7 @@
       "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -675,7 +671,7 @@
           "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
           "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
         },
-        "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+        "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
         "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -703,7 +699,7 @@
             },
           ],
         },
-        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
         "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
           "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
         },
@@ -732,7 +728,7 @@
       "view": { # [Optional] The view definition.
         "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
         "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-        "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
           {
             "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
             "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -787,7 +783,7 @@
     "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
     "description": "A String", # [Optional] A user-friendly description of this table.
     "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+    "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
       "a_key": "A String",
     },
     "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -800,7 +796,7 @@
         "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
         "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
       },
-      "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+      "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
       "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
       "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
       "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -828,7 +824,7 @@
           },
         ],
       },
-      "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+      "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
       "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
         "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
       },
@@ -857,7 +853,7 @@
     "view": { # [Optional] The view definition.
       "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
       "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-      "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+      "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
         {
           "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
           "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
@@ -904,7 +900,7 @@
       "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
-      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.
+      "labels": { # [Experimental] The labels associated with this table. You can use these to organize and group your tables. Label keys and values can be no longer than 63 characters, can only contain letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and must be unique within a dataset. Both keys and values are additionally constrained to be <= 128 bytes in size.
         "a_key": "A String",
       },
       "externalDataConfiguration": { # [Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.
@@ -917,7 +913,7 @@
           "quote": """, # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
           "allowQuotedNewlines": True or False, # [Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
         },
-        "autodetect": True or False, # Try to detect schema and format options automatically. Any option specified explicitly will be honored.
+        "autodetect": True or False, # [Experimental] Try to detect schema and format options automatically. Any option specified explicitly will be honored.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.
         "ignoreUnknownValues": True or False, # [Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud. For Google Cloud Storage URIs: Each URI can contain one '*' wildcard character and it must come after the 'bucket' name. Size limits related to load jobs apply to external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud Datastore backups, exactly one URI can be specified, and it must end with '.backup_info'. Also, the '*' wildcard character is not allowed.
@@ -945,7 +941,7 @@
             },
           ],
         },
-        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Beta] For Google Cloud Bigtable, specify "BIGTABLE".
+        "sourceFormat": "A String", # [Required] The data format. For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro files, specify "AVRO". For Google Cloud Datastore backups, specify "DATASTORE_BACKUP". [Experimental] For Google Cloud Bigtable, specify "BIGTABLE". Please note that reading from Google Cloud Bigtable is experimental and has to be enabled for your project. Please contact Google Cloud Support to enable this for your project.
         "googleSheetsOptions": { # [Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS.
           "skipLeadingRows": "A String", # [Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.
         },
@@ -974,7 +970,7 @@
       "view": { # [Optional] The view definition.
         "query": "A String", # [Required] A query that BigQuery executes when the view is referenced.
         "useLegacySql": True or False, # Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.
-        "userDefinedFunctionResources": [ # Describes user-defined function resources used in the query.
+        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
           {
             "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
             "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
diff --git a/docs/dyn/tracing_v1.html b/docs/dyn/bigquerydatatransfer_v1.html
similarity index 92%
copy from docs/dyn/tracing_v1.html
copy to docs/dyn/bigquerydatatransfer_v1.html
index 295b2bb..a83d4a1 100644
--- a/docs/dyn/tracing_v1.html
+++ b/docs/dyn/bigquerydatatransfer_v1.html
@@ -72,10 +72,10 @@
 
 </style>
 
-<h1><a href="tracing_v1.html">Google Tracing API</a></h1>
+<h1><a href="bigquerydatatransfer_v1.html">BigQuery Data Transfer Service API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="tracing_v1.projects.html">projects()</a></code>
+  <code><a href="bigquerydatatransfer_v1.projects.html">projects()</a></code>
 </p>
 <p class="firstline">Returns the projects Resource.</p>
 
diff --git a/docs/dyn/bigquerydatatransfer_v1.projects.dataSources.html b/docs/dyn/bigquerydatatransfer_v1.projects.dataSources.html
new file mode 100644
index 0000000..8d11822
--- /dev/null
+++ b/docs/dyn/bigquerydatatransfer_v1.projects.dataSources.html
@@ -0,0 +1,327 @@
+<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="bigquerydatatransfer_v1.html">BigQuery Data Transfer Service API</a> . <a href="bigquerydatatransfer_v1.projects.html">projects</a> . <a href="bigquerydatatransfer_v1.projects.dataSources.html">dataSources</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#checkValidCreds">checkValidCreds(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns true if valid credentials exist for the given data source and</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves a supported data source and returns its settings,</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists supported data sources and returns their settings,</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="checkValidCreds">checkValidCreds(name, body, x__xgafv=None)</code>
+  <pre>Returns true if valid credentials exist for the given data source and
+requesting user.
+
+Args:
+  name: string, The data source in the form:
+`projects/{project_id}/dataSources/{data_source_id}` (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to determine whether the user has valid credentials. This method
+      # is used to limit the number of OAuth popups in the user interface. The
+      # user id is inferred from the API call context.
+      # If the data source has the Google+ authorization type, this method
+      # returns false, as it cannot be determined whether the credentials are
+      # already valid merely based on the user id.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A response indicating whether the credentials exist and are valid.
+    "hasValidCreds": True or False, # If set to `true`, the credentials exist and are valid.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Retrieves a supported data source and returns its settings,
+which can be used for UI rendering.
+
+Args:
+  name: string, The field will contain name of the resource requested, for example:
+`projects/{project_id}/dataSources/{data_source_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents data source metadata. Metadata is sufficient to
+      # render UI and request proper OAuth tokens.
+    "scopes": [ # Api auth scopes for which refresh token needs to be obtained. Only valid
+        # when `client_id` is specified. Ignored otherwise. These are scopes needed
+        # by a data source to prepare data and ingest them into BigQuery,
+        # e.g., https://www.googleapis.com/auth/bigquery
+      "A String",
+    ],
+    "helpUrl": "A String", # Url for the help document for this data source.
+    "displayName": "A String", # User friendly data source name.
+    "name": "A String", # Data source resource name.
+    "dataRefreshType": "A String", # Specifies whether the data source supports automatic data refresh for the
+        # past few days, and how it's supported.
+        # For some data sources, data might not be complete until a few days later,
+        # so it's useful to refresh data automatically.
+    "authorizationType": "A String", # Indicates the type of authorization.
+    "description": "A String", # User friendly data source description string.
+    "clientId": "A String", # Data source client id which should be used to receive refresh token.
+        # When not supplied, no offline credentials are populated for data transfer.
+    "statusUpdateDeadlineSeconds": 42, # The number of seconds to wait for a status update from the data source
+        # before BigQuery marks the transfer as failed.
+    "manualRunsDisabled": True or False, # Disables backfilling and manual run scheduling
+        # for the data source.
+    "defaultSchedule": "A String", # Default data transfer schedule.
+        # Examples of valid schedules include:
+        # `1st,3rd monday of month 15:30`,
+        # `every wed,fri of jan,jun 13:15`, and
+        # `first sunday of quarter 00:00`.
+    "dataSourceId": "A String", # Data source id.
+    "defaultDataRefreshWindowDays": 42, # Default data refresh window on days.
+        # Only meaningful when `data_refresh_type` = `SLIDING_WINDOW`.
+    "supportsMultipleTransfers": True or False, # Indicates whether the data source supports multiple transfers
+        # to different BigQuery targets.
+    "supportsCustomSchedule": True or False, # Specifies whether the data source supports a user defined schedule, or
+        # operates on the default schedule.
+        # When set to `true`, user can override default schedule.
+    "parameters": [ # Data source parameters.
+      { # Represents a data source parameter with validation rules, so that
+          # parameters can be rendered in the UI. These parameters are given to us by
+          # supported data sources, and include all needed information for rendering
+          # and validation.
+          # Thus, whoever uses this api can decide to generate either generic ui,
+          # or custom data source specific forms.
+        "displayName": "A String", # Parameter display name in the user interface.
+        "description": "A String", # Parameter description.
+        "validationDescription": "A String", # Description of the requirements for this field, in case the user input does
+            # not fulfill the regex pattern or min/max values.
+        "fields": [ # When parameter is a record, describes child fields.
+          # Object with schema name: DataSourceParameter
+        ],
+        "required": True or False, # Is parameter required.
+        "allowedValues": [ # All possible values for the parameter.
+          "A String",
+        ],
+        "maxValue": 3.14, # For integer and double values specifies maxminum allowed value.
+        "minValue": 3.14, # For integer and double values specifies minimum allowed value.
+        "repeated": True or False, # Can parameter have multiple values.
+        "recurse": True or False, # If set to true, schema should be taken from the parent with the same
+            # parameter_id. Only applicable when parameter type is RECORD.
+        "validationRegex": "A String", # Regular expression which can be used for parameter validation.
+        "validationHelpUrl": "A String", # URL to a help document to further explain the naming requirements.
+        "paramId": "A String", # Parameter identifier.
+        "type": "A String", # Parameter type.
+        "immutable": True or False, # Cannot be changed after initial creation.
+      },
+    ],
+    "transferType": "A String", # Transfer type. Currently supports only batch transfers,
+        # which are transfers that use the BigQuery batch APIs (load or
+        # query) to ingest the data.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists supported data sources and returns their settings,
+which can be used for UI rendering.
+
+Args:
+  parent: string, The BigQuery project id for which data sources should be returned.
+Must be in the form: `projects/{project_id}` (required)
+  pageToken: string, Pagination token, which can be used to request a specific page
+of `ListDataSourcesRequest` list results. For multiple-page
+results, `ListDataSourcesResponse` outputs
+a `next_page` token, which can be used as the
+`page_token` value to request the next page of list results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageSize: integer, Page size. The default page size is the maximum value of 1000 results.
+
+Returns:
+  An object of the form:
+
+    { # Returns list of supported data sources and their metadata.
+    "nextPageToken": "A String", # The next-pagination token. For multiple-page list results,
+        # this token can be used as the
+        # `ListDataSourcesRequest.page_token`
+        # to request the next page of list results.
+        # @OutputOnly
+    "dataSources": [ # List of supported data sources and their transfer settings.
+      { # Represents data source metadata. Metadata is sufficient to
+          # render UI and request proper OAuth tokens.
+        "scopes": [ # Api auth scopes for which refresh token needs to be obtained. Only valid
+            # when `client_id` is specified. Ignored otherwise. These are scopes needed
+            # by a data source to prepare data and ingest them into BigQuery,
+            # e.g., https://www.googleapis.com/auth/bigquery
+          "A String",
+        ],
+        "helpUrl": "A String", # Url for the help document for this data source.
+        "displayName": "A String", # User friendly data source name.
+        "name": "A String", # Data source resource name.
+        "dataRefreshType": "A String", # Specifies whether the data source supports automatic data refresh for the
+            # past few days, and how it's supported.
+            # For some data sources, data might not be complete until a few days later,
+            # so it's useful to refresh data automatically.
+        "authorizationType": "A String", # Indicates the type of authorization.
+        "description": "A String", # User friendly data source description string.
+        "clientId": "A String", # Data source client id which should be used to receive refresh token.
+            # When not supplied, no offline credentials are populated for data transfer.
+        "statusUpdateDeadlineSeconds": 42, # The number of seconds to wait for a status update from the data source
+            # before BigQuery marks the transfer as failed.
+        "manualRunsDisabled": True or False, # Disables backfilling and manual run scheduling
+            # for the data source.
+        "defaultSchedule": "A String", # Default data transfer schedule.
+            # Examples of valid schedules include:
+            # `1st,3rd monday of month 15:30`,
+            # `every wed,fri of jan,jun 13:15`, and
+            # `first sunday of quarter 00:00`.
+        "dataSourceId": "A String", # Data source id.
+        "defaultDataRefreshWindowDays": 42, # Default data refresh window on days.
+            # Only meaningful when `data_refresh_type` = `SLIDING_WINDOW`.
+        "supportsMultipleTransfers": True or False, # Indicates whether the data source supports multiple transfers
+            # to different BigQuery targets.
+        "supportsCustomSchedule": True or False, # Specifies whether the data source supports a user defined schedule, or
+            # operates on the default schedule.
+            # When set to `true`, user can override default schedule.
+        "parameters": [ # Data source parameters.
+          { # Represents a data source parameter with validation rules, so that
+              # parameters can be rendered in the UI. These parameters are given to us by
+              # supported data sources, and include all needed information for rendering
+              # and validation.
+              # Thus, whoever uses this api can decide to generate either generic ui,
+              # or custom data source specific forms.
+            "displayName": "A String", # Parameter display name in the user interface.
+            "description": "A String", # Parameter description.
+            "validationDescription": "A String", # Description of the requirements for this field, in case the user input does
+                # not fulfill the regex pattern or min/max values.
+            "fields": [ # When parameter is a record, describes child fields.
+              # Object with schema name: DataSourceParameter
+            ],
+            "required": True or False, # Is parameter required.
+            "allowedValues": [ # All possible values for the parameter.
+              "A String",
+            ],
+            "maxValue": 3.14, # For integer and double values specifies maxminum allowed value.
+            "minValue": 3.14, # For integer and double values specifies minimum allowed value.
+            "repeated": True or False, # Can parameter have multiple values.
+            "recurse": True or False, # If set to true, schema should be taken from the parent with the same
+                # parameter_id. Only applicable when parameter type is RECORD.
+            "validationRegex": "A String", # Regular expression which can be used for parameter validation.
+            "validationHelpUrl": "A String", # URL to a help document to further explain the naming requirements.
+            "paramId": "A String", # Parameter identifier.
+            "type": "A String", # Parameter type.
+            "immutable": True or False, # Cannot be changed after initial creation.
+          },
+        ],
+        "transferType": "A String", # Transfer type. Currently supports only batch transfers,
+            # which are transfers that use the BigQuery batch APIs (load or
+            # query) to ingest the data.
+      },
+    ],
+  }</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
diff --git a/docs/dyn/bigquerydatatransfer_v1.projects.html b/docs/dyn/bigquerydatatransfer_v1.projects.html
new file mode 100644
index 0000000..8871ab3
--- /dev/null
+++ b/docs/dyn/bigquerydatatransfer_v1.projects.html
@@ -0,0 +1,157 @@
+<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="bigquerydatatransfer_v1.html">BigQuery Data Transfer Service API</a> . <a href="bigquerydatatransfer_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="bigquerydatatransfer_v1.projects.dataSources.html">dataSources()</a></code>
+</p>
+<p class="firstline">Returns the dataSources Resource.</p>
+
+<p class="toc_element">
+  <code><a href="bigquerydatatransfer_v1.projects.transferConfigs.html">transferConfigs()</a></code>
+</p>
+<p class="firstline">Returns the transferConfigs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#isEnabled">isEnabled(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns true if data transfer is enabled for a project.</p>
+<p class="toc_element">
+  <code><a href="#setEnabled">setEnabled(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Enables or disables data transfer for a project. This</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="isEnabled">isEnabled(name, body, x__xgafv=None)</code>
+  <pre>Returns true if data transfer is enabled for a project.
+
+Args:
+  name: string, The name of the project resource in the form:
+`projects/{project_id}` (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to determine whether data transfer is enabled for the project.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A response to indicate whether data transfer is enabled for the project.
+    "enabled": True or False, # Indicates whether the project is enabled.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setEnabled">setEnabled(name, body, x__xgafv=None)</code>
+  <pre>Enables or disables data transfer for a project. This
+method requires the additional scope of
+'https://www.googleapis.com/auth/cloudplatformprojects'
+to manage the cloud project permissions.
+
+Args:
+  name: string, The name of the project resource in the form:
+`projects/{project_id}` (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to set whether data transfer is enabled or disabled for a project.
+    "enabled": True or False, # Whether data transfer should be enabled or disabled for the project.
+  }
+
+  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>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.html b/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.html
new file mode 100644
index 0000000..affa4df
--- /dev/null
+++ b/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.html
@@ -0,0 +1,616 @@
+<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="bigquerydatatransfer_v1.html">BigQuery Data Transfer Service API</a> . <a href="bigquerydatatransfer_v1.projects.html">projects</a> . <a href="bigquerydatatransfer_v1.projects.transferConfigs.html">transferConfigs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="bigquerydatatransfer_v1.projects.transferConfigs.runs.html">runs()</a></code>
+</p>
+<p class="firstline">Returns the runs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent, body, authorizationCode=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new data transfer configuration.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a data transfer configuration,</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns information about a data transfer config.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, dataSourceIds=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns information about all data transfers in the project.</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>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body, authorizationCode=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a data transfer configuration.</p>
+<p class="toc_element">
+  <code><a href="#scheduleRuns">scheduleRuns(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates transfer runs for a time range [range_start_time, range_end_time].</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body, authorizationCode=None, x__xgafv=None)</code>
+  <pre>Creates a new data transfer configuration.
+
+Args:
+  parent: string, The BigQuery project id where the transfer configuration should be created. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a data transfer configuration. A transfer configuration
+    # contains all metadata needed to perform a data transfer. For example,
+    # `destination_dataset_id` specifies where data should be stored.
+    # When a new transfer configuration is created, the specified
+    # `destination_dataset_id` is created when needed and shared with the
+    # appropriate data source service account.
+  "status": "A String", # Status of the most recently updated transfer run.
+      # @OutputOnly
+  "dataRefreshWindowDays": 42, # The number of days to look back to automatically refresh the data.
+      # For example, if `data_refresh_window_days = 10`, then every day
+      # BigQuery reingests data for [today-10, today-1], rather than ingesting data
+      # for just [today-1].
+      # Only valid if the data source supports the feature. Set the value to  0
+      # to use the default value.
+  "updateTime": "A String", # Data transfer modification time. Ignored by server on input.
+      # @OutputOnly
+  "destinationDatasetId": "A String", # The BigQuery target dataset id.
+  "displayName": "A String", # User specified display name for the data transfer.
+  "name": "A String", # The resource name of the transfer run.
+      # Transfer run names have the form
+      # `projects/{project_id}/transferConfigs/{config_id}`.
+      # Where `config_id` is usually a uuid, even though it is not
+      # guaranteed or required. The name is ignored when creating a transfer run.
+  "schedule": "A String", # Data transfer schedule in GROC format.
+      # If the data source does not support a custom schedule, this should be
+      # empty. If it is empty, the default value for the data source will be
+      # used.
+      # The specified times are in UTC.
+      # Examples of valid GROC include:
+      # `1st,3rd monday of month 15:30`,
+      # `every wed,fri of jan,jun 13:15`, and
+      # `first sunday of quarter 00:00`.
+  "userId": "A String", # GaiaID of the user on whose behalf transfer is done. Applicable only
+      # to data sources that do not support service accounts. When set to 0,
+      # the data source service account credentials are used.
+      # @OutputOnly
+  "disabled": True or False, # Is this config disabled. When set to true, no runs are scheduled
+      # for a given transfer.
+  "dataSourceId": "A String", # Data source id. Cannot be changed once data transfer is created.
+  "nextRunTime": "A String", # Next time when data transfer will run. Output only. Applicable
+      # only for batch data transfers.
+      # @OutputOnly
+  "params": { # Data transfer specific parameters.
+    "a_key": "", # Properties of the object.
+  },
+}
+
+  authorizationCode: string, Optional OAuth2 authorization code to use with this transfer configuration.
+This is required if new credentials are needed, as indicated by
+`CheckValidCreds`.
+In order to obtain authorization_code, please make a
+request to
+https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=<datatransferapiclientid>&scope=<data_source_scopes>&redirect_uri=<redirect_uri>
+
+* client_id should be OAuth client_id of BigQuery DTS API for the given
+  data source returned by ListDataSources method.
+* data_source_scopes are the scopes returned by ListDataSources method.
+* redirect_uri is an optional parameter. If not specified, then
+  authorization code is posted to the opener of authorization flow window.
+  Otherwise it will be sent to the redirect uri. A special value of
+  urn:ietf:wg:oauth:2.0:oob means that authorization code should be
+  returned in the title bar of the browser, with the page text prompting
+  the user to copy the code and paste it in the application.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a data transfer configuration. A transfer configuration
+      # contains all metadata needed to perform a data transfer. For example,
+      # `destination_dataset_id` specifies where data should be stored.
+      # When a new transfer configuration is created, the specified
+      # `destination_dataset_id` is created when needed and shared with the
+      # appropriate data source service account.
+    "status": "A String", # Status of the most recently updated transfer run.
+        # @OutputOnly
+    "dataRefreshWindowDays": 42, # The number of days to look back to automatically refresh the data.
+        # For example, if `data_refresh_window_days = 10`, then every day
+        # BigQuery reingests data for [today-10, today-1], rather than ingesting data
+        # for just [today-1].
+        # Only valid if the data source supports the feature. Set the value to  0
+        # to use the default value.
+    "updateTime": "A String", # Data transfer modification time. Ignored by server on input.
+        # @OutputOnly
+    "destinationDatasetId": "A String", # The BigQuery target dataset id.
+    "displayName": "A String", # User specified display name for the data transfer.
+    "name": "A String", # The resource name of the transfer run.
+        # Transfer run names have the form
+        # `projects/{project_id}/transferConfigs/{config_id}`.
+        # Where `config_id` is usually a uuid, even though it is not
+        # guaranteed or required. The name is ignored when creating a transfer run.
+    "schedule": "A String", # Data transfer schedule in GROC format.
+        # If the data source does not support a custom schedule, this should be
+        # empty. If it is empty, the default value for the data source will be
+        # used.
+        # The specified times are in UTC.
+        # Examples of valid GROC include:
+        # `1st,3rd monday of month 15:30`,
+        # `every wed,fri of jan,jun 13:15`, and
+        # `first sunday of quarter 00:00`.
+    "userId": "A String", # GaiaID of the user on whose behalf transfer is done. Applicable only
+        # to data sources that do not support service accounts. When set to 0,
+        # the data source service account credentials are used.
+        # @OutputOnly
+    "disabled": True or False, # Is this config disabled. When set to true, no runs are scheduled
+        # for a given transfer.
+    "dataSourceId": "A String", # Data source id. Cannot be changed once data transfer is created.
+    "nextRunTime": "A String", # Next time when data transfer will run. Output only. Applicable
+        # only for batch data transfers.
+        # @OutputOnly
+    "params": { # Data transfer specific parameters.
+      "a_key": "", # Properties of the object.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a data transfer configuration,
+including any associated transfer runs and logs.
+
+Args:
+  name: string, The field will contain name of the resource requested, for example:
+`projects/{project_id}/transferConfigs/{config_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, x__xgafv=None)</code>
+  <pre>Returns information about a data transfer config.
+
+Args:
+  name: string, The field will contain name of the resource requested, for example:
+`projects/{project_id}/transferConfigs/{config_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a data transfer configuration. A transfer configuration
+      # contains all metadata needed to perform a data transfer. For example,
+      # `destination_dataset_id` specifies where data should be stored.
+      # When a new transfer configuration is created, the specified
+      # `destination_dataset_id` is created when needed and shared with the
+      # appropriate data source service account.
+    "status": "A String", # Status of the most recently updated transfer run.
+        # @OutputOnly
+    "dataRefreshWindowDays": 42, # The number of days to look back to automatically refresh the data.
+        # For example, if `data_refresh_window_days = 10`, then every day
+        # BigQuery reingests data for [today-10, today-1], rather than ingesting data
+        # for just [today-1].
+        # Only valid if the data source supports the feature. Set the value to  0
+        # to use the default value.
+    "updateTime": "A String", # Data transfer modification time. Ignored by server on input.
+        # @OutputOnly
+    "destinationDatasetId": "A String", # The BigQuery target dataset id.
+    "displayName": "A String", # User specified display name for the data transfer.
+    "name": "A String", # The resource name of the transfer run.
+        # Transfer run names have the form
+        # `projects/{project_id}/transferConfigs/{config_id}`.
+        # Where `config_id` is usually a uuid, even though it is not
+        # guaranteed or required. The name is ignored when creating a transfer run.
+    "schedule": "A String", # Data transfer schedule in GROC format.
+        # If the data source does not support a custom schedule, this should be
+        # empty. If it is empty, the default value for the data source will be
+        # used.
+        # The specified times are in UTC.
+        # Examples of valid GROC include:
+        # `1st,3rd monday of month 15:30`,
+        # `every wed,fri of jan,jun 13:15`, and
+        # `first sunday of quarter 00:00`.
+    "userId": "A String", # GaiaID of the user on whose behalf transfer is done. Applicable only
+        # to data sources that do not support service accounts. When set to 0,
+        # the data source service account credentials are used.
+        # @OutputOnly
+    "disabled": True or False, # Is this config disabled. When set to true, no runs are scheduled
+        # for a given transfer.
+    "dataSourceId": "A String", # Data source id. Cannot be changed once data transfer is created.
+    "nextRunTime": "A String", # Next time when data transfer will run. Output only. Applicable
+        # only for batch data transfers.
+        # @OutputOnly
+    "params": { # Data transfer specific parameters.
+      "a_key": "", # Properties of the object.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, dataSourceIds=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns information about all data transfers in the project.
+
+Args:
+  parent: string, The BigQuery project id for which data sources
+should be returned: `projects/{project_id}`. (required)
+  pageSize: integer, Page size. The default page size is the maximum value of 1000 results.
+  dataSourceIds: string, When specified, only configurations of requested data sources are returned. (repeated)
+  pageToken: string, Pagination token, which can be used to request a specific page
+of `ListTransfersRequest` list results. For multiple-page
+results, `ListTransfersResponse` outputs
+a `next_page` token, which can be used as the
+`page_token` value to request the next page of list results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The returned list of pipelines in the project.
+    "nextPageToken": "A String", # The next-pagination token. For multiple-page list results,
+        # this token can be used as the
+        # `ListTransferConfigsRequest.page_token`
+        # to request the next page of list results.
+        # @OutputOnly
+    "transferConfigs": [ # The stored pipeline transfer configurations.
+        # @OutputOnly
+      { # Represents a data transfer configuration. A transfer configuration
+          # contains all metadata needed to perform a data transfer. For example,
+          # `destination_dataset_id` specifies where data should be stored.
+          # When a new transfer configuration is created, the specified
+          # `destination_dataset_id` is created when needed and shared with the
+          # appropriate data source service account.
+        "status": "A String", # Status of the most recently updated transfer run.
+            # @OutputOnly
+        "dataRefreshWindowDays": 42, # The number of days to look back to automatically refresh the data.
+            # For example, if `data_refresh_window_days = 10`, then every day
+            # BigQuery reingests data for [today-10, today-1], rather than ingesting data
+            # for just [today-1].
+            # Only valid if the data source supports the feature. Set the value to  0
+            # to use the default value.
+        "updateTime": "A String", # Data transfer modification time. Ignored by server on input.
+            # @OutputOnly
+        "destinationDatasetId": "A String", # The BigQuery target dataset id.
+        "displayName": "A String", # User specified display name for the data transfer.
+        "name": "A String", # The resource name of the transfer run.
+            # Transfer run names have the form
+            # `projects/{project_id}/transferConfigs/{config_id}`.
+            # Where `config_id` is usually a uuid, even though it is not
+            # guaranteed or required. The name is ignored when creating a transfer run.
+        "schedule": "A String", # Data transfer schedule in GROC format.
+            # If the data source does not support a custom schedule, this should be
+            # empty. If it is empty, the default value for the data source will be
+            # used.
+            # The specified times are in UTC.
+            # Examples of valid GROC include:
+            # `1st,3rd monday of month 15:30`,
+            # `every wed,fri of jan,jun 13:15`, and
+            # `first sunday of quarter 00:00`.
+        "userId": "A String", # GaiaID of the user on whose behalf transfer is done. Applicable only
+            # to data sources that do not support service accounts. When set to 0,
+            # the data source service account credentials are used.
+            # @OutputOnly
+        "disabled": True or False, # Is this config disabled. When set to true, no runs are scheduled
+            # for a given transfer.
+        "dataSourceId": "A String", # Data source id. Cannot be changed once data transfer is created.
+        "nextRunTime": "A String", # Next time when data transfer will run. Output only. Applicable
+            # only for batch data transfers.
+            # @OutputOnly
+        "params": { # Data transfer specific parameters.
+          "a_key": "", # Properties of the object.
+        },
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body, authorizationCode=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a data transfer configuration.
+All fields must be set, even if they are not updated.
+
+Args:
+  name: string, The resource name of the transfer run.
+Transfer run names have the form
+`projects/{project_id}/transferConfigs/{config_id}`.
+Where `config_id` is usually a uuid, even though it is not
+guaranteed or required. The name is ignored when creating a transfer run. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a data transfer configuration. A transfer configuration
+    # contains all metadata needed to perform a data transfer. For example,
+    # `destination_dataset_id` specifies where data should be stored.
+    # When a new transfer configuration is created, the specified
+    # `destination_dataset_id` is created when needed and shared with the
+    # appropriate data source service account.
+  "status": "A String", # Status of the most recently updated transfer run.
+      # @OutputOnly
+  "dataRefreshWindowDays": 42, # The number of days to look back to automatically refresh the data.
+      # For example, if `data_refresh_window_days = 10`, then every day
+      # BigQuery reingests data for [today-10, today-1], rather than ingesting data
+      # for just [today-1].
+      # Only valid if the data source supports the feature. Set the value to  0
+      # to use the default value.
+  "updateTime": "A String", # Data transfer modification time. Ignored by server on input.
+      # @OutputOnly
+  "destinationDatasetId": "A String", # The BigQuery target dataset id.
+  "displayName": "A String", # User specified display name for the data transfer.
+  "name": "A String", # The resource name of the transfer run.
+      # Transfer run names have the form
+      # `projects/{project_id}/transferConfigs/{config_id}`.
+      # Where `config_id` is usually a uuid, even though it is not
+      # guaranteed or required. The name is ignored when creating a transfer run.
+  "schedule": "A String", # Data transfer schedule in GROC format.
+      # If the data source does not support a custom schedule, this should be
+      # empty. If it is empty, the default value for the data source will be
+      # used.
+      # The specified times are in UTC.
+      # Examples of valid GROC include:
+      # `1st,3rd monday of month 15:30`,
+      # `every wed,fri of jan,jun 13:15`, and
+      # `first sunday of quarter 00:00`.
+  "userId": "A String", # GaiaID of the user on whose behalf transfer is done. Applicable only
+      # to data sources that do not support service accounts. When set to 0,
+      # the data source service account credentials are used.
+      # @OutputOnly
+  "disabled": True or False, # Is this config disabled. When set to true, no runs are scheduled
+      # for a given transfer.
+  "dataSourceId": "A String", # Data source id. Cannot be changed once data transfer is created.
+  "nextRunTime": "A String", # Next time when data transfer will run. Output only. Applicable
+      # only for batch data transfers.
+      # @OutputOnly
+  "params": { # Data transfer specific parameters.
+    "a_key": "", # Properties of the object.
+  },
+}
+
+  authorizationCode: string, Optional OAuth2 authorization code to use with this transfer configuration.
+If it is provided, the transfer configuration will be associated with the
+gaia id of the authorizing user.
+In order to obtain authorization_code, please make a
+request to
+https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=<datatransferapiclientid>&scope=<data_source_scopes>&redirect_uri=<redirect_uri>
+
+* client_id should be OAuth client_id of BigQuery DTS API for the given
+  data source returned by ListDataSources method.
+* data_source_scopes are the scopes returned by ListDataSources method.
+* redirect_uri is an optional parameter. If not specified, then
+  authorization code is posted to the opener of authorization flow window.
+  Otherwise it will be sent to the redirect uri. A special value of
+  urn:ietf:wg:oauth:2.0:oob means that authorization code should be
+  returned in the title bar of the browser, with the page text prompting
+  the user to copy the code and paste it in the application.
+  updateMask: string, Required list of fields to be updated in this request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a data transfer configuration. A transfer configuration
+      # contains all metadata needed to perform a data transfer. For example,
+      # `destination_dataset_id` specifies where data should be stored.
+      # When a new transfer configuration is created, the specified
+      # `destination_dataset_id` is created when needed and shared with the
+      # appropriate data source service account.
+    "status": "A String", # Status of the most recently updated transfer run.
+        # @OutputOnly
+    "dataRefreshWindowDays": 42, # The number of days to look back to automatically refresh the data.
+        # For example, if `data_refresh_window_days = 10`, then every day
+        # BigQuery reingests data for [today-10, today-1], rather than ingesting data
+        # for just [today-1].
+        # Only valid if the data source supports the feature. Set the value to  0
+        # to use the default value.
+    "updateTime": "A String", # Data transfer modification time. Ignored by server on input.
+        # @OutputOnly
+    "destinationDatasetId": "A String", # The BigQuery target dataset id.
+    "displayName": "A String", # User specified display name for the data transfer.
+    "name": "A String", # The resource name of the transfer run.
+        # Transfer run names have the form
+        # `projects/{project_id}/transferConfigs/{config_id}`.
+        # Where `config_id` is usually a uuid, even though it is not
+        # guaranteed or required. The name is ignored when creating a transfer run.
+    "schedule": "A String", # Data transfer schedule in GROC format.
+        # If the data source does not support a custom schedule, this should be
+        # empty. If it is empty, the default value for the data source will be
+        # used.
+        # The specified times are in UTC.
+        # Examples of valid GROC include:
+        # `1st,3rd monday of month 15:30`,
+        # `every wed,fri of jan,jun 13:15`, and
+        # `first sunday of quarter 00:00`.
+    "userId": "A String", # GaiaID of the user on whose behalf transfer is done. Applicable only
+        # to data sources that do not support service accounts. When set to 0,
+        # the data source service account credentials are used.
+        # @OutputOnly
+    "disabled": True or False, # Is this config disabled. When set to true, no runs are scheduled
+        # for a given transfer.
+    "dataSourceId": "A String", # Data source id. Cannot be changed once data transfer is created.
+    "nextRunTime": "A String", # Next time when data transfer will run. Output only. Applicable
+        # only for batch data transfers.
+        # @OutputOnly
+    "params": { # Data transfer specific parameters.
+      "a_key": "", # Properties of the object.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="scheduleRuns">scheduleRuns(parent, body, x__xgafv=None)</code>
+  <pre>Creates transfer runs for a time range [range_start_time, range_end_time].
+For each date - or whatever granularity the data source supports - in the
+range, one transfer run is created.
+Note that runs are created per UTC time in the time range.
+
+Args:
+  parent: string, Transfer configuration name in the form:
+`projects/{project_id}/transferConfigs/{config_id}`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to schedule transfer runs for a time range.
+    "rangeStartTime": "A String", # Start time of the range of transfer runs.
+    "rangeEndTime": "A String", # End time of the range of transfer runs.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A response to schedule transfer runs for a time range.
+    "createdRuns": [ # The transfer runs that were created.
+      { # Represents a data transfer run.
+        "status": "A String", # Data transfer run status. Ignored for input requests.
+            # @OutputOnly
+        "updateTime": "A String", # Last time the data transfer run status was updated.
+            # @OutputOnly
+        "destinationDatasetId": "A String", # The BigQuery target dataset id.
+        "name": "A String", # The resource name of the transfer run.
+            # Transfer run names have the form
+            # `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`.
+            # The name is ignored when creating a transfer run.
+        "schedule": "A String", # Describes the schedule of this transfer run if it was created as part of
+            # a regular schedule. For batch transfer runs that are directly created,
+            # this is empty.
+            # NOTE: the system might choose to delay the schedule depending on the
+            # current load, so `schedule_time` doesn't always matches this.
+            # @OutputOnly
+        "scheduleTime": "A String", # Minimum time after which a transfer run can be started.
+        "userId": "A String", # The user id for this transfer run.
+            # @OutputOnly
+        "dataSourceId": "A String", # Data source id.
+            # @OutputOnly
+        "startTime": "A String", # Time when transfer run was started. Parameter ignored by server for input
+            # requests.
+            # @OutputOnly
+        "params": { # Data transfer specific parameters.
+          "a_key": "", # Properties of the object.
+        },
+        "runTime": "A String", # For batch transfer runs, specifies the date and time that
+            # data should be ingested.
+        "endTime": "A String", # Time when transfer run ended. Parameter ignored by server for input
+            # requests.
+            # @OutputOnly
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.runs.html b/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.runs.html
new file mode 100644
index 0000000..8c7412f
--- /dev/null
+++ b/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.runs.html
@@ -0,0 +1,255 @@
+<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="bigquerydatatransfer_v1.html">BigQuery Data Transfer Service API</a> . <a href="bigquerydatatransfer_v1.projects.html">projects</a> . <a href="bigquerydatatransfer_v1.projects.transferConfigs.html">transferConfigs</a> . <a href="bigquerydatatransfer_v1.projects.transferConfigs.runs.html">runs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="bigquerydatatransfer_v1.projects.transferConfigs.runs.transferLogs.html">transferLogs()</a></code>
+</p>
+<p class="firstline">Returns the transferLogs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the specified transfer run.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns information about the particular transfer run.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, runAttempt=None, statuses=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns information about running and completed jobs.</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="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes the specified transfer run.
+
+Args:
+  name: string, The field will contain name of the resource requested, for example:
+`projects/{project_id}/transferConfigs/{config_id}/runs/{run_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, x__xgafv=None)</code>
+  <pre>Returns information about the particular transfer run.
+
+Args:
+  name: string, The field will contain name of the resource requested, for example:
+`projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents a data transfer run.
+    "status": "A String", # Data transfer run status. Ignored for input requests.
+        # @OutputOnly
+    "updateTime": "A String", # Last time the data transfer run status was updated.
+        # @OutputOnly
+    "destinationDatasetId": "A String", # The BigQuery target dataset id.
+    "name": "A String", # The resource name of the transfer run.
+        # Transfer run names have the form
+        # `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`.
+        # The name is ignored when creating a transfer run.
+    "schedule": "A String", # Describes the schedule of this transfer run if it was created as part of
+        # a regular schedule. For batch transfer runs that are directly created,
+        # this is empty.
+        # NOTE: the system might choose to delay the schedule depending on the
+        # current load, so `schedule_time` doesn't always matches this.
+        # @OutputOnly
+    "scheduleTime": "A String", # Minimum time after which a transfer run can be started.
+    "userId": "A String", # The user id for this transfer run.
+        # @OutputOnly
+    "dataSourceId": "A String", # Data source id.
+        # @OutputOnly
+    "startTime": "A String", # Time when transfer run was started. Parameter ignored by server for input
+        # requests.
+        # @OutputOnly
+    "params": { # Data transfer specific parameters.
+      "a_key": "", # Properties of the object.
+    },
+    "runTime": "A String", # For batch transfer runs, specifies the date and time that
+        # data should be ingested.
+    "endTime": "A String", # Time when transfer run ended. Parameter ignored by server for input
+        # requests.
+        # @OutputOnly
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, runAttempt=None, statuses=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns information about running and completed jobs.
+
+Args:
+  parent: string, Name of transfer configuration for which transfer runs should be retrieved.
+Format of transfer configuration resource name is:
+`projects/{project_id}/transferConfigs/{config_id}`. (required)
+  pageSize: integer, Page size. The default page size is the maximum value of 1000 results.
+  runAttempt: string, Indicates how run attempts are to be pulled.
+  statuses: string, When specified, only transfer runs with requested statuses are returned. (repeated)
+  pageToken: string, Pagination token, which can be used to request a specific page
+of `ListTransferRunsRequest` list results. For multiple-page
+results, `ListTransferRunsResponse` outputs
+a `next_page` token, which can be used as the
+`page_token` value to request the next page of list results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The returned list of pipelines in the project.
+    "nextPageToken": "A String", # The next-pagination token. For multiple-page list results,
+        # this token can be used as the
+        # `ListTransferRunsRequest.page_token`
+        # to request the next page of list results.
+        # @OutputOnly
+    "transferRuns": [ # The stored pipeline transfer runs.
+        # @OutputOnly
+      { # Represents a data transfer run.
+        "status": "A String", # Data transfer run status. Ignored for input requests.
+            # @OutputOnly
+        "updateTime": "A String", # Last time the data transfer run status was updated.
+            # @OutputOnly
+        "destinationDatasetId": "A String", # The BigQuery target dataset id.
+        "name": "A String", # The resource name of the transfer run.
+            # Transfer run names have the form
+            # `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`.
+            # The name is ignored when creating a transfer run.
+        "schedule": "A String", # Describes the schedule of this transfer run if it was created as part of
+            # a regular schedule. For batch transfer runs that are directly created,
+            # this is empty.
+            # NOTE: the system might choose to delay the schedule depending on the
+            # current load, so `schedule_time` doesn't always matches this.
+            # @OutputOnly
+        "scheduleTime": "A String", # Minimum time after which a transfer run can be started.
+        "userId": "A String", # The user id for this transfer run.
+            # @OutputOnly
+        "dataSourceId": "A String", # Data source id.
+            # @OutputOnly
+        "startTime": "A String", # Time when transfer run was started. Parameter ignored by server for input
+            # requests.
+            # @OutputOnly
+        "params": { # Data transfer specific parameters.
+          "a_key": "", # Properties of the object.
+        },
+        "runTime": "A String", # For batch transfer runs, specifies the date and time that
+            # data should be ingested.
+        "endTime": "A String", # Time when transfer run ended. Parameter ignored by server for input
+            # requests.
+            # @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
diff --git a/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.runs.transferLogs.html b/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.runs.transferLogs.html
new file mode 100644
index 0000000..bdcadfe
--- /dev/null
+++ b/docs/dyn/bigquerydatatransfer_v1.projects.transferConfigs.runs.transferLogs.html
@@ -0,0 +1,138 @@
+<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="bigquerydatatransfer_v1.html">BigQuery Data Transfer Service API</a> . <a href="bigquerydatatransfer_v1.projects.html">projects</a> . <a href="bigquerydatatransfer_v1.projects.transferConfigs.html">transferConfigs</a> . <a href="bigquerydatatransfer_v1.projects.transferConfigs.runs.html">runs</a> . <a href="bigquerydatatransfer_v1.projects.transferConfigs.runs.transferLogs.html">transferLogs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, messageTypes=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns user facing log messages for the data transfer run.</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="list">list(parent, pageSize=None, messageTypes=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns user facing log messages for the data transfer run.
+
+Args:
+  parent: string, Transfer run name in the form:
+`projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`. (required)
+  pageSize: integer, Page size. The default page size is the maximum value of 1000 results.
+  messageTypes: string, Message types to return. If not populated - INFO, WARNING and ERROR
+messages are returned. (repeated)
+  pageToken: string, Pagination token, which can be used to request a specific page
+of `ListTransferLogsRequest` list results. For multiple-page
+results, `ListTransferLogsResponse` outputs
+a `next_page` token, which can be used as the
+`page_token` value to request the next page of list results.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The returned list transfer run messages.
+    "nextPageToken": "A String", # The next-pagination token. For multiple-page list results,
+        # this token can be used as the
+        # `GetTransferRunLogRequest.page_token`
+        # to request the next page of list results.
+        # @OutputOnly
+    "transferMessages": [ # The stored pipeline transfer messages.
+        # @OutputOnly
+      { # Represents a user facing message for a particular data transfer run.
+        "messageTime": "A String", # Time when message was logged.
+        "messageText": "A String", # Message text.
+        "severity": "A String", # Message severity.
+      },
+    ],
+  }</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
diff --git a/docs/dyn/books_v1.myconfig.html b/docs/dyn/books_v1.myconfig.html
index 731bda2..1d6d973 100644
--- a/docs/dyn/books_v1.myconfig.html
+++ b/docs/dyn/books_v1.myconfig.html
@@ -104,6 +104,9 @@
       "moreFromSeries": {
         "opted_state": "A String",
       },
+      "rewardExpirations": {
+        "opted_state": "A String",
+      },
       "moreFromAuthors": {
         "opted_state": "A String",
       },
@@ -462,6 +465,9 @@
     "moreFromSeries": {
       "opted_state": "A String",
     },
+    "rewardExpirations": {
+      "opted_state": "A String",
+    },
     "moreFromAuthors": {
       "opted_state": "A String",
     },
@@ -482,6 +488,9 @@
       "moreFromSeries": {
         "opted_state": "A String",
       },
+      "rewardExpirations": {
+        "opted_state": "A String",
+      },
       "moreFromAuthors": {
         "opted_state": "A String",
       },
diff --git a/docs/dyn/books_v1.mylibrary.annotations.html b/docs/dyn/books_v1.mylibrary.annotations.html
index f1e9719..44850a8 100644
--- a/docs/dyn/books_v1.mylibrary.annotations.html
+++ b/docs/dyn/books_v1.mylibrary.annotations.html
@@ -78,7 +78,7 @@
   <code><a href="#delete">delete(annotationId, source=None)</a></code></p>
 <p class="firstline">Deletes an annotation.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(body, source=None, country=None, showOnlySummaryInResponse=None)</a></code></p>
+  <code><a href="#insert">insert(body, source=None, country=None, showOnlySummaryInResponse=None, annotationId=None)</a></code></p>
 <p class="firstline">Inserts a new annotation.</p>
 <p class="toc_element">
   <code><a href="#list">list(layerId=None, pageToken=None, layerIds=None, volumeId=None, maxResults=None, showDeleted=None, updatedMax=None, contentVersion=None, source=None, updatedMin=None)</a></code></p>
@@ -104,7 +104,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(body, source=None, country=None, showOnlySummaryInResponse=None)</code>
+    <code class="details" id="insert">insert(body, source=None, country=None, showOnlySummaryInResponse=None, annotationId=None)</code>
   <pre>Inserts a new annotation.
 
 Args:
@@ -192,6 +192,7 @@
   source: string, String to identify the originator of this request.
   country: string, ISO-3166-1 code to override the IP-based location.
   showOnlySummaryInResponse: boolean, Requests that only the summary of the specified layer be provided in the response.
+  annotationId: string, The ID for the annotation to insert.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index 7cebd11..037d52a 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -1121,7 +1121,7 @@
 Learn more about incremental synchronization.
 Optional. The default is to return all entries.
   iCalUID: string, Specifies event ID in the iCalendar format to be included in the response. Optional.
-  maxResults: integer, Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
+  maxResults: integer, Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
   timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but will be ignored.
   q: string, Free text search terms to find events that match these terms in any field, except for extended properties. Optional.
   timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.
@@ -2283,7 +2283,7 @@
 Learn more about incremental synchronization.
 Optional. The default is to return all entries.
   iCalUID: string, Specifies event ID in the iCalendar format to be included in the response. Optional.
-  maxResults: integer, Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
+  maxResults: integer, Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
   timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but will be ignored.
   q: string, Free text search terms to find events that match these terms in any field, except for extended properties. Optional.
   timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.
diff --git a/docs/dyn/classroom_v1.courses.courseWork.html b/docs/dyn/classroom_v1.courses.courseWork.html
index c2d4b16..ffdfe96 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.html
@@ -89,7 +89,7 @@
   <code><a href="#get">get(courseId, id, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns course work.</p>
 <p class="toc_element">
-  <code><a href="#list">list(courseId, orderBy=None, courseWorkStates=None, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(courseId, orderBy=None, pageSize=None, courseWorkStates=None, x__xgafv=None, pageToken=None)</a></code></p>
 <p class="firstline">Returns a list of course work that the requester is permitted to view.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -163,11 +163,7 @@
     "creationTime": "A String", # Timestamp when this course work was created.
         # 
         # Read-only.
-    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
-        # project making the request.
-        # 
-        # See google.classroom.Work.CreateCourseWork for more
-        # details.
+    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
         # 
         # Read-only.
     "state": "A String", # Status of this course work.
@@ -179,10 +175,10 @@
           #
           # When creating attachments, setting the `form` field is not supported.
         "youtubeVideo": { # YouTube video item. # YouTube video material.
-          "alternateLink": "A String", # URL that can be used to view the YouTube video.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
               #
               # Read-only.
-          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+          "alternateLink": "A String", # URL that can be used to view the YouTube video.
               #
               # Read-only.
           "id": "A String", # YouTube API resource ID.
@@ -192,10 +188,10 @@
         },
         "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
           "driveFile": { # Representation of a Google Drive file. # Drive file details.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -232,23 +228,6 @@
         },
       },
     ],
-    "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
-        # This must be specified if `due_time` is specified.
-        # time zone are either specified elsewhere or are not significant. The date
-        # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
-        # represent a year and month where the day is not significant, e.g. credit card
-        # expiration date. The year may be 0 to represent a month and day independent
-        # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
-        # and `google.protobuf.Timestamp`.
-      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-          # a year.
-      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-          # if specifying a year/month where the day is not significant.
-      "month": 42, # Month of year. Must be from 1 to 12.
-    },
-    "maxPoints": 3.14, # Maximum grade for this course work.
-        # If zero or unspecified, this assignment is considered ungraded.
-        # This must be a non-negative integer value.
     "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
         # For read operations, this field is populated only when `work_type` is
         # `MULTIPLE_CHOICE_QUESTION`.
@@ -259,17 +238,38 @@
         "A String",
       ],
     },
-    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
+    "maxPoints": 3.14, # Maximum grade for this course work.
+        # If zero or unspecified, this assignment is considered ungraded.
+        # This must be a non-negative integer value.
+    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
+        # project making the request.
+        # 
+        # See google.classroom.Work.CreateCourseWork for more
+        # details.
         # 
         # Read-only.
+    "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
+        # This must be specified if `due_time` is specified.
+        # time zone are either specified elsewhere or are not significant. The date
+        # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+        # represent a year and month where the day is not significant, e.g. credit card
+        # expiration date. The year may be 0 to represent a month and day independent
+        # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+        # and `google.protobuf.Timestamp`.
+      "month": 42, # Month of year. Must be from 1 to 12.
+      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+          # if specifying a year/month where the day is not significant.
+      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+          # a year.
+    },
     "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this this course work
         # are due.
         # This must be specified if `due_date` is specified.
         # or are specified elsewhere. An API may choose to allow leap seconds. Related
         # types are google.type.Date and `google.protobuf.Timestamp`.
-      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
       "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
           # to allow the value "24:00:00" for scenarios like business closing time.
+      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
       "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
       "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
           # allow the value 60 if it allows leap-seconds.
@@ -324,11 +324,7 @@
       "creationTime": "A String", # Timestamp when this course work was created.
           #
           # Read-only.
-      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
-          # project making the request.
-          #
-          # See google.classroom.Work.CreateCourseWork for more
-          # details.
+      "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
           #
           # Read-only.
       "state": "A String", # Status of this course work.
@@ -340,10 +336,10 @@
             #
             # When creating attachments, setting the `form` field is not supported.
           "youtubeVideo": { # YouTube video item. # YouTube video material.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -353,10 +349,10 @@
           },
           "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
             "driveFile": { # Representation of a Google Drive file. # Drive file details.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -393,23 +389,6 @@
           },
         },
       ],
-      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
-          # This must be specified if `due_time` is specified.
-          # time zone are either specified elsewhere or are not significant. The date
-          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
-          # represent a year and month where the day is not significant, e.g. credit card
-          # expiration date. The year may be 0 to represent a month and day independent
-          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
-          # and `google.protobuf.Timestamp`.
-        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-            # a year.
-        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-            # if specifying a year/month where the day is not significant.
-        "month": 42, # Month of year. Must be from 1 to 12.
-      },
-      "maxPoints": 3.14, # Maximum grade for this course work.
-          # If zero or unspecified, this assignment is considered ungraded.
-          # This must be a non-negative integer value.
       "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
           # For read operations, this field is populated only when `work_type` is
           # `MULTIPLE_CHOICE_QUESTION`.
@@ -420,17 +399,38 @@
           "A String",
         ],
       },
-      "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
+      "maxPoints": 3.14, # Maximum grade for this course work.
+          # If zero or unspecified, this assignment is considered ungraded.
+          # This must be a non-negative integer value.
+      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
+          # project making the request.
+          #
+          # See google.classroom.Work.CreateCourseWork for more
+          # details.
           #
           # Read-only.
+      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
+          # This must be specified if `due_time` is specified.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+      },
       "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this this course work
           # are due.
           # This must be specified if `due_date` is specified.
           # or are specified elsewhere. An API may choose to allow leap seconds. Related
           # types are google.type.Date and `google.protobuf.Timestamp`.
-        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
         "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
             # to allow the value "24:00:00" for scenarios like business closing time.
+        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
         "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
             # allow the value 60 if it allows leap-seconds.
@@ -545,11 +545,7 @@
       "creationTime": "A String", # Timestamp when this course work was created.
           #
           # Read-only.
-      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
-          # project making the request.
-          #
-          # See google.classroom.Work.CreateCourseWork for more
-          # details.
+      "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
           #
           # Read-only.
       "state": "A String", # Status of this course work.
@@ -561,10 +557,10 @@
             #
             # When creating attachments, setting the `form` field is not supported.
           "youtubeVideo": { # YouTube video item. # YouTube video material.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -574,10 +570,10 @@
           },
           "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
             "driveFile": { # Representation of a Google Drive file. # Drive file details.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -614,23 +610,6 @@
           },
         },
       ],
-      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
-          # This must be specified if `due_time` is specified.
-          # time zone are either specified elsewhere or are not significant. The date
-          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
-          # represent a year and month where the day is not significant, e.g. credit card
-          # expiration date. The year may be 0 to represent a month and day independent
-          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
-          # and `google.protobuf.Timestamp`.
-        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-            # a year.
-        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-            # if specifying a year/month where the day is not significant.
-        "month": 42, # Month of year. Must be from 1 to 12.
-      },
-      "maxPoints": 3.14, # Maximum grade for this course work.
-          # If zero or unspecified, this assignment is considered ungraded.
-          # This must be a non-negative integer value.
       "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
           # For read operations, this field is populated only when `work_type` is
           # `MULTIPLE_CHOICE_QUESTION`.
@@ -641,17 +620,38 @@
           "A String",
         ],
       },
-      "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
+      "maxPoints": 3.14, # Maximum grade for this course work.
+          # If zero or unspecified, this assignment is considered ungraded.
+          # This must be a non-negative integer value.
+      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
+          # project making the request.
+          #
+          # See google.classroom.Work.CreateCourseWork for more
+          # details.
           #
           # Read-only.
+      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
+          # This must be specified if `due_time` is specified.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+      },
       "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this this course work
           # are due.
           # This must be specified if `due_date` is specified.
           # or are specified elsewhere. An API may choose to allow leap seconds. Related
           # types are google.type.Date and `google.protobuf.Timestamp`.
-        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
         "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
             # to allow the value "24:00:00" for scenarios like business closing time.
+        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
         "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
             # allow the value 60 if it allows leap-seconds.
@@ -663,7 +663,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(courseId, orderBy=None, courseWorkStates=None, pageSize=None, x__xgafv=None, pageToken=None)</code>
+    <code class="details" id="list">list(courseId, orderBy=None, pageSize=None, courseWorkStates=None, x__xgafv=None, pageToken=None)</code>
   <pre>Returns a list of course work that the requester is permitted to view.
 
 Course students may only view `PUBLISHED` course work. Course teachers
@@ -685,13 +685,13 @@
 and `dueDate`. Supported direction keywords are `asc` and `desc`.
 If not specified, `updateTime desc` is the default behavior.
 Examples: `dueDate asc,updateTime desc`, `updateTime,dueDate desc`
-  courseWorkStates: string, Restriction on the work status to return. Only courseWork that matches
-is returned. If unspecified, items with a work status of `PUBLISHED`
-is returned. (repeated)
   pageSize: integer, Maximum number of items to return. Zero or unspecified indicates that the
 server may assign a maximum.
 
 The server may return fewer than the specified number of results.
+  courseWorkStates: string, Restriction on the work status to return. Only courseWork that matches
+is returned. If unspecified, items with a work status of `PUBLISHED`
+is returned. (repeated)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -748,11 +748,7 @@
           "creationTime": "A String", # Timestamp when this course work was created.
               #
               # Read-only.
-          "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
-              # project making the request.
-              #
-              # See google.classroom.Work.CreateCourseWork for more
-              # details.
+          "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
               #
               # Read-only.
           "state": "A String", # Status of this course work.
@@ -764,10 +760,10 @@
                 #
                 # When creating attachments, setting the `form` field is not supported.
               "youtubeVideo": { # YouTube video item. # YouTube video material.
-                "alternateLink": "A String", # URL that can be used to view the YouTube video.
+                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                     #
                     # Read-only.
-                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+                "alternateLink": "A String", # URL that can be used to view the YouTube video.
                     #
                     # Read-only.
                 "id": "A String", # YouTube API resource ID.
@@ -777,10 +773,10 @@
               },
               "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
                 "driveFile": { # Representation of a Google Drive file. # Drive file details.
-                  "alternateLink": "A String", # URL that can be used to access the Drive item.
+                  "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                       #
                       # Read-only.
-                  "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+                  "alternateLink": "A String", # URL that can be used to access the Drive item.
                       #
                       # Read-only.
                   "id": "A String", # Drive API resource ID.
@@ -817,23 +813,6 @@
               },
             },
           ],
-          "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
-              # This must be specified if `due_time` is specified.
-              # time zone are either specified elsewhere or are not significant. The date
-              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
-              # represent a year and month where the day is not significant, e.g. credit card
-              # expiration date. The year may be 0 to represent a month and day independent
-              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
-              # and `google.protobuf.Timestamp`.
-            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                # a year.
-            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                # if specifying a year/month where the day is not significant.
-            "month": 42, # Month of year. Must be from 1 to 12.
-          },
-          "maxPoints": 3.14, # Maximum grade for this course work.
-              # If zero or unspecified, this assignment is considered ungraded.
-              # This must be a non-negative integer value.
           "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
               # For read operations, this field is populated only when `work_type` is
               # `MULTIPLE_CHOICE_QUESTION`.
@@ -844,17 +823,38 @@
               "A String",
             ],
           },
-          "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
+          "maxPoints": 3.14, # Maximum grade for this course work.
+              # If zero or unspecified, this assignment is considered ungraded.
+              # This must be a non-negative integer value.
+          "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
+              # project making the request.
+              #
+              # See google.classroom.Work.CreateCourseWork for more
+              # details.
               #
               # Read-only.
+          "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
+              # This must be specified if `due_time` is specified.
+              # time zone are either specified elsewhere or are not significant. The date
+              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+              # represent a year and month where the day is not significant, e.g. credit card
+              # expiration date. The year may be 0 to represent a month and day independent
+              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+              # and `google.protobuf.Timestamp`.
+            "month": 42, # Month of year. Must be from 1 to 12.
+            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                # if specifying a year/month where the day is not significant.
+            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                # a year.
+          },
           "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this this course work
               # are due.
               # This must be specified if `due_date` is specified.
               # or are specified elsewhere. An API may choose to allow leap seconds. Related
               # types are google.type.Date and `google.protobuf.Timestamp`.
-            "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
             "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
                 # to allow the value "24:00:00" for scenarios like business closing time.
+            "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
             "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
             "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
                 # allow the value 60 if it allows leap-seconds.
@@ -949,11 +949,7 @@
     "creationTime": "A String", # Timestamp when this course work was created.
         # 
         # Read-only.
-    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
-        # project making the request.
-        # 
-        # See google.classroom.Work.CreateCourseWork for more
-        # details.
+    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
         # 
         # Read-only.
     "state": "A String", # Status of this course work.
@@ -965,10 +961,10 @@
           #
           # When creating attachments, setting the `form` field is not supported.
         "youtubeVideo": { # YouTube video item. # YouTube video material.
-          "alternateLink": "A String", # URL that can be used to view the YouTube video.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
               #
               # Read-only.
-          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+          "alternateLink": "A String", # URL that can be used to view the YouTube video.
               #
               # Read-only.
           "id": "A String", # YouTube API resource ID.
@@ -978,10 +974,10 @@
         },
         "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
           "driveFile": { # Representation of a Google Drive file. # Drive file details.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -1018,23 +1014,6 @@
         },
       },
     ],
-    "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
-        # This must be specified if `due_time` is specified.
-        # time zone are either specified elsewhere or are not significant. The date
-        # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
-        # represent a year and month where the day is not significant, e.g. credit card
-        # expiration date. The year may be 0 to represent a month and day independent
-        # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
-        # and `google.protobuf.Timestamp`.
-      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-          # a year.
-      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-          # if specifying a year/month where the day is not significant.
-      "month": 42, # Month of year. Must be from 1 to 12.
-    },
-    "maxPoints": 3.14, # Maximum grade for this course work.
-        # If zero or unspecified, this assignment is considered ungraded.
-        # This must be a non-negative integer value.
     "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
         # For read operations, this field is populated only when `work_type` is
         # `MULTIPLE_CHOICE_QUESTION`.
@@ -1045,17 +1024,38 @@
         "A String",
       ],
     },
-    "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
+    "maxPoints": 3.14, # Maximum grade for this course work.
+        # If zero or unspecified, this assignment is considered ungraded.
+        # This must be a non-negative integer value.
+    "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
+        # project making the request.
+        # 
+        # See google.classroom.Work.CreateCourseWork for more
+        # details.
         # 
         # Read-only.
+    "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
+        # This must be specified if `due_time` is specified.
+        # time zone are either specified elsewhere or are not significant. The date
+        # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+        # represent a year and month where the day is not significant, e.g. credit card
+        # expiration date. The year may be 0 to represent a month and day independent
+        # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+        # and `google.protobuf.Timestamp`.
+      "month": 42, # Month of year. Must be from 1 to 12.
+      "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+          # if specifying a year/month where the day is not significant.
+      "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+          # a year.
+    },
     "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this this course work
         # are due.
         # This must be specified if `due_date` is specified.
         # or are specified elsewhere. An API may choose to allow leap seconds. Related
         # types are google.type.Date and `google.protobuf.Timestamp`.
-      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
       "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
           # to allow the value "24:00:00" for scenarios like business closing time.
+      "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
       "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
       "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
           # allow the value 60 if it allows leap-seconds.
@@ -1126,11 +1126,7 @@
       "creationTime": "A String", # Timestamp when this course work was created.
           #
           # Read-only.
-      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
-          # project making the request.
-          #
-          # See google.classroom.Work.CreateCourseWork for more
-          # details.
+      "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
           #
           # Read-only.
       "state": "A String", # Status of this course work.
@@ -1142,10 +1138,10 @@
             #
             # When creating attachments, setting the `form` field is not supported.
           "youtubeVideo": { # YouTube video item. # YouTube video material.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -1155,10 +1151,10 @@
           },
           "driveFile": { # Drive file that is used as material for course work. # Google Drive file material.
             "driveFile": { # Representation of a Google Drive file. # Drive file details.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -1195,23 +1191,6 @@
           },
         },
       ],
-      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
-          # This must be specified if `due_time` is specified.
-          # time zone are either specified elsewhere or are not significant. The date
-          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
-          # represent a year and month where the day is not significant, e.g. credit card
-          # expiration date. The year may be 0 to represent a month and day independent
-          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
-          # and `google.protobuf.Timestamp`.
-        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-            # a year.
-        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-            # if specifying a year/month where the day is not significant.
-        "month": 42, # Month of year. Must be from 1 to 12.
-      },
-      "maxPoints": 3.14, # Maximum grade for this course work.
-          # If zero or unspecified, this assignment is considered ungraded.
-          # This must be a non-negative integer value.
       "multipleChoiceQuestion": { # Additional details for multiple-choice questions. # Multiple choice question details.
           # For read operations, this field is populated only when `work_type` is
           # `MULTIPLE_CHOICE_QUESTION`.
@@ -1222,17 +1201,38 @@
           "A String",
         ],
       },
-      "id": "A String", # Classroom-assigned identifier of this course work, unique per course.
+      "maxPoints": 3.14, # Maximum grade for this course work.
+          # If zero or unspecified, this assignment is considered ungraded.
+          # This must be a non-negative integer value.
+      "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console
+          # project making the request.
+          #
+          # See google.classroom.Work.CreateCourseWork for more
+          # details.
           #
           # Read-only.
+      "dueDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # Optional date, in UTC, that submissions for this this course work are due.
+          # This must be specified if `due_time` is specified.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "month": 42, # Month of year. Must be from 1 to 12.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+      },
       "dueTime": { # Represents a time of day. The date and time zone are either not significant # Optional time of day, in UTC, that submissions for this this course work
           # are due.
           # This must be specified if `due_date` is specified.
           # or are specified elsewhere. An API may choose to allow leap seconds. Related
           # types are google.type.Date and `google.protobuf.Timestamp`.
-        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
         "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
             # to allow the value "24:00:00" for scenarios like business closing time.
+        "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
         "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
             # allow the value 60 if it allows leap-seconds.
diff --git a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
index 912db35..974b632 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
@@ -203,10 +203,10 @@
                 # Read-only.
           },
           "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -215,10 +215,10 @@
                 # Read-only.
           },
           "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -388,10 +388,10 @@
                     # Read-only.
               },
               "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-                "alternateLink": "A String", # URL that can be used to access the Drive item.
+                "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                     #
                     # Read-only.
-                "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+                "alternateLink": "A String", # URL that can be used to access the Drive item.
                     #
                     # Read-only.
                 "id": "A String", # Drive API resource ID.
@@ -400,10 +400,10 @@
                     # Read-only.
               },
               "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-                "alternateLink": "A String", # URL that can be used to view the YouTube video.
+                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                     #
                     # Read-only.
-                "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+                "alternateLink": "A String", # URL that can be used to view the YouTube video.
                     #
                     # Read-only.
                 "id": "A String", # YouTube API resource ID.
@@ -500,10 +500,10 @@
               # Read-only.
         },
         "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-          "alternateLink": "A String", # URL that can be used to access the Drive item.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
               #
               # Read-only.
-          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+          "alternateLink": "A String", # URL that can be used to access the Drive item.
               #
               # Read-only.
           "id": "A String", # Drive API resource ID.
@@ -512,10 +512,10 @@
               # Read-only.
         },
         "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-          "alternateLink": "A String", # URL that can be used to view the YouTube video.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
               #
               # Read-only.
-          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+          "alternateLink": "A String", # URL that can be used to view the YouTube video.
               #
               # Read-only.
           "id": "A String", # YouTube API resource ID.
@@ -628,10 +628,10 @@
                 # Read-only.
           },
           "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -640,10 +640,10 @@
                 # Read-only.
           },
           "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -784,10 +784,10 @@
               # Read-only.
         },
         "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-          "alternateLink": "A String", # URL that can be used to access the Drive item.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
               #
               # Read-only.
-          "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+          "alternateLink": "A String", # URL that can be used to access the Drive item.
               #
               # Read-only.
           "id": "A String", # Drive API resource ID.
@@ -796,10 +796,10 @@
               # Read-only.
         },
         "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-          "alternateLink": "A String", # URL that can be used to view the YouTube video.
+          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
               #
               # Read-only.
-          "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+          "alternateLink": "A String", # URL that can be used to view the YouTube video.
               #
               # Read-only.
           "id": "A String", # YouTube API resource ID.
@@ -924,10 +924,10 @@
                 # Read-only.
           },
           "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -936,10 +936,10 @@
                 # Read-only.
           },
           "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
diff --git a/docs/dyn/classroom_v1.courses.html b/docs/dyn/classroom_v1.courses.html
index 64a47c0..930ed4d 100644
--- a/docs/dyn/classroom_v1.courses.html
+++ b/docs/dyn/classroom_v1.courses.html
@@ -143,12 +143,14 @@
       # Specifying this field in a course update mask results in an error.
       # 
       # Read-only.
-  "description": "A String", # Optional description.
-      # For example, "We'll be learning about the structure of living
-      # creatures from a combination of textbooks, guest lectures, and lab work.
-      # Expect to be excited!"
-      # If set, this field must be a valid UTF-8 string and no longer than 30,000
+  "room": "A String", # Optional room location.
+      # For example, "301".
+      # If set, this field must be a valid UTF-8 string and no longer than 650
       # characters.
+  "name": "A String", # Name of the course.
+      # For example, "10th Grade Biology".
+      # The name is required. It must be between 1 and 750 characters and a valid
+      # UTF-8 string.
   "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
       # 
       # Read-only.
@@ -156,10 +158,6 @@
       # Specifying this field in a course update mask results in an error.
       # 
       # Read-only.
-  "creationTime": "A String", # Creation time of the course.
-      # Specifying this field in a course update mask results in an error.
-      # 
-      # Read-only.
   "section": "A String", # Section of the course.
       # For example, "Period 2".
       # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -171,10 +169,10 @@
       # This group does not accept email and can only be used for permissions.
       # 
       # Read-only.
-  "name": "A String", # Name of the course.
-      # For example, "10th Grade Biology".
-      # The name is required. It must be between 1 and 750 characters and a valid
-      # UTF-8 string.
+  "creationTime": "A String", # Creation time of the course.
+      # Specifying this field in a course update mask results in an error.
+      # 
+      # Read-only.
   "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
       # This group does not accept email and can only be used for permissions.
       # 
@@ -198,10 +196,10 @@
                 # Read-only.
           },
           "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -210,10 +208,10 @@
                 # Read-only.
           },
           "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -254,8 +252,6 @@
         #
         # Read-only.
   },
-  "courseState": "A String", # State of the course.
-      # If unspecified, the default state is `PROVISIONED`.
   "ownerId": "A String", # The identifier of the owner of a course.
       # 
       # When specified as a parameter of a
@@ -269,6 +265,8 @@
       # 
       # This must be set in a create request. Specifying this field in a course
       # update mask results in an `INVALID_ARGUMENT` error.
+  "courseState": "A String", # State of the course.
+      # If unspecified, the default state is `PROVISIONED`.
   "id": "A String", # Identifier for this course assigned by Classroom.
       # 
       # When
@@ -283,9 +281,11 @@
       # For example, "Welcome to 10th Grade Biology."
       # If set, this field must be a valid UTF-8 string and no longer than 3600
       # characters.
-  "room": "A String", # Optional room location.
-      # For example, "301".
-      # If set, this field must be a valid UTF-8 string and no longer than 650
+  "description": "A String", # Optional description.
+      # For example, "We'll be learning about the structure of living
+      # creatures from a combination of textbooks, guest lectures, and lab work.
+      # Expect to be excited!"
+      # If set, this field must be a valid UTF-8 string and no longer than 30,000
       # characters.
 }
 
@@ -302,12 +302,14 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "description": "A String", # Optional description.
-        # For example, "We'll be learning about the structure of living
-        # creatures from a combination of textbooks, guest lectures, and lab work.
-        # Expect to be excited!"
-        # If set, this field must be a valid UTF-8 string and no longer than 30,000
+    "room": "A String", # Optional room location.
+        # For example, "301".
+        # If set, this field must be a valid UTF-8 string and no longer than 650
         # characters.
+    "name": "A String", # Name of the course.
+        # For example, "10th Grade Biology".
+        # The name is required. It must be between 1 and 750 characters and a valid
+        # UTF-8 string.
     "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
         #
         # Read-only.
@@ -315,10 +317,6 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "creationTime": "A String", # Creation time of the course.
-        # Specifying this field in a course update mask results in an error.
-        #
-        # Read-only.
     "section": "A String", # Section of the course.
         # For example, "Period 2".
         # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -330,10 +328,10 @@
         # This group does not accept email and can only be used for permissions.
         #
         # Read-only.
-    "name": "A String", # Name of the course.
-        # For example, "10th Grade Biology".
-        # The name is required. It must be between 1 and 750 characters and a valid
-        # UTF-8 string.
+    "creationTime": "A String", # Creation time of the course.
+        # Specifying this field in a course update mask results in an error.
+        #
+        # Read-only.
     "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
         # This group does not accept email and can only be used for permissions.
         #
@@ -357,10 +355,10 @@
                   # Read-only.
             },
             "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -369,10 +367,10 @@
                   # Read-only.
             },
             "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-              "alternateLink": "A String", # URL that can be used to view the YouTube video.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+              "alternateLink": "A String", # URL that can be used to view the YouTube video.
                   #
                   # Read-only.
               "id": "A String", # YouTube API resource ID.
@@ -413,8 +411,6 @@
           #
           # Read-only.
     },
-    "courseState": "A String", # State of the course.
-        # If unspecified, the default state is `PROVISIONED`.
     "ownerId": "A String", # The identifier of the owner of a course.
         #
         # When specified as a parameter of a
@@ -428,6 +424,8 @@
         #
         # This must be set in a create request. Specifying this field in a course
         # update mask results in an `INVALID_ARGUMENT` error.
+    "courseState": "A String", # State of the course.
+        # If unspecified, the default state is `PROVISIONED`.
     "id": "A String", # Identifier for this course assigned by Classroom.
         #
         # When
@@ -442,9 +440,11 @@
         # For example, "Welcome to 10th Grade Biology."
         # If set, this field must be a valid UTF-8 string and no longer than 3600
         # characters.
-    "room": "A String", # Optional room location.
-        # For example, "301".
-        # If set, this field must be a valid UTF-8 string and no longer than 650
+    "description": "A String", # Optional description.
+        # For example, "We'll be learning about the structure of living
+        # creatures from a combination of textbooks, guest lectures, and lab work.
+        # Expect to be excited!"
+        # If set, this field must be a valid UTF-8 string and no longer than 30,000
         # characters.
   }</pre>
 </div>
@@ -510,12 +510,14 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "description": "A String", # Optional description.
-        # For example, "We'll be learning about the structure of living
-        # creatures from a combination of textbooks, guest lectures, and lab work.
-        # Expect to be excited!"
-        # If set, this field must be a valid UTF-8 string and no longer than 30,000
+    "room": "A String", # Optional room location.
+        # For example, "301".
+        # If set, this field must be a valid UTF-8 string and no longer than 650
         # characters.
+    "name": "A String", # Name of the course.
+        # For example, "10th Grade Biology".
+        # The name is required. It must be between 1 and 750 characters and a valid
+        # UTF-8 string.
     "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
         #
         # Read-only.
@@ -523,10 +525,6 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "creationTime": "A String", # Creation time of the course.
-        # Specifying this field in a course update mask results in an error.
-        #
-        # Read-only.
     "section": "A String", # Section of the course.
         # For example, "Period 2".
         # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -538,10 +536,10 @@
         # This group does not accept email and can only be used for permissions.
         #
         # Read-only.
-    "name": "A String", # Name of the course.
-        # For example, "10th Grade Biology".
-        # The name is required. It must be between 1 and 750 characters and a valid
-        # UTF-8 string.
+    "creationTime": "A String", # Creation time of the course.
+        # Specifying this field in a course update mask results in an error.
+        #
+        # Read-only.
     "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
         # This group does not accept email and can only be used for permissions.
         #
@@ -565,10 +563,10 @@
                   # Read-only.
             },
             "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -577,10 +575,10 @@
                   # Read-only.
             },
             "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-              "alternateLink": "A String", # URL that can be used to view the YouTube video.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+              "alternateLink": "A String", # URL that can be used to view the YouTube video.
                   #
                   # Read-only.
               "id": "A String", # YouTube API resource ID.
@@ -621,8 +619,6 @@
           #
           # Read-only.
     },
-    "courseState": "A String", # State of the course.
-        # If unspecified, the default state is `PROVISIONED`.
     "ownerId": "A String", # The identifier of the owner of a course.
         #
         # When specified as a parameter of a
@@ -636,6 +632,8 @@
         #
         # This must be set in a create request. Specifying this field in a course
         # update mask results in an `INVALID_ARGUMENT` error.
+    "courseState": "A String", # State of the course.
+        # If unspecified, the default state is `PROVISIONED`.
     "id": "A String", # Identifier for this course assigned by Classroom.
         #
         # When
@@ -650,9 +648,11 @@
         # For example, "Welcome to 10th Grade Biology."
         # If set, this field must be a valid UTF-8 string and no longer than 3600
         # characters.
-    "room": "A String", # Optional room location.
-        # For example, "301".
-        # If set, this field must be a valid UTF-8 string and no longer than 650
+    "description": "A String", # Optional description.
+        # For example, "We'll be learning about the structure of living
+        # creatures from a combination of textbooks, guest lectures, and lab work.
+        # Expect to be excited!"
+        # If set, this field must be a valid UTF-8 string and no longer than 30,000
         # characters.
   }</pre>
 </div>
@@ -711,12 +711,14 @@
             # Specifying this field in a course update mask results in an error.
             #
             # Read-only.
-        "description": "A String", # Optional description.
-            # For example, "We'll be learning about the structure of living
-            # creatures from a combination of textbooks, guest lectures, and lab work.
-            # Expect to be excited!"
-            # If set, this field must be a valid UTF-8 string and no longer than 30,000
+        "room": "A String", # Optional room location.
+            # For example, "301".
+            # If set, this field must be a valid UTF-8 string and no longer than 650
             # characters.
+        "name": "A String", # Name of the course.
+            # For example, "10th Grade Biology".
+            # The name is required. It must be between 1 and 750 characters and a valid
+            # UTF-8 string.
         "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
             #
             # Read-only.
@@ -724,10 +726,6 @@
             # Specifying this field in a course update mask results in an error.
             #
             # Read-only.
-        "creationTime": "A String", # Creation time of the course.
-            # Specifying this field in a course update mask results in an error.
-            #
-            # Read-only.
         "section": "A String", # Section of the course.
             # For example, "Period 2".
             # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -739,10 +737,10 @@
             # This group does not accept email and can only be used for permissions.
             #
             # Read-only.
-        "name": "A String", # Name of the course.
-            # For example, "10th Grade Biology".
-            # The name is required. It must be between 1 and 750 characters and a valid
-            # UTF-8 string.
+        "creationTime": "A String", # Creation time of the course.
+            # Specifying this field in a course update mask results in an error.
+            #
+            # Read-only.
         "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
             # This group does not accept email and can only be used for permissions.
             #
@@ -766,10 +764,10 @@
                       # Read-only.
                 },
                 "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-                  "alternateLink": "A String", # URL that can be used to access the Drive item.
+                  "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                       #
                       # Read-only.
-                  "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+                  "alternateLink": "A String", # URL that can be used to access the Drive item.
                       #
                       # Read-only.
                   "id": "A String", # Drive API resource ID.
@@ -778,10 +776,10 @@
                       # Read-only.
                 },
                 "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-                  "alternateLink": "A String", # URL that can be used to view the YouTube video.
+                  "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                       #
                       # Read-only.
-                  "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+                  "alternateLink": "A String", # URL that can be used to view the YouTube video.
                       #
                       # Read-only.
                   "id": "A String", # YouTube API resource ID.
@@ -822,8 +820,6 @@
               #
               # Read-only.
         },
-        "courseState": "A String", # State of the course.
-            # If unspecified, the default state is `PROVISIONED`.
         "ownerId": "A String", # The identifier of the owner of a course.
             #
             # When specified as a parameter of a
@@ -837,6 +833,8 @@
             #
             # This must be set in a create request. Specifying this field in a course
             # update mask results in an `INVALID_ARGUMENT` error.
+        "courseState": "A String", # State of the course.
+            # If unspecified, the default state is `PROVISIONED`.
         "id": "A String", # Identifier for this course assigned by Classroom.
             #
             # When
@@ -851,9 +849,11 @@
             # For example, "Welcome to 10th Grade Biology."
             # If set, this field must be a valid UTF-8 string and no longer than 3600
             # characters.
-        "room": "A String", # Optional room location.
-            # For example, "301".
-            # If set, this field must be a valid UTF-8 string and no longer than 650
+        "description": "A String", # Optional description.
+            # For example, "We'll be learning about the structure of living
+            # creatures from a combination of textbooks, guest lectures, and lab work.
+            # Expect to be excited!"
+            # If set, this field must be a valid UTF-8 string and no longer than 30,000
             # characters.
       },
     ],
@@ -900,12 +900,14 @@
       # Specifying this field in a course update mask results in an error.
       # 
       # Read-only.
-  "description": "A String", # Optional description.
-      # For example, "We'll be learning about the structure of living
-      # creatures from a combination of textbooks, guest lectures, and lab work.
-      # Expect to be excited!"
-      # If set, this field must be a valid UTF-8 string and no longer than 30,000
+  "room": "A String", # Optional room location.
+      # For example, "301".
+      # If set, this field must be a valid UTF-8 string and no longer than 650
       # characters.
+  "name": "A String", # Name of the course.
+      # For example, "10th Grade Biology".
+      # The name is required. It must be between 1 and 750 characters and a valid
+      # UTF-8 string.
   "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
       # 
       # Read-only.
@@ -913,10 +915,6 @@
       # Specifying this field in a course update mask results in an error.
       # 
       # Read-only.
-  "creationTime": "A String", # Creation time of the course.
-      # Specifying this field in a course update mask results in an error.
-      # 
-      # Read-only.
   "section": "A String", # Section of the course.
       # For example, "Period 2".
       # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -928,10 +926,10 @@
       # This group does not accept email and can only be used for permissions.
       # 
       # Read-only.
-  "name": "A String", # Name of the course.
-      # For example, "10th Grade Biology".
-      # The name is required. It must be between 1 and 750 characters and a valid
-      # UTF-8 string.
+  "creationTime": "A String", # Creation time of the course.
+      # Specifying this field in a course update mask results in an error.
+      # 
+      # Read-only.
   "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
       # This group does not accept email and can only be used for permissions.
       # 
@@ -955,10 +953,10 @@
                 # Read-only.
           },
           "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -967,10 +965,10 @@
                 # Read-only.
           },
           "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -1011,8 +1009,6 @@
         #
         # Read-only.
   },
-  "courseState": "A String", # State of the course.
-      # If unspecified, the default state is `PROVISIONED`.
   "ownerId": "A String", # The identifier of the owner of a course.
       # 
       # When specified as a parameter of a
@@ -1026,6 +1022,8 @@
       # 
       # This must be set in a create request. Specifying this field in a course
       # update mask results in an `INVALID_ARGUMENT` error.
+  "courseState": "A String", # State of the course.
+      # If unspecified, the default state is `PROVISIONED`.
   "id": "A String", # Identifier for this course assigned by Classroom.
       # 
       # When
@@ -1040,9 +1038,11 @@
       # For example, "Welcome to 10th Grade Biology."
       # If set, this field must be a valid UTF-8 string and no longer than 3600
       # characters.
-  "room": "A String", # Optional room location.
-      # For example, "301".
-      # If set, this field must be a valid UTF-8 string and no longer than 650
+  "description": "A String", # Optional description.
+      # For example, "We'll be learning about the structure of living
+      # creatures from a combination of textbooks, guest lectures, and lab work.
+      # Expect to be excited!"
+      # If set, this field must be a valid UTF-8 string and no longer than 30,000
       # characters.
 }
 
@@ -1073,12 +1073,14 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "description": "A String", # Optional description.
-        # For example, "We'll be learning about the structure of living
-        # creatures from a combination of textbooks, guest lectures, and lab work.
-        # Expect to be excited!"
-        # If set, this field must be a valid UTF-8 string and no longer than 30,000
+    "room": "A String", # Optional room location.
+        # For example, "301".
+        # If set, this field must be a valid UTF-8 string and no longer than 650
         # characters.
+    "name": "A String", # Name of the course.
+        # For example, "10th Grade Biology".
+        # The name is required. It must be between 1 and 750 characters and a valid
+        # UTF-8 string.
     "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
         #
         # Read-only.
@@ -1086,10 +1088,6 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "creationTime": "A String", # Creation time of the course.
-        # Specifying this field in a course update mask results in an error.
-        #
-        # Read-only.
     "section": "A String", # Section of the course.
         # For example, "Period 2".
         # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -1101,10 +1099,10 @@
         # This group does not accept email and can only be used for permissions.
         #
         # Read-only.
-    "name": "A String", # Name of the course.
-        # For example, "10th Grade Biology".
-        # The name is required. It must be between 1 and 750 characters and a valid
-        # UTF-8 string.
+    "creationTime": "A String", # Creation time of the course.
+        # Specifying this field in a course update mask results in an error.
+        #
+        # Read-only.
     "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
         # This group does not accept email and can only be used for permissions.
         #
@@ -1128,10 +1126,10 @@
                   # Read-only.
             },
             "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -1140,10 +1138,10 @@
                   # Read-only.
             },
             "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-              "alternateLink": "A String", # URL that can be used to view the YouTube video.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+              "alternateLink": "A String", # URL that can be used to view the YouTube video.
                   #
                   # Read-only.
               "id": "A String", # YouTube API resource ID.
@@ -1184,8 +1182,6 @@
           #
           # Read-only.
     },
-    "courseState": "A String", # State of the course.
-        # If unspecified, the default state is `PROVISIONED`.
     "ownerId": "A String", # The identifier of the owner of a course.
         #
         # When specified as a parameter of a
@@ -1199,6 +1195,8 @@
         #
         # This must be set in a create request. Specifying this field in a course
         # update mask results in an `INVALID_ARGUMENT` error.
+    "courseState": "A String", # State of the course.
+        # If unspecified, the default state is `PROVISIONED`.
     "id": "A String", # Identifier for this course assigned by Classroom.
         #
         # When
@@ -1213,9 +1211,11 @@
         # For example, "Welcome to 10th Grade Biology."
         # If set, this field must be a valid UTF-8 string and no longer than 3600
         # characters.
-    "room": "A String", # Optional room location.
-        # For example, "301".
-        # If set, this field must be a valid UTF-8 string and no longer than 650
+    "description": "A String", # Optional description.
+        # For example, "We'll be learning about the structure of living
+        # creatures from a combination of textbooks, guest lectures, and lab work.
+        # Expect to be excited!"
+        # If set, this field must be a valid UTF-8 string and no longer than 30,000
         # characters.
   }</pre>
 </div>
@@ -1244,12 +1244,14 @@
       # Specifying this field in a course update mask results in an error.
       # 
       # Read-only.
-  "description": "A String", # Optional description.
-      # For example, "We'll be learning about the structure of living
-      # creatures from a combination of textbooks, guest lectures, and lab work.
-      # Expect to be excited!"
-      # If set, this field must be a valid UTF-8 string and no longer than 30,000
+  "room": "A String", # Optional room location.
+      # For example, "301".
+      # If set, this field must be a valid UTF-8 string and no longer than 650
       # characters.
+  "name": "A String", # Name of the course.
+      # For example, "10th Grade Biology".
+      # The name is required. It must be between 1 and 750 characters and a valid
+      # UTF-8 string.
   "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
       # 
       # Read-only.
@@ -1257,10 +1259,6 @@
       # Specifying this field in a course update mask results in an error.
       # 
       # Read-only.
-  "creationTime": "A String", # Creation time of the course.
-      # Specifying this field in a course update mask results in an error.
-      # 
-      # Read-only.
   "section": "A String", # Section of the course.
       # For example, "Period 2".
       # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -1272,10 +1270,10 @@
       # This group does not accept email and can only be used for permissions.
       # 
       # Read-only.
-  "name": "A String", # Name of the course.
-      # For example, "10th Grade Biology".
-      # The name is required. It must be between 1 and 750 characters and a valid
-      # UTF-8 string.
+  "creationTime": "A String", # Creation time of the course.
+      # Specifying this field in a course update mask results in an error.
+      # 
+      # Read-only.
   "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
       # This group does not accept email and can only be used for permissions.
       # 
@@ -1299,10 +1297,10 @@
                 # Read-only.
           },
           "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-            "alternateLink": "A String", # URL that can be used to access the Drive item.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+            "alternateLink": "A String", # URL that can be used to access the Drive item.
                 #
                 # Read-only.
             "id": "A String", # Drive API resource ID.
@@ -1311,10 +1309,10 @@
                 # Read-only.
           },
           "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-            "alternateLink": "A String", # URL that can be used to view the YouTube video.
+            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                 #
                 # Read-only.
-            "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+            "alternateLink": "A String", # URL that can be used to view the YouTube video.
                 #
                 # Read-only.
             "id": "A String", # YouTube API resource ID.
@@ -1355,8 +1353,6 @@
         #
         # Read-only.
   },
-  "courseState": "A String", # State of the course.
-      # If unspecified, the default state is `PROVISIONED`.
   "ownerId": "A String", # The identifier of the owner of a course.
       # 
       # When specified as a parameter of a
@@ -1370,6 +1366,8 @@
       # 
       # This must be set in a create request. Specifying this field in a course
       # update mask results in an `INVALID_ARGUMENT` error.
+  "courseState": "A String", # State of the course.
+      # If unspecified, the default state is `PROVISIONED`.
   "id": "A String", # Identifier for this course assigned by Classroom.
       # 
       # When
@@ -1384,9 +1382,11 @@
       # For example, "Welcome to 10th Grade Biology."
       # If set, this field must be a valid UTF-8 string and no longer than 3600
       # characters.
-  "room": "A String", # Optional room location.
-      # For example, "301".
-      # If set, this field must be a valid UTF-8 string and no longer than 650
+  "description": "A String", # Optional description.
+      # For example, "We'll be learning about the structure of living
+      # creatures from a combination of textbooks, guest lectures, and lab work.
+      # Expect to be excited!"
+      # If set, this field must be a valid UTF-8 string and no longer than 30,000
       # characters.
 }
 
@@ -1403,12 +1403,14 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "description": "A String", # Optional description.
-        # For example, "We'll be learning about the structure of living
-        # creatures from a combination of textbooks, guest lectures, and lab work.
-        # Expect to be excited!"
-        # If set, this field must be a valid UTF-8 string and no longer than 30,000
+    "room": "A String", # Optional room location.
+        # For example, "301".
+        # If set, this field must be a valid UTF-8 string and no longer than 650
         # characters.
+    "name": "A String", # Name of the course.
+        # For example, "10th Grade Biology".
+        # The name is required. It must be between 1 and 750 characters and a valid
+        # UTF-8 string.
     "alternateLink": "A String", # Absolute link to this course in the Classroom web UI.
         #
         # Read-only.
@@ -1416,10 +1418,6 @@
         # Specifying this field in a course update mask results in an error.
         #
         # Read-only.
-    "creationTime": "A String", # Creation time of the course.
-        # Specifying this field in a course update mask results in an error.
-        #
-        # Read-only.
     "section": "A String", # Section of the course.
         # For example, "Period 2".
         # If set, this field must be a valid UTF-8 string and no longer than 2800
@@ -1431,10 +1429,10 @@
         # This group does not accept email and can only be used for permissions.
         #
         # Read-only.
-    "name": "A String", # Name of the course.
-        # For example, "10th Grade Biology".
-        # The name is required. It must be between 1 and 750 characters and a valid
-        # UTF-8 string.
+    "creationTime": "A String", # Creation time of the course.
+        # Specifying this field in a course update mask results in an error.
+        #
+        # Read-only.
     "teacherGroupEmail": "A String", # The email address of a Google group containing all teachers of the course.
         # This group does not accept email and can only be used for permissions.
         #
@@ -1458,10 +1456,10 @@
                   # Read-only.
             },
             "driveFile": { # Representation of a Google Drive file. # Google Drive file attachment.
-              "alternateLink": "A String", # URL that can be used to access the Drive item.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the Drive item.
+              "alternateLink": "A String", # URL that can be used to access the Drive item.
                   #
                   # Read-only.
               "id": "A String", # Drive API resource ID.
@@ -1470,10 +1468,10 @@
                   # Read-only.
             },
             "youTubeVideo": { # YouTube video item. # Youtube video attachment.
-              "alternateLink": "A String", # URL that can be used to view the YouTube video.
+              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
                   #
                   # Read-only.
-              "thumbnailUrl": "A String", # URL of a thumbnail image of the YouTube video.
+              "alternateLink": "A String", # URL that can be used to view the YouTube video.
                   #
                   # Read-only.
               "id": "A String", # YouTube API resource ID.
@@ -1514,8 +1512,6 @@
           #
           # Read-only.
     },
-    "courseState": "A String", # State of the course.
-        # If unspecified, the default state is `PROVISIONED`.
     "ownerId": "A String", # The identifier of the owner of a course.
         #
         # When specified as a parameter of a
@@ -1529,6 +1525,8 @@
         #
         # This must be set in a create request. Specifying this field in a course
         # update mask results in an `INVALID_ARGUMENT` error.
+    "courseState": "A String", # State of the course.
+        # If unspecified, the default state is `PROVISIONED`.
     "id": "A String", # Identifier for this course assigned by Classroom.
         #
         # When
@@ -1543,9 +1541,11 @@
         # For example, "Welcome to 10th Grade Biology."
         # If set, this field must be a valid UTF-8 string and no longer than 3600
         # characters.
-    "room": "A String", # Optional room location.
-        # For example, "301".
-        # If set, this field must be a valid UTF-8 string and no longer than 650
+    "description": "A String", # Optional description.
+        # For example, "We'll be learning about the structure of living
+        # creatures from a combination of textbooks, guest lectures, and lab work.
+        # Expect to be excited!"
+        # If set, this field must be a valid UTF-8 string and no longer than 30,000
         # characters.
   }</pre>
 </div>
diff --git a/docs/dyn/classroom_v1.courses.students.html b/docs/dyn/classroom_v1.courses.students.html
index a1f7b75..b31e90c 100644
--- a/docs/dyn/classroom_v1.courses.students.html
+++ b/docs/dyn/classroom_v1.courses.students.html
@@ -121,9 +121,13 @@
     "profile": { # Global information for a user. # Global user information for the student.
         # 
         # Read-only.
-      "photoUrl": "A String", # URL of user's profile photo.
+      "permissions": [ # Global permissions of the user.
           #
           # Read-only.
+        { # Global user permission description.
+          "permission": "A String", # Permission value.
+        },
+      ],
       "emailAddress": "A String", # Email address of the user.
           #
           # Read-only.
@@ -144,13 +148,9 @@
             #
             # Read-only.
       },
-      "permissions": [ # Global permissions of the user.
+      "photoUrl": "A String", # URL of user's profile photo.
           #
           # Read-only.
-        { # Global user permission description.
-          "permission": "A String", # Permission value.
-        },
-      ],
     },
     "studentWorkFolder": { # Representation of a Google Drive folder. # Information about a Drive Folder for this student's work in this course.
         # Only visible to the student and domain administrators.
@@ -193,9 +193,13 @@
       "profile": { # Global information for a user. # Global user information for the student.
           #
           # Read-only.
-        "photoUrl": "A String", # URL of user's profile photo.
+        "permissions": [ # Global permissions of the user.
             #
             # Read-only.
+          { # Global user permission description.
+            "permission": "A String", # Permission value.
+          },
+        ],
         "emailAddress": "A String", # Email address of the user.
             #
             # Read-only.
@@ -216,13 +220,9 @@
               #
               # Read-only.
         },
-        "permissions": [ # Global permissions of the user.
+        "photoUrl": "A String", # URL of user's profile photo.
             #
             # Read-only.
-          { # Global user permission description.
-            "permission": "A String", # Permission value.
-          },
-        ],
       },
       "studentWorkFolder": { # Representation of a Google Drive folder. # Information about a Drive Folder for this student's work in this course.
           # Only visible to the student and domain administrators.
@@ -324,9 +324,13 @@
       "profile": { # Global information for a user. # Global user information for the student.
           #
           # Read-only.
-        "photoUrl": "A String", # URL of user's profile photo.
+        "permissions": [ # Global permissions of the user.
             #
             # Read-only.
+          { # Global user permission description.
+            "permission": "A String", # Permission value.
+          },
+        ],
         "emailAddress": "A String", # Email address of the user.
             #
             # Read-only.
@@ -347,13 +351,9 @@
               #
               # Read-only.
         },
-        "permissions": [ # Global permissions of the user.
+        "photoUrl": "A String", # URL of user's profile photo.
             #
             # Read-only.
-          { # Global user permission description.
-            "permission": "A String", # Permission value.
-          },
-        ],
       },
       "studentWorkFolder": { # Representation of a Google Drive folder. # Information about a Drive Folder for this student's work in this course.
           # Only visible to the student and domain administrators.
@@ -411,8 +411,6 @@
   An object of the form:
 
     { # Response when listing students.
-    "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further
-        # results are available.
     "students": [ # Students who match the list request.
       { # Student in a course.
           "courseId": "A String", # Identifier of the course.
@@ -421,9 +419,13 @@
           "profile": { # Global information for a user. # Global user information for the student.
               #
               # Read-only.
-            "photoUrl": "A String", # URL of user's profile photo.
+            "permissions": [ # Global permissions of the user.
                 #
                 # Read-only.
+              { # Global user permission description.
+                "permission": "A String", # Permission value.
+              },
+            ],
             "emailAddress": "A String", # Email address of the user.
                 #
                 # Read-only.
@@ -444,13 +446,9 @@
                   #
                   # Read-only.
             },
-            "permissions": [ # Global permissions of the user.
+            "photoUrl": "A String", # URL of user's profile photo.
                 #
                 # Read-only.
-              { # Global user permission description.
-                "permission": "A String", # Permission value.
-              },
-            ],
           },
           "studentWorkFolder": { # Representation of a Google Drive folder. # Information about a Drive Folder for this student's work in this course.
               # Only visible to the student and domain administrators.
@@ -474,6 +472,8 @@
               # * the string literal `"me"`, indicating the requesting user
         },
     ],
+    "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further
+        # results are available.
   }</pre>
 </div>
 
diff --git a/docs/dyn/classroom_v1.courses.teachers.html b/docs/dyn/classroom_v1.courses.teachers.html
index d9f3425..7b99bd1 100644
--- a/docs/dyn/classroom_v1.courses.teachers.html
+++ b/docs/dyn/classroom_v1.courses.teachers.html
@@ -122,9 +122,13 @@
     "profile": { # Global information for a user. # Global user information for the teacher.
         # 
         # Read-only.
-      "photoUrl": "A String", # URL of user's profile photo.
+      "permissions": [ # Global permissions of the user.
           #
           # Read-only.
+        { # Global user permission description.
+          "permission": "A String", # Permission value.
+        },
+      ],
       "emailAddress": "A String", # Email address of the user.
           #
           # Read-only.
@@ -145,13 +149,9 @@
             #
             # Read-only.
       },
-      "permissions": [ # Global permissions of the user.
+      "photoUrl": "A String", # URL of user's profile photo.
           #
           # Read-only.
-        { # Global user permission description.
-          "permission": "A String", # Permission value.
-        },
-      ],
     },
     "userId": "A String", # Identifier of the user.
         # 
@@ -178,9 +178,13 @@
       "profile": { # Global information for a user. # Global user information for the teacher.
           #
           # Read-only.
-        "photoUrl": "A String", # URL of user's profile photo.
+        "permissions": [ # Global permissions of the user.
             #
             # Read-only.
+          { # Global user permission description.
+            "permission": "A String", # Permission value.
+          },
+        ],
         "emailAddress": "A String", # Email address of the user.
             #
             # Read-only.
@@ -201,13 +205,9 @@
               #
               # Read-only.
         },
-        "permissions": [ # Global permissions of the user.
+        "photoUrl": "A String", # URL of user's profile photo.
             #
             # Read-only.
-          { # Global user permission description.
-            "permission": "A String", # Permission value.
-          },
-        ],
       },
       "userId": "A String", # Identifier of the user.
           #
@@ -299,9 +299,13 @@
       "profile": { # Global information for a user. # Global user information for the teacher.
           #
           # Read-only.
-        "photoUrl": "A String", # URL of user's profile photo.
+        "permissions": [ # Global permissions of the user.
             #
             # Read-only.
+          { # Global user permission description.
+            "permission": "A String", # Permission value.
+          },
+        ],
         "emailAddress": "A String", # Email address of the user.
             #
             # Read-only.
@@ -322,13 +326,9 @@
               #
               # Read-only.
         },
-        "permissions": [ # Global permissions of the user.
+        "photoUrl": "A String", # URL of user's profile photo.
             #
             # Read-only.
-          { # Global user permission description.
-            "permission": "A String", # Permission value.
-          },
-        ],
       },
       "userId": "A String", # Identifier of the user.
           #
@@ -384,9 +384,13 @@
           "profile": { # Global information for a user. # Global user information for the teacher.
               #
               # Read-only.
-            "photoUrl": "A String", # URL of user's profile photo.
+            "permissions": [ # Global permissions of the user.
                 #
                 # Read-only.
+              { # Global user permission description.
+                "permission": "A String", # Permission value.
+              },
+            ],
             "emailAddress": "A String", # Email address of the user.
                 #
                 # Read-only.
@@ -407,13 +411,9 @@
                   #
                   # Read-only.
             },
-            "permissions": [ # Global permissions of the user.
+            "photoUrl": "A String", # URL of user's profile photo.
                 #
                 # Read-only.
-              { # Global user permission description.
-                "permission": "A String", # Permission value.
-              },
-            ],
           },
           "userId": "A String", # Identifier of the user.
               #
diff --git a/docs/dyn/classroom_v1.invitations.html b/docs/dyn/classroom_v1.invitations.html
index 078d83b..b7f9bdb 100644
--- a/docs/dyn/classroom_v1.invitations.html
+++ b/docs/dyn/classroom_v1.invitations.html
@@ -153,6 +153,8 @@
 
 { # An invitation to join a course.
     "courseId": "A String", # Identifier of the course to invite the user to.
+    "role": "A String", # Role to invite the user to have.
+        # Must not be `COURSE_ROLE_UNSPECIFIED`.
     "userId": "A String", # Identifier of the invited user.
         # 
         # When specified as a parameter of a request, this identifier can be set to
@@ -161,8 +163,6 @@
         # * the numeric identifier for the user
         # * the email address of the user
         # * the string literal `"me"`, indicating the requesting user
-    "role": "A String", # Role to invite the user to have.
-        # Must not be `COURSE_ROLE_UNSPECIFIED`.
     "id": "A String", # Identifier assigned by Classroom.
         # 
         # Read-only.
@@ -178,6 +178,8 @@
 
     { # An invitation to join a course.
       "courseId": "A String", # Identifier of the course to invite the user to.
+      "role": "A String", # Role to invite the user to have.
+          # Must not be `COURSE_ROLE_UNSPECIFIED`.
       "userId": "A String", # Identifier of the invited user.
           #
           # When specified as a parameter of a request, this identifier can be set to
@@ -186,8 +188,6 @@
           # * the numeric identifier for the user
           # * the email address of the user
           # * the string literal `"me"`, indicating the requesting user
-      "role": "A String", # Role to invite the user to have.
-          # Must not be `COURSE_ROLE_UNSPECIFIED`.
       "id": "A String", # Identifier assigned by Classroom.
           #
           # Read-only.
@@ -248,6 +248,8 @@
 
     { # An invitation to join a course.
       "courseId": "A String", # Identifier of the course to invite the user to.
+      "role": "A String", # Role to invite the user to have.
+          # Must not be `COURSE_ROLE_UNSPECIFIED`.
       "userId": "A String", # Identifier of the invited user.
           #
           # When specified as a parameter of a request, this identifier can be set to
@@ -256,8 +258,6 @@
           # * the numeric identifier for the user
           # * the email address of the user
           # * the string literal `"me"`, indicating the requesting user
-      "role": "A String", # Role to invite the user to have.
-          # Must not be `COURSE_ROLE_UNSPECIFIED`.
       "id": "A String", # Identifier assigned by Classroom.
           #
           # Read-only.
@@ -309,6 +309,8 @@
     "invitations": [ # Invitations that match the list request.
       { # An invitation to join a course.
           "courseId": "A String", # Identifier of the course to invite the user to.
+          "role": "A String", # Role to invite the user to have.
+              # Must not be `COURSE_ROLE_UNSPECIFIED`.
           "userId": "A String", # Identifier of the invited user.
               #
               # When specified as a parameter of a request, this identifier can be set to
@@ -317,8 +319,6 @@
               # * the numeric identifier for the user
               # * the email address of the user
               # * the string literal `"me"`, indicating the requesting user
-          "role": "A String", # Role to invite the user to have.
-              # Must not be `COURSE_ROLE_UNSPECIFIED`.
           "id": "A String", # Identifier assigned by Classroom.
               #
               # Read-only.
diff --git a/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html b/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html
index 9e046fc..ae27ed4 100644
--- a/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html
+++ b/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html
@@ -130,16 +130,16 @@
 
 { # An invitation to become the guardian of a specified user, sent to a specified
       # email address.
-    "studentId": "A String", # ID of the student (in standard format)
     "invitationId": "A String", # Unique identifier for this invitation.
         # 
         # Read-only.
-    "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
-        # This field is only visible to domain administrators.
+    "studentId": "A String", # ID of the student (in standard format)
     "creationTime": "A String", # The time that this invitation was created.
         # 
         # Read-only.
     "state": "A String", # The state that this invitation is in.
+    "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
+        # This field is only visible to domain administrators.
   }
 
   x__xgafv: string, V1 error format.
@@ -152,16 +152,16 @@
 
     { # An invitation to become the guardian of a specified user, sent to a specified
         # email address.
-      "studentId": "A String", # ID of the student (in standard format)
       "invitationId": "A String", # Unique identifier for this invitation.
           #
           # Read-only.
-      "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
-          # This field is only visible to domain administrators.
+      "studentId": "A String", # ID of the student (in standard format)
       "creationTime": "A String", # The time that this invitation was created.
           #
           # Read-only.
       "state": "A String", # The state that this invitation is in.
+      "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
+          # This field is only visible to domain administrators.
     }</pre>
 </div>
 
@@ -195,16 +195,16 @@
 
     { # An invitation to become the guardian of a specified user, sent to a specified
         # email address.
-      "studentId": "A String", # ID of the student (in standard format)
       "invitationId": "A String", # Unique identifier for this invitation.
           #
           # Read-only.
-      "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
-          # This field is only visible to domain administrators.
+      "studentId": "A String", # ID of the student (in standard format)
       "creationTime": "A String", # The time that this invitation was created.
           #
           # Read-only.
       "state": "A String", # The state that this invitation is in.
+      "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
+          # This field is only visible to domain administrators.
     }</pre>
 </div>
 
@@ -266,16 +266,16 @@
     "guardianInvitations": [ # Guardian invitations that matched the list request.
       { # An invitation to become the guardian of a specified user, sent to a specified
             # email address.
-          "studentId": "A String", # ID of the student (in standard format)
           "invitationId": "A String", # Unique identifier for this invitation.
               #
               # Read-only.
-          "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
-              # This field is only visible to domain administrators.
+          "studentId": "A String", # ID of the student (in standard format)
           "creationTime": "A String", # The time that this invitation was created.
               #
               # Read-only.
           "state": "A String", # The state that this invitation is in.
+          "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
+              # This field is only visible to domain administrators.
         },
     ],
   }</pre>
@@ -324,16 +324,16 @@
 
 { # An invitation to become the guardian of a specified user, sent to a specified
       # email address.
-    "studentId": "A String", # ID of the student (in standard format)
     "invitationId": "A String", # Unique identifier for this invitation.
         # 
         # Read-only.
-    "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
-        # This field is only visible to domain administrators.
+    "studentId": "A String", # ID of the student (in standard format)
     "creationTime": "A String", # The time that this invitation was created.
         # 
         # Read-only.
     "state": "A String", # The state that this invitation is in.
+    "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
+        # This field is only visible to domain administrators.
   }
 
   updateMask: string, Mask that identifies which fields on the course to update.
@@ -355,16 +355,16 @@
 
     { # An invitation to become the guardian of a specified user, sent to a specified
         # email address.
-      "studentId": "A String", # ID of the student (in standard format)
       "invitationId": "A String", # Unique identifier for this invitation.
           #
           # Read-only.
-      "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
-          # This field is only visible to domain administrators.
+      "studentId": "A String", # ID of the student (in standard format)
       "creationTime": "A String", # The time that this invitation was created.
           #
           # Read-only.
       "state": "A String", # The state that this invitation is in.
+      "invitedEmailAddress": "A String", # Email address that the invitation was sent to.
+          # This field is only visible to domain administrators.
     }</pre>
 </div>
 
diff --git a/docs/dyn/classroom_v1.userProfiles.guardians.html b/docs/dyn/classroom_v1.userProfiles.guardians.html
index f3b6210..c943471 100644
--- a/docs/dyn/classroom_v1.userProfiles.guardians.html
+++ b/docs/dyn/classroom_v1.userProfiles.guardians.html
@@ -170,14 +170,18 @@
 
     { # Association between a student and a guardian of that student. The guardian
       # may receive information about the student's course work.
-    "studentId": "A String", # Identifier for the student to whom the guardian relationship applies.
     "guardianId": "A String", # Identifier for the guardian.
     "invitedEmailAddress": "A String", # The email address to which the initial guardian invitation was sent.
         # This field is only visible to domain administrators.
+    "studentId": "A String", # Identifier for the student to whom the guardian relationship applies.
     "guardianProfile": { # Global information for a user. # User profile for the guardian.
-      "photoUrl": "A String", # URL of user's profile photo.
+      "permissions": [ # Global permissions of the user.
           #
           # Read-only.
+        { # Global user permission description.
+          "permission": "A String", # Permission value.
+        },
+      ],
       "emailAddress": "A String", # Email address of the user.
           #
           # Read-only.
@@ -198,13 +202,9 @@
             #
             # Read-only.
       },
-      "permissions": [ # Global permissions of the user.
+      "photoUrl": "A String", # URL of user's profile photo.
           #
           # Read-only.
-        { # Global user permission description.
-          "permission": "A String", # Permission value.
-        },
-      ],
     },
   }</pre>
 </div>
@@ -270,14 +270,18 @@
         # the request.
       { # Association between a student and a guardian of that student. The guardian
           # may receive information about the student's course work.
-        "studentId": "A String", # Identifier for the student to whom the guardian relationship applies.
         "guardianId": "A String", # Identifier for the guardian.
         "invitedEmailAddress": "A String", # The email address to which the initial guardian invitation was sent.
             # This field is only visible to domain administrators.
+        "studentId": "A String", # Identifier for the student to whom the guardian relationship applies.
         "guardianProfile": { # Global information for a user. # User profile for the guardian.
-          "photoUrl": "A String", # URL of user's profile photo.
+          "permissions": [ # Global permissions of the user.
               #
               # Read-only.
+            { # Global user permission description.
+              "permission": "A String", # Permission value.
+            },
+          ],
           "emailAddress": "A String", # Email address of the user.
               #
               # Read-only.
@@ -298,13 +302,9 @@
                 #
                 # Read-only.
           },
-          "permissions": [ # Global permissions of the user.
+          "photoUrl": "A String", # URL of user's profile photo.
               #
               # Read-only.
-            { # Global user permission description.
-              "permission": "A String", # Permission value.
-            },
-          ],
         },
       },
     ],
diff --git a/docs/dyn/classroom_v1.userProfiles.html b/docs/dyn/classroom_v1.userProfiles.html
index 8a1a8cf..8e853a6 100644
--- a/docs/dyn/classroom_v1.userProfiles.html
+++ b/docs/dyn/classroom_v1.userProfiles.html
@@ -114,9 +114,13 @@
   An object of the form:
 
     { # Global information for a user.
-    "photoUrl": "A String", # URL of user's profile photo.
+    "permissions": [ # Global permissions of the user.
         #
         # Read-only.
+      { # Global user permission description.
+        "permission": "A String", # Permission value.
+      },
+    ],
     "emailAddress": "A String", # Email address of the user.
         #
         # Read-only.
@@ -137,13 +141,9 @@
           #
           # Read-only.
     },
-    "permissions": [ # Global permissions of the user.
+    "photoUrl": "A String", # URL of user's profile photo.
         #
         # Read-only.
-      { # Global user permission description.
-        "permission": "A String", # Permission value.
-      },
-    ],
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudbuild_v1.operations.html b/docs/dyn/cloudbuild_v1.operations.html
index 990690d..ecc96db 100644
--- a/docs/dyn/cloudbuild_v1.operations.html
+++ b/docs/dyn/cloudbuild_v1.operations.html
@@ -163,7 +163,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -186,7 +186,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -239,11 +239,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -256,7 +261,6 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
-    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
@@ -277,7 +281,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -300,7 +304,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -347,6 +351,7 @@
         },
       },
     ],
+    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudbuild_v1.projects.builds.html b/docs/dyn/cloudbuild_v1.projects.builds.html
index d679463..2d75acf 100644
--- a/docs/dyn/cloudbuild_v1.projects.builds.html
+++ b/docs/dyn/cloudbuild_v1.projects.builds.html
@@ -134,13 +134,13 @@
         # @OutputOnly
     "status": "A String", # Status of the build.
         # @OutputOnly
-    "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-        # granularity. If this amount of time elapses, work on the build will cease
-        # and the build status will be TIMEOUT.
-        #
-        # Default time is ten minutes.
     "startTime": "A String", # Time at which execution of the build was started.
         # @OutputOnly
+    "statusDetail": "A String", # Customer-readable message about the current status.
+        # @OutputOnly
+    "tags": [ # Tags for annotation of a Build. These are not docker tags.
+      "A String",
+    ],
     "projectId": "A String", # ID of the project.
         # @OutputOnly.
     "id": "A String", # Unique identifier of the build.
@@ -158,16 +158,25 @@
         "A String",
       ],
     },
-    "statusDetail": "A String", # Customer-readable message about the current status.
-        # @OutputOnly
-    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-      "requestedVerifyOption": "A String", # Requested verifiability options.
-      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-        "A String",
-      ],
+    "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+        # granularity. If this amount of time elapses, work on the build will cease
+        # and the build status will be TIMEOUT.
+        #
+        # Default time is ten minutes.
+    "substitutions": { # Substitutions data for Build resource.
+      "a_key": "A String",
     },
     "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
         # service.
+      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      },
       "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
           # Storage.
           # Google Cloud Storage.
@@ -181,19 +190,16 @@
             # [Bucket Name
             # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
       },
-      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-        "tagName": "A String", # Name of the tag to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      },
     },
     "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
         # triggered automatically.
         # @OutputOnly
+    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+      "requestedVerifyOption": "A String", # Requested verifiability options.
+      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+        "A String",
+      ],
+    },
     "steps": [ # Describes the operations to be performed on the workspace.
       { # BuildStep describes a step to perform in the build pipeline.
         "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -303,9 +309,6 @@
         # If any of the images fail to be pushed, the build is marked FAILURE.
       "A String",
     ],
-    "substitutions": { # Substitutions data for Build resource.
-      "a_key": "A String",
-    },
     "createTime": "A String", # Time at which the request to create the build was received.
         # @OutputOnly
     "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -349,13 +352,13 @@
       # @OutputOnly
   "status": "A String", # Status of the build.
       # @OutputOnly
-  "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-      # granularity. If this amount of time elapses, work on the build will cease
-      # and the build status will be TIMEOUT.
-      # 
-      # Default time is ten minutes.
   "startTime": "A String", # Time at which execution of the build was started.
       # @OutputOnly
+  "statusDetail": "A String", # Customer-readable message about the current status.
+      # @OutputOnly
+  "tags": [ # Tags for annotation of a Build. These are not docker tags.
+    "A String",
+  ],
   "projectId": "A String", # ID of the project.
       # @OutputOnly.
   "id": "A String", # Unique identifier of the build.
@@ -373,16 +376,25 @@
       "A String",
     ],
   },
-  "statusDetail": "A String", # Customer-readable message about the current status.
-      # @OutputOnly
-  "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-    "requestedVerifyOption": "A String", # Requested verifiability options.
-    "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-      "A String",
-    ],
+  "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+      # granularity. If this amount of time elapses, work on the build will cease
+      # and the build status will be TIMEOUT.
+      # 
+      # Default time is ten minutes.
+  "substitutions": { # Substitutions data for Build resource.
+    "a_key": "A String",
   },
   "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
       # service.
+    "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+        # Repository.
+      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+          # the build is assumed.
+      "branchName": "A String", # Name of the branch to build.
+      "commitSha": "A String", # Explicit commit SHA to build.
+      "tagName": "A String", # Name of the tag to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+    },
     "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
         # Storage.
         # Google Cloud Storage.
@@ -396,19 +408,16 @@
           # [Bucket Name
           # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
     },
-    "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-        # Repository.
-      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-          # the build is assumed.
-      "branchName": "A String", # Name of the branch to build.
-      "commitSha": "A String", # Explicit commit SHA to build.
-      "tagName": "A String", # Name of the tag to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-    },
   },
   "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
       # triggered automatically.
       # @OutputOnly
+  "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+    "requestedVerifyOption": "A String", # Requested verifiability options.
+    "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+      "A String",
+    ],
+  },
   "steps": [ # Describes the operations to be performed on the workspace.
     { # BuildStep describes a step to perform in the build pipeline.
       "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -518,9 +527,6 @@
       # If any of the images fail to be pushed, the build is marked FAILURE.
     "A String",
   ],
-  "substitutions": { # Substitutions data for Build resource.
-    "a_key": "A String",
-  },
   "createTime": "A String", # Time at which the request to create the build was received.
       # @OutputOnly
   "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -554,7 +560,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -577,7 +583,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -666,13 +672,13 @@
         # @OutputOnly
     "status": "A String", # Status of the build.
         # @OutputOnly
-    "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-        # granularity. If this amount of time elapses, work on the build will cease
-        # and the build status will be TIMEOUT.
-        #
-        # Default time is ten minutes.
     "startTime": "A String", # Time at which execution of the build was started.
         # @OutputOnly
+    "statusDetail": "A String", # Customer-readable message about the current status.
+        # @OutputOnly
+    "tags": [ # Tags for annotation of a Build. These are not docker tags.
+      "A String",
+    ],
     "projectId": "A String", # ID of the project.
         # @OutputOnly.
     "id": "A String", # Unique identifier of the build.
@@ -690,16 +696,25 @@
         "A String",
       ],
     },
-    "statusDetail": "A String", # Customer-readable message about the current status.
-        # @OutputOnly
-    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-      "requestedVerifyOption": "A String", # Requested verifiability options.
-      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-        "A String",
-      ],
+    "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+        # granularity. If this amount of time elapses, work on the build will cease
+        # and the build status will be TIMEOUT.
+        #
+        # Default time is ten minutes.
+    "substitutions": { # Substitutions data for Build resource.
+      "a_key": "A String",
     },
     "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
         # service.
+      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+        "tagName": "A String", # Name of the tag to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      },
       "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
           # Storage.
           # Google Cloud Storage.
@@ -713,19 +728,16 @@
             # [Bucket Name
             # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
       },
-      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-        "tagName": "A String", # Name of the tag to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      },
     },
     "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
         # triggered automatically.
         # @OutputOnly
+    "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+      "requestedVerifyOption": "A String", # Requested verifiability options.
+      "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+        "A String",
+      ],
+    },
     "steps": [ # Describes the operations to be performed on the workspace.
       { # BuildStep describes a step to perform in the build pipeline.
         "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -835,9 +847,6 @@
         # If any of the images fail to be pushed, the build is marked FAILURE.
       "A String",
     ],
-    "substitutions": { # Substitutions data for Build resource.
-      "a_key": "A String",
-    },
     "createTime": "A String", # Time at which the request to create the build was received.
         # @OutputOnly
     "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -891,13 +900,13 @@
             # @OutputOnly
         "status": "A String", # Status of the build.
             # @OutputOnly
-        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-            # granularity. If this amount of time elapses, work on the build will cease
-            # and the build status will be TIMEOUT.
-            #
-            # Default time is ten minutes.
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
+        "statusDetail": "A String", # Customer-readable message about the current status.
+            # @OutputOnly
+        "tags": [ # Tags for annotation of a Build. These are not docker tags.
+          "A String",
+        ],
         "projectId": "A String", # ID of the project.
             # @OutputOnly.
         "id": "A String", # Unique identifier of the build.
@@ -915,16 +924,25 @@
             "A String",
           ],
         },
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
+        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+            # granularity. If this amount of time elapses, work on the build will cease
+            # and the build status will be TIMEOUT.
+            #
+            # Default time is ten minutes.
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+          },
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
               # Storage.
               # Google Cloud Storage.
@@ -938,19 +956,16 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
-            "tagName": "A String", # Name of the tag to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
             "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -1060,9 +1075,6 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "substitutions": { # Substitutions data for Build resource.
-          "a_key": "A String",
-        },
         "createTime": "A String", # Time at which the request to create the build was received.
             # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
diff --git a/docs/dyn/cloudbuild_v1.projects.triggers.html b/docs/dyn/cloudbuild_v1.projects.triggers.html
index 3abcce7..34227ce 100644
--- a/docs/dyn/cloudbuild_v1.projects.triggers.html
+++ b/docs/dyn/cloudbuild_v1.projects.triggers.html
@@ -104,15 +104,15 @@
 { # Configuration for an automated build in response to source repository
       # changes.
     "description": "A String", # Human-readable description of this trigger.
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
     "createTime": "A String", # Time when the trigger was created.
         # 
         # @OutputOnly
-    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-        # template.
-    "disabled": True or False, # If true, the trigger will never result in a build.
     "substitutions": { # Substitutions data for Build resource.
       "a_key": "A String",
     },
+    "disabled": True or False, # If true, the trigger will never result in a build.
     "build": { # A build resource in the Container Builder API. # Contents of the build template.
         #
         # At a high level, a Build describes where to find source code, how to build
@@ -136,13 +136,13 @@
           # @OutputOnly
       "status": "A String", # Status of the build.
           # @OutputOnly
-      "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-          # granularity. If this amount of time elapses, work on the build will cease
-          # and the build status will be TIMEOUT.
-          #
-          # Default time is ten minutes.
       "startTime": "A String", # Time at which execution of the build was started.
           # @OutputOnly
+      "statusDetail": "A String", # Customer-readable message about the current status.
+          # @OutputOnly
+      "tags": [ # Tags for annotation of a Build. These are not docker tags.
+        "A String",
+      ],
       "projectId": "A String", # ID of the project.
           # @OutputOnly.
       "id": "A String", # Unique identifier of the build.
@@ -160,16 +160,25 @@
           "A String",
         ],
       },
-      "statusDetail": "A String", # Customer-readable message about the current status.
-          # @OutputOnly
-      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-        "requestedVerifyOption": "A String", # Requested verifiability options.
-        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-          "A String",
-        ],
+      "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+          # granularity. If this amount of time elapses, work on the build will cease
+          # and the build status will be TIMEOUT.
+          #
+          # Default time is ten minutes.
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
       },
       "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
           # service.
+        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+            # Repository.
+          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+              # the build is assumed.
+          "branchName": "A String", # Name of the branch to build.
+          "commitSha": "A String", # Explicit commit SHA to build.
+          "tagName": "A String", # Name of the tag to build.
+          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+        },
         "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
             # Storage.
             # Google Cloud Storage.
@@ -183,19 +192,16 @@
               # [Bucket Name
               # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
         },
-        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-            # Repository.
-          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-              # the build is assumed.
-          "branchName": "A String", # Name of the branch to build.
-          "commitSha": "A String", # Explicit commit SHA to build.
-          "tagName": "A String", # Name of the tag to build.
-          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        },
       },
       "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
           # triggered automatically.
           # @OutputOnly
+      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+        "requestedVerifyOption": "A String", # Requested verifiability options.
+        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+          "A String",
+        ],
+      },
       "steps": [ # Describes the operations to be performed on the workspace.
         { # BuildStep describes a step to perform in the build pipeline.
           "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -305,9 +311,6 @@
           # If any of the images fail to be pushed, the build is marked FAILURE.
         "A String",
       ],
-      "substitutions": { # Substitutions data for Build resource.
-        "a_key": "A String",
-      },
       "createTime": "A String", # Time at which the request to create the build was received.
           # @OutputOnly
       "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -342,15 +345,15 @@
     { # Configuration for an automated build in response to source repository
         # changes.
       "description": "A String", # Human-readable description of this trigger.
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "createTime": "A String", # Time when the trigger was created.
           #
           # @OutputOnly
-      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-          # template.
-      "disabled": True or False, # If true, the trigger will never result in a build.
       "substitutions": { # Substitutions data for Build resource.
         "a_key": "A String",
       },
+      "disabled": True or False, # If true, the trigger will never result in a build.
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
           # At a high level, a Build describes where to find source code, how to build
@@ -374,13 +377,13 @@
             # @OutputOnly
         "status": "A String", # Status of the build.
             # @OutputOnly
-        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-            # granularity. If this amount of time elapses, work on the build will cease
-            # and the build status will be TIMEOUT.
-            #
-            # Default time is ten minutes.
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
+        "statusDetail": "A String", # Customer-readable message about the current status.
+            # @OutputOnly
+        "tags": [ # Tags for annotation of a Build. These are not docker tags.
+          "A String",
+        ],
         "projectId": "A String", # ID of the project.
             # @OutputOnly.
         "id": "A String", # Unique identifier of the build.
@@ -398,16 +401,25 @@
             "A String",
           ],
         },
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
+        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+            # granularity. If this amount of time elapses, work on the build will cease
+            # and the build status will be TIMEOUT.
+            #
+            # Default time is ten minutes.
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+          },
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
               # Storage.
               # Google Cloud Storage.
@@ -421,19 +433,16 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
-            "tagName": "A String", # Name of the tag to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
             "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -543,9 +552,6 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "substitutions": { # Substitutions data for Build resource.
-          "a_key": "A String",
-        },
         "createTime": "A String", # Time at which the request to create the build was received.
             # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -619,15 +625,15 @@
     { # Configuration for an automated build in response to source repository
         # changes.
       "description": "A String", # Human-readable description of this trigger.
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "createTime": "A String", # Time when the trigger was created.
           #
           # @OutputOnly
-      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-          # template.
-      "disabled": True or False, # If true, the trigger will never result in a build.
       "substitutions": { # Substitutions data for Build resource.
         "a_key": "A String",
       },
+      "disabled": True or False, # If true, the trigger will never result in a build.
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
           # At a high level, a Build describes where to find source code, how to build
@@ -651,13 +657,13 @@
             # @OutputOnly
         "status": "A String", # Status of the build.
             # @OutputOnly
-        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-            # granularity. If this amount of time elapses, work on the build will cease
-            # and the build status will be TIMEOUT.
-            #
-            # Default time is ten minutes.
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
+        "statusDetail": "A String", # Customer-readable message about the current status.
+            # @OutputOnly
+        "tags": [ # Tags for annotation of a Build. These are not docker tags.
+          "A String",
+        ],
         "projectId": "A String", # ID of the project.
             # @OutputOnly.
         "id": "A String", # Unique identifier of the build.
@@ -675,16 +681,25 @@
             "A String",
           ],
         },
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
+        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+            # granularity. If this amount of time elapses, work on the build will cease
+            # and the build status will be TIMEOUT.
+            #
+            # Default time is ten minutes.
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+          },
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
               # Storage.
               # Google Cloud Storage.
@@ -698,19 +713,16 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
-            "tagName": "A String", # Name of the tag to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
             "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -820,9 +832,6 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "substitutions": { # Substitutions data for Build resource.
-          "a_key": "A String",
-        },
         "createTime": "A String", # Time at which the request to create the build was received.
             # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -868,15 +877,15 @@
       { # Configuration for an automated build in response to source repository
             # changes.
           "description": "A String", # Human-readable description of this trigger.
+          "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+              # template.
           "createTime": "A String", # Time when the trigger was created.
               #
               # @OutputOnly
-          "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-              # template.
-          "disabled": True or False, # If true, the trigger will never result in a build.
           "substitutions": { # Substitutions data for Build resource.
             "a_key": "A String",
           },
+          "disabled": True or False, # If true, the trigger will never result in a build.
           "build": { # A build resource in the Container Builder API. # Contents of the build template.
               #
               # At a high level, a Build describes where to find source code, how to build
@@ -900,13 +909,13 @@
                 # @OutputOnly
             "status": "A String", # Status of the build.
                 # @OutputOnly
-            "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-                # granularity. If this amount of time elapses, work on the build will cease
-                # and the build status will be TIMEOUT.
-                #
-                # Default time is ten minutes.
             "startTime": "A String", # Time at which execution of the build was started.
                 # @OutputOnly
+            "statusDetail": "A String", # Customer-readable message about the current status.
+                # @OutputOnly
+            "tags": [ # Tags for annotation of a Build. These are not docker tags.
+              "A String",
+            ],
             "projectId": "A String", # ID of the project.
                 # @OutputOnly.
             "id": "A String", # Unique identifier of the build.
@@ -924,16 +933,25 @@
                 "A String",
               ],
             },
-            "statusDetail": "A String", # Customer-readable message about the current status.
-                # @OutputOnly
-            "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-              "requestedVerifyOption": "A String", # Requested verifiability options.
-              "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-                "A String",
-              ],
+            "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+                # granularity. If this amount of time elapses, work on the build will cease
+                # and the build status will be TIMEOUT.
+                #
+                # Default time is ten minutes.
+            "substitutions": { # Substitutions data for Build resource.
+              "a_key": "A String",
             },
             "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
                 # service.
+              "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+                  # Repository.
+                "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                    # the build is assumed.
+                "branchName": "A String", # Name of the branch to build.
+                "commitSha": "A String", # Explicit commit SHA to build.
+                "tagName": "A String", # Name of the tag to build.
+                "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+              },
               "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
                   # Storage.
                   # Google Cloud Storage.
@@ -947,19 +965,16 @@
                     # [Bucket Name
                     # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
               },
-              "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-                  # Repository.
-                "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                    # the build is assumed.
-                "branchName": "A String", # Name of the branch to build.
-                "commitSha": "A String", # Explicit commit SHA to build.
-                "tagName": "A String", # Name of the tag to build.
-                "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-              },
             },
             "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
                 # triggered automatically.
                 # @OutputOnly
+            "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+              "requestedVerifyOption": "A String", # Requested verifiability options.
+              "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+                "A String",
+              ],
+            },
             "steps": [ # Describes the operations to be performed on the workspace.
               { # BuildStep describes a step to perform in the build pipeline.
                 "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -1069,9 +1084,6 @@
                 # If any of the images fail to be pushed, the build is marked FAILURE.
               "A String",
             ],
-            "substitutions": { # Substitutions data for Build resource.
-              "a_key": "A String",
-            },
             "createTime": "A String", # Time at which the request to create the build was received.
                 # @OutputOnly
             "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -1113,15 +1125,15 @@
 { # Configuration for an automated build in response to source repository
       # changes.
     "description": "A String", # Human-readable description of this trigger.
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
     "createTime": "A String", # Time when the trigger was created.
         # 
         # @OutputOnly
-    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-        # template.
-    "disabled": True or False, # If true, the trigger will never result in a build.
     "substitutions": { # Substitutions data for Build resource.
       "a_key": "A String",
     },
+    "disabled": True or False, # If true, the trigger will never result in a build.
     "build": { # A build resource in the Container Builder API. # Contents of the build template.
         #
         # At a high level, a Build describes where to find source code, how to build
@@ -1145,13 +1157,13 @@
           # @OutputOnly
       "status": "A String", # Status of the build.
           # @OutputOnly
-      "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-          # granularity. If this amount of time elapses, work on the build will cease
-          # and the build status will be TIMEOUT.
-          #
-          # Default time is ten minutes.
       "startTime": "A String", # Time at which execution of the build was started.
           # @OutputOnly
+      "statusDetail": "A String", # Customer-readable message about the current status.
+          # @OutputOnly
+      "tags": [ # Tags for annotation of a Build. These are not docker tags.
+        "A String",
+      ],
       "projectId": "A String", # ID of the project.
           # @OutputOnly.
       "id": "A String", # Unique identifier of the build.
@@ -1169,16 +1181,25 @@
           "A String",
         ],
       },
-      "statusDetail": "A String", # Customer-readable message about the current status.
-          # @OutputOnly
-      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-        "requestedVerifyOption": "A String", # Requested verifiability options.
-        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-          "A String",
-        ],
+      "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+          # granularity. If this amount of time elapses, work on the build will cease
+          # and the build status will be TIMEOUT.
+          #
+          # Default time is ten minutes.
+      "substitutions": { # Substitutions data for Build resource.
+        "a_key": "A String",
       },
       "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
           # service.
+        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+            # Repository.
+          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+              # the build is assumed.
+          "branchName": "A String", # Name of the branch to build.
+          "commitSha": "A String", # Explicit commit SHA to build.
+          "tagName": "A String", # Name of the tag to build.
+          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+        },
         "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
             # Storage.
             # Google Cloud Storage.
@@ -1192,19 +1213,16 @@
               # [Bucket Name
               # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
         },
-        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-            # Repository.
-          "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-              # the build is assumed.
-          "branchName": "A String", # Name of the branch to build.
-          "commitSha": "A String", # Explicit commit SHA to build.
-          "tagName": "A String", # Name of the tag to build.
-          "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        },
       },
       "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
           # triggered automatically.
           # @OutputOnly
+      "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+        "requestedVerifyOption": "A String", # Requested verifiability options.
+        "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+          "A String",
+        ],
+      },
       "steps": [ # Describes the operations to be performed on the workspace.
         { # BuildStep describes a step to perform in the build pipeline.
           "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -1314,9 +1332,6 @@
           # If any of the images fail to be pushed, the build is marked FAILURE.
         "A String",
       ],
-      "substitutions": { # Substitutions data for Build resource.
-        "a_key": "A String",
-      },
       "createTime": "A String", # Time at which the request to create the build was received.
           # @OutputOnly
       "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
@@ -1351,15 +1366,15 @@
     { # Configuration for an automated build in response to source repository
         # changes.
       "description": "A String", # Human-readable description of this trigger.
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "createTime": "A String", # Time when the trigger was created.
           #
           # @OutputOnly
-      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
-          # template.
-      "disabled": True or False, # If true, the trigger will never result in a build.
       "substitutions": { # Substitutions data for Build resource.
         "a_key": "A String",
       },
+      "disabled": True or False, # If true, the trigger will never result in a build.
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
           # At a high level, a Build describes where to find source code, how to build
@@ -1383,13 +1398,13 @@
             # @OutputOnly
         "status": "A String", # Status of the build.
             # @OutputOnly
-        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
-            # granularity. If this amount of time elapses, work on the build will cease
-            # and the build status will be TIMEOUT.
-            #
-            # Default time is ten minutes.
         "startTime": "A String", # Time at which execution of the build was started.
             # @OutputOnly
+        "statusDetail": "A String", # Customer-readable message about the current status.
+            # @OutputOnly
+        "tags": [ # Tags for annotation of a Build. These are not docker tags.
+          "A String",
+        ],
         "projectId": "A String", # ID of the project.
             # @OutputOnly.
         "id": "A String", # Unique identifier of the build.
@@ -1407,16 +1422,25 @@
             "A String",
           ],
         },
-        "statusDetail": "A String", # Customer-readable message about the current status.
-            # @OutputOnly
-        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
-          "requestedVerifyOption": "A String", # Requested verifiability options.
-          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
-            "A String",
-          ],
+        "timeout": "A String", # Amount of time that this build should be allowed to run, to second
+            # granularity. If this amount of time elapses, work on the build will cease
+            # and the build status will be TIMEOUT.
+            #
+            # Default time is ten minutes.
+        "substitutions": { # Substitutions data for Build resource.
+          "a_key": "A String",
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+            "tagName": "A String", # Name of the tag to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+          },
           "storageSource": { # StorageSource describes the location of the source in an archive file in # If provided, get the source from this location in in Google Cloud
               # Storage.
               # Google Cloud Storage.
@@ -1430,19 +1454,16 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
-            "tagName": "A String", # Name of the tag to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
             # @OutputOnly
+        "options": { # Optional arguments to enable specific features of builds. # Special options for this build.
+          "requestedVerifyOption": "A String", # Requested verifiability options.
+          "sourceProvenanceHash": [ # Requested hash for SourceProvenance.
+            "A String",
+          ],
+        },
         "steps": [ # Describes the operations to be performed on the workspace.
           { # BuildStep describes a step to perform in the build pipeline.
             "waitFor": [ # The ID(s) of the step(s) that this build step depends on.
@@ -1552,9 +1573,6 @@
             # If any of the images fail to be pushed, the build is marked FAILURE.
           "A String",
         ],
-        "substitutions": { # Substitutions data for Build resource.
-          "a_key": "A String",
-        },
         "createTime": "A String", # Time at which the request to create the build was received.
             # @OutputOnly
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
diff --git a/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
index f447e28..641c2cc 100644
--- a/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
@@ -335,195 +335,15 @@
                 # rather than a static type of an object.
           },
         ],
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-            # resolution.
+        "userEmail": "A String", # E-mail address of the user that created this breakpoint
         "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
         "labels": { # A set of custom breakpoint properties, populated by the agent, to be
             # displayed to the user.
           "a_key": "A String",
         },
-        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
-            # the breakpoint hits. The message may include parameter placeholders `$0`,
-            # `$1`, etc. These placeholders are replaced with the evaluated value
-            # of the appropriate expression. Expressions not referenced in
-            # `log_message_format` are not logged.
-            #
-            # Example: `Message received, id = $0, count = $1` with
-            # `expressions` = `[ message.id, message.count ]`.
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
-        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
         "stackFrames": [ # The stack at breakpoint time.
           { # Represents a stack frame context.
             "function": "A String", # Demangled function name at the call site.
-            "location": { # Represents a location in the source code. # Source location of the call site.
-              "path": "A String", # Path to the source file within the source context of the target binary.
-              "line": 42, # Line inside the file. The first line in the file has the value `1`.
-            },
-            "locals": [ # Set of local variables at the stack frame location.
-                # Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type.
-                  # Note how the following variables are represented:
-                  #
-                  # 1) A simple variable:
-                  #
-                  #     int x = 5
-                  #
-                  #     { name: "x", value: "5", type: "int" }  // Captured variable
-                  #
-                  # 2) A compound object:
-                  #
-                  #     struct T {
-                  #         int m1;
-                  #         int m2;
-                  #     };
-                  #     T x = { 3, 7 };
-                  #
-                  #     {  // Captured variable
-                  #         name: "x",
-                  #         type: "T",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 3) A pointer where the pointee was captured:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &x;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00500500",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 4) A pointer where the pointee was not captured:
-                  #
-                  #     T* p = new T;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00400400"
-                  #         status { is_error: true, description { format: "unavailable" } }
-                  #     }
-                  #
-                  # The status should describe the reason for the missing value,
-                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
-                  #
-                  # Note that a null pointer should not have members.
-                  #
-                  # 5) An unnamed value:
-                  #
-                  #     int* p = new int(7);
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         value: "0x00500500",
-                  #         type: "int*",
-                  #         members { value: "7", type: "int" } }
-                  #
-                  # 6) An unnamed pointer where the pointee was not captured:
-                  #
-                  #     int* p = new int(7);
-                  #     int** pp = &p;
-                  #
-                  #     {  // Captured variable
-                  #         name: "pp",
-                  #         value: "0x00500500",
-                  #         type: "int**",
-                  #         members {
-                  #             value: "0x00400400",
-                  #             type: "int*"
-                  #             status {
-                  #                 is_error: true,
-                  #                 description: { format: "unavailable" } }
-                  #             }
-                  #         }
-                  #     }
-                  #
-                  # To optimize computation, memory and network traffic, variables that
-                  # repeat in the output multiple times can be stored once in a shared
-                  # variable table and be referenced using the `var_table_index` field.  The
-                  # variables stored in the shared table are nameless and are essentially
-                  # a partition of the complete variable. To reconstruct the complete
-                  # variable, merge the referencing variable with the referenced variable.
-                  #
-                  # When using the shared variable table, the following variables:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &x;
-                  #     T& r = x;
-                  #
-                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                  #     { name: "r", type="T&", var_table_index: 3 }
-                  #
-                  #     {  // Shared variable table entry #3:
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # Note that the pointer address is stored with the referencing variable
-                  # and not with the referenced variable. This allows the referenced variable
-                  # to be shared between pointers and references.
-                  #
-                  # The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                    # unset. A status of a single variable only applies to that variable or
-                    # expression. The rest of breakpoint data still remains valid. Variables
-                    # might be reported in error state even when breakpoint is not in final
-                    # state.
-                    #
-                    # The message may refer to variable name with `refers_to` set to
-                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                    # In either case variable value and members will be unset.
-                    #
-                    # Example of error message applied to name: `Invalid expression syntax`.
-                    #
-                    # Example of information message applied to value: `Not captured`.
-                    #
-                    # Examples of error message applied to value:
-                    #
-                    # *   `Malformed string`,
-                    # *   `Field f not found in class C`
-                    # *   `Null pointer dereference`
-                    # The message can indicate an error or informational status, and refer to
-                    # specific parts of the containing object.
-                    # For example, the `Breakpoint.status` field can indicate an error referring
-                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                  "isError": True or False, # Distinguishes errors from informational messages.
-                  "refersTo": "A String", # Reference to which the message applies.
-                  "description": { # Represents a message with parameters. # Status message text.
-                    "parameters": [ # Optional parameters to be embedded into the message.
-                      "A String",
-                    ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                        # character.
-                        #
-                        # Examples:
-                        #
-                        # *   `Failed to load '$0' which helps debug $1 the first time it
-                        #     is loaded.  Again, $0 is very important.`
-                        # *   `Please pay $$10 to use $0 instead of $1.`
-                  },
-                },
-                "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                    # one variable can reference the same variable in the table. The
-                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
-                "value": "A String", # Simple value of the variable.
-                "members": [ # Members contained or pointed to by the variable.
-                  # Object with schema name: Variable
-                ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                    # `var_table_index`, `type` goes next to `value`. The interpretation of
-                    # a type is agent specific. It is recommended to include the dynamic type
-                    # rather than a static type of an object.
-              },
-            ],
             "arguments": [ # Set of arguments passed to this function.
                 # Note that this might not be populated for all stack frames.
               { # Represents a variable or an argument possibly of a compound object type.
@@ -689,20 +509,200 @@
                     # rather than a static type of an object.
               },
             ],
+            "locals": [ # Set of local variables at the stack frame location.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: "x", value: "5", type: "int" }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: "x",
+                  #         type: "T",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00500500",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00400400"
+                  #         status { is_error: true, description { format: "unavailable" } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         value: "0x00500500",
+                  #         type: "int*",
+                  #         members { value: "7", type: "int" } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &p;
+                  #
+                  #     {  // Captured variable
+                  #         name: "pp",
+                  #         value: "0x00500500",
+                  #         type: "int**",
+                  #         members {
+                  #             value: "0x00400400",
+                  #             type: "int*"
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: "unavailable" } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #     T& r = x;
+                  #
+                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                  #     { name: "r", type="T&", var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                  "isError": True or False, # Distinguishes errors from informational messages.
+                  "refersTo": "A String", # Reference to which the message applies.
+                  "description": { # Represents a message with parameters. # Status message text.
+                    "parameters": [ # Optional parameters to be embedded into the message.
+                      "A String",
+                    ],
+                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load '$0' which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
+                  },
+                },
+                "name": "A String", # Name of the variable, if any.
+                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
+                "value": "A String", # Simple value of the variable.
+                "members": [ # Members contained or pointed to by the variable.
+                  # Object with schema name: Variable
+                ],
+                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
+              },
+            ],
+            "location": { # Represents a location in the source code. # Source location of the call site.
+              "path": "A String", # Path to the source file within the source context of the target binary.
+              "line": 42, # Line inside the file. The first line in the file has the value `1`.
+            },
           },
         ],
-        "location": { # Represents a location in the source code. # Breakpoint source location.
-          "path": "A String", # Path to the source file within the source context of the target binary.
-          "line": 42, # Line inside the file. The first line in the file has the value `1`.
-        },
-        "action": "A String", # Action that the agent should perform when the code at the
-            # breakpoint location is hit.
+        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
         "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
             # The expressions are composed using expressions in the programming language
             # at the source location. If the breakpoint action is `LOG`, the evaluated
             # expressions are included in log statements.
           "A String",
         ],
+        "location": { # Represents a location in the source code. # Breakpoint source location.
+          "path": "A String", # Path to the source file within the source context of the target binary.
+          "line": 42, # Line inside the file. The first line in the file has the value `1`.
+        },
+        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+            # resolution.
+        "action": "A String", # Action that the agent should perform when the code at the
+            # breakpoint location is hit.
+        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+            # the breakpoint hits. The message may include parameter placeholders `$0`,
+            # `$1`, etc. These placeholders are replaced with the evaluated value
+            # of the appropriate expression. Expressions not referenced in
+            # `log_message_format` are not logged.
+            #
+            # Example: `Message received, id = $0, count = $1` with
+            # `expressions` = `[ message.id, message.count ]`.
         "isFinalState": True or False, # When true, indicates that this is a final result and the
             # breakpoint state will not change from here on.
         "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
@@ -1116,195 +1116,15 @@
               # rather than a static type of an object.
         },
       ],
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
+      "userEmail": "A String", # E-mail address of the user that created this breakpoint
       "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
       "labels": { # A set of custom breakpoint properties, populated by the agent, to be
           # displayed to the user.
         "a_key": "A String",
       },
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
-          # the breakpoint hits. The message may include parameter placeholders `$0`,
-          # `$1`, etc. These placeholders are replaced with the evaluated value
-          # of the appropriate expression. Expressions not referenced in
-          # `log_message_format` are not logged.
-          #
-          # Example: `Message received, id = $0, count = $1` with
-          # `expressions` = `[ message.id, message.count ]`.
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "stackFrames": [ # The stack at breakpoint time.
         { # Represents a stack frame context.
           "function": "A String", # Demangled function name at the call site.
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "path": "A String", # Path to the source file within the source context of the target binary.
-            "line": 42, # Line inside the file. The first line in the file has the value `1`.
-          },
-          "locals": [ # Set of local variables at the stack frame location.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &x;
-                #     T& r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
           "arguments": [ # Set of arguments passed to this function.
               # Note that this might not be populated for all stack frames.
             { # Represents a variable or an argument possibly of a compound object type.
@@ -1470,20 +1290,200 @@
                   # rather than a static type of an object.
             },
           ],
+          "locals": [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                "isError": True or False, # Distinguishes errors from informational messages.
+                "refersTo": "A String", # Reference to which the message applies.
+                "description": { # Represents a message with parameters. # Status message text.
+                  "parameters": [ # Optional parameters to be embedded into the message.
+                    "A String",
+                  ],
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+              },
+              "name": "A String", # Name of the variable, if any.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "value": "A String", # Simple value of the variable.
+              "members": [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+            },
+          ],
+          "location": { # Represents a location in the source code. # Source location of the call site.
+            "path": "A String", # Path to the source file within the source context of the target binary.
+            "line": 42, # Line inside the file. The first line in the file has the value `1`.
+          },
         },
       ],
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
+      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
           # The expressions are composed using expressions in the programming language
           # at the source location. If the breakpoint action is `LOG`, the evaluated
           # expressions are included in log statements.
         "A String",
       ],
+      "location": { # Represents a location in the source code. # Breakpoint source location.
+        "path": "A String", # Path to the source file within the source context of the target binary.
+        "line": 42, # Line inside the file. The first line in the file has the value `1`.
+      },
+      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
+      "action": "A String", # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+          # the breakpoint hits. The message may include parameter placeholders `$0`,
+          # `$1`, etc. These placeholders are replaced with the evaluated value
+          # of the appropriate expression. Expressions not referenced in
+          # `log_message_format` are not logged.
+          #
+          # Example: `Message received, id = $0, count = $1` with
+          # `expressions` = `[ message.id, message.count ]`.
       "isFinalState": True or False, # When true, indicates that this is a final result and the
           # breakpoint state will not change from here on.
       "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
diff --git a/docs/dyn/clouddebugger_v2.controller.debuggees.html b/docs/dyn/clouddebugger_v2.controller.debuggees.html
index 6b4e1e9..9f7b1d2 100644
--- a/docs/dyn/clouddebugger_v2.controller.debuggees.html
+++ b/docs/dyn/clouddebugger_v2.controller.debuggees.html
@@ -160,6 +160,8 @@
             "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                 # A cloud workspace is a place associated with a repo where modified files
                 # can be stored before they are committed.
+              "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                  # chosen by the client in the Source API's CreateWorkspace method.
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                 "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                     # (e.g. winged-cargo-31) and a repo name within that project.
@@ -168,8 +170,6 @@
                 },
                 "uid": "A String", # A server-assigned, globally unique identifier.
               },
-              "name": "A String", # The unique name of the workspace within the repo.  This is the name
-                  # chosen by the client in the Source API's CreateWorkspace method.
             },
           },
           "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -200,12 +200,12 @@
               "kind": "A String", # The alias kind.
               "name": "A String", # The alias name.
             },
+            "revisionId": "A String", # A revision (commit) ID.
             "hostUri": "A String", # The URI of a running Gerrit instance.
+            "aliasName": "A String", # The name of an alias (branch, tag, etc.).
             "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                 # "project/subproject" is a valid project name.
                 # The "repo name" is hostURI/project.
-            "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-            "revisionId": "A String", # A revision (commit) ID.
           },
         },
       ],
@@ -228,6 +228,8 @@
               "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                   # A cloud workspace is a place associated with a repo where modified files
                   # can be stored before they are committed.
+                "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                    # chosen by the client in the Source API's CreateWorkspace method.
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                   "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                       # (e.g. winged-cargo-31) and a repo name within that project.
@@ -236,8 +238,6 @@
                   },
                   "uid": "A String", # A server-assigned, globally unique identifier.
                 },
-                "name": "A String", # The unique name of the workspace within the repo.  This is the name
-                    # chosen by the client in the Source API's CreateWorkspace method.
               },
             },
             "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -268,12 +268,12 @@
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
               },
+              "revisionId": "A String", # A revision (commit) ID.
               "hostUri": "A String", # The URI of a running Gerrit instance.
+              "aliasName": "A String", # The name of an alias (branch, tag, etc.).
               "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                   # "project/subproject" is a valid project name.
                   # The "repo name" is hostURI/project.
-              "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-              "revisionId": "A String", # A revision (commit) ID.
             },
           },
         },
@@ -354,6 +354,8 @@
             "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                 # A cloud workspace is a place associated with a repo where modified files
                 # can be stored before they are committed.
+              "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                  # chosen by the client in the Source API's CreateWorkspace method.
               "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                 "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                     # (e.g. winged-cargo-31) and a repo name within that project.
@@ -362,8 +364,6 @@
                 },
                 "uid": "A String", # A server-assigned, globally unique identifier.
               },
-              "name": "A String", # The unique name of the workspace within the repo.  This is the name
-                  # chosen by the client in the Source API's CreateWorkspace method.
             },
           },
           "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -394,12 +394,12 @@
               "kind": "A String", # The alias kind.
               "name": "A String", # The alias name.
             },
+            "revisionId": "A String", # A revision (commit) ID.
             "hostUri": "A String", # The URI of a running Gerrit instance.
+            "aliasName": "A String", # The name of an alias (branch, tag, etc.).
             "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                 # "project/subproject" is a valid project name.
                 # The "repo name" is hostURI/project.
-            "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-            "revisionId": "A String", # A revision (commit) ID.
           },
         },
       ],
@@ -422,6 +422,8 @@
               "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                   # A cloud workspace is a place associated with a repo where modified files
                   # can be stored before they are committed.
+                "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                    # chosen by the client in the Source API's CreateWorkspace method.
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                   "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                       # (e.g. winged-cargo-31) and a repo name within that project.
@@ -430,8 +432,6 @@
                   },
                   "uid": "A String", # A server-assigned, globally unique identifier.
                 },
-                "name": "A String", # The unique name of the workspace within the repo.  This is the name
-                    # chosen by the client in the Source API's CreateWorkspace method.
               },
             },
             "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -462,12 +462,12 @@
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
               },
+              "revisionId": "A String", # A revision (commit) ID.
               "hostUri": "A String", # The URI of a running Gerrit instance.
+              "aliasName": "A String", # The name of an alias (branch, tag, etc.).
               "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                   # "project/subproject" is a valid project name.
                   # The "repo name" is hostURI/project.
-              "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-              "revisionId": "A String", # A revision (commit) ID.
             },
           },
         },
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
index d84c5dd..081f52d 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
@@ -347,195 +347,15 @@
               # rather than a static type of an object.
         },
       ],
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
+      "userEmail": "A String", # E-mail address of the user that created this breakpoint
       "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
       "labels": { # A set of custom breakpoint properties, populated by the agent, to be
           # displayed to the user.
         "a_key": "A String",
       },
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
-          # the breakpoint hits. The message may include parameter placeholders `$0`,
-          # `$1`, etc. These placeholders are replaced with the evaluated value
-          # of the appropriate expression. Expressions not referenced in
-          # `log_message_format` are not logged.
-          #
-          # Example: `Message received, id = $0, count = $1` with
-          # `expressions` = `[ message.id, message.count ]`.
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "stackFrames": [ # The stack at breakpoint time.
         { # Represents a stack frame context.
           "function": "A String", # Demangled function name at the call site.
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "path": "A String", # Path to the source file within the source context of the target binary.
-            "line": 42, # Line inside the file. The first line in the file has the value `1`.
-          },
-          "locals": [ # Set of local variables at the stack frame location.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &x;
-                #     T& r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
           "arguments": [ # Set of arguments passed to this function.
               # Note that this might not be populated for all stack frames.
             { # Represents a variable or an argument possibly of a compound object type.
@@ -701,20 +521,200 @@
                   # rather than a static type of an object.
             },
           ],
+          "locals": [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                "isError": True or False, # Distinguishes errors from informational messages.
+                "refersTo": "A String", # Reference to which the message applies.
+                "description": { # Represents a message with parameters. # Status message text.
+                  "parameters": [ # Optional parameters to be embedded into the message.
+                    "A String",
+                  ],
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+              },
+              "name": "A String", # Name of the variable, if any.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "value": "A String", # Simple value of the variable.
+              "members": [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+            },
+          ],
+          "location": { # Represents a location in the source code. # Source location of the call site.
+            "path": "A String", # Path to the source file within the source context of the target binary.
+            "line": 42, # Line inside the file. The first line in the file has the value `1`.
+          },
         },
       ],
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
+      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
           # The expressions are composed using expressions in the programming language
           # at the source location. If the breakpoint action is `LOG`, the evaluated
           # expressions are included in log statements.
         "A String",
       ],
+      "location": { # Represents a location in the source code. # Breakpoint source location.
+        "path": "A String", # Path to the source file within the source context of the target binary.
+        "line": 42, # Line inside the file. The first line in the file has the value `1`.
+      },
+      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
+      "action": "A String", # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+          # the breakpoint hits. The message may include parameter placeholders `$0`,
+          # `$1`, etc. These placeholders are replaced with the evaluated value
+          # of the appropriate expression. Expressions not referenced in
+          # `log_message_format` are not logged.
+          #
+          # Example: `Message received, id = $0, count = $1` with
+          # `expressions` = `[ message.id, message.count ]`.
       "isFinalState": True or False, # When true, indicates that this is a final result and the
           # breakpoint state will not change from here on.
       "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
@@ -1142,195 +1142,15 @@
                 # rather than a static type of an object.
           },
         ],
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-            # resolution.
+        "userEmail": "A String", # E-mail address of the user that created this breakpoint
         "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
         "labels": { # A set of custom breakpoint properties, populated by the agent, to be
             # displayed to the user.
           "a_key": "A String",
         },
-        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
-            # the breakpoint hits. The message may include parameter placeholders `$0`,
-            # `$1`, etc. These placeholders are replaced with the evaluated value
-            # of the appropriate expression. Expressions not referenced in
-            # `log_message_format` are not logged.
-            #
-            # Example: `Message received, id = $0, count = $1` with
-            # `expressions` = `[ message.id, message.count ]`.
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
-        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
         "stackFrames": [ # The stack at breakpoint time.
           { # Represents a stack frame context.
             "function": "A String", # Demangled function name at the call site.
-            "location": { # Represents a location in the source code. # Source location of the call site.
-              "path": "A String", # Path to the source file within the source context of the target binary.
-              "line": 42, # Line inside the file. The first line in the file has the value `1`.
-            },
-            "locals": [ # Set of local variables at the stack frame location.
-                # Note that this might not be populated for all stack frames.
-              { # Represents a variable or an argument possibly of a compound object type.
-                  # Note how the following variables are represented:
-                  #
-                  # 1) A simple variable:
-                  #
-                  #     int x = 5
-                  #
-                  #     { name: "x", value: "5", type: "int" }  // Captured variable
-                  #
-                  # 2) A compound object:
-                  #
-                  #     struct T {
-                  #         int m1;
-                  #         int m2;
-                  #     };
-                  #     T x = { 3, 7 };
-                  #
-                  #     {  // Captured variable
-                  #         name: "x",
-                  #         type: "T",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 3) A pointer where the pointee was captured:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &x;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00500500",
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # 4) A pointer where the pointee was not captured:
-                  #
-                  #     T* p = new T;
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         type: "T*",
-                  #         value: "0x00400400"
-                  #         status { is_error: true, description { format: "unavailable" } }
-                  #     }
-                  #
-                  # The status should describe the reason for the missing value,
-                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
-                  #
-                  # Note that a null pointer should not have members.
-                  #
-                  # 5) An unnamed value:
-                  #
-                  #     int* p = new int(7);
-                  #
-                  #     {   // Captured variable
-                  #         name: "p",
-                  #         value: "0x00500500",
-                  #         type: "int*",
-                  #         members { value: "7", type: "int" } }
-                  #
-                  # 6) An unnamed pointer where the pointee was not captured:
-                  #
-                  #     int* p = new int(7);
-                  #     int** pp = &p;
-                  #
-                  #     {  // Captured variable
-                  #         name: "pp",
-                  #         value: "0x00500500",
-                  #         type: "int**",
-                  #         members {
-                  #             value: "0x00400400",
-                  #             type: "int*"
-                  #             status {
-                  #                 is_error: true,
-                  #                 description: { format: "unavailable" } }
-                  #             }
-                  #         }
-                  #     }
-                  #
-                  # To optimize computation, memory and network traffic, variables that
-                  # repeat in the output multiple times can be stored once in a shared
-                  # variable table and be referenced using the `var_table_index` field.  The
-                  # variables stored in the shared table are nameless and are essentially
-                  # a partition of the complete variable. To reconstruct the complete
-                  # variable, merge the referencing variable with the referenced variable.
-                  #
-                  # When using the shared variable table, the following variables:
-                  #
-                  #     T x = { 3, 7 };
-                  #     T* p = &x;
-                  #     T& r = x;
-                  #
-                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                  #     { name: "r", type="T&", var_table_index: 3 }
-                  #
-                  #     {  // Shared variable table entry #3:
-                  #         members { name: "m1", value: "3", type: "int" },
-                  #         members { name: "m2", value: "7", type: "int" }
-                  #     }
-                  #
-                  # Note that the pointer address is stored with the referencing variable
-                  # and not with the referenced variable. This allows the referenced variable
-                  # to be shared between pointers and references.
-                  #
-                  # The type field is optional. The debugger agent may or may not support it.
-                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                    # unset. A status of a single variable only applies to that variable or
-                    # expression. The rest of breakpoint data still remains valid. Variables
-                    # might be reported in error state even when breakpoint is not in final
-                    # state.
-                    #
-                    # The message may refer to variable name with `refers_to` set to
-                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                    # In either case variable value and members will be unset.
-                    #
-                    # Example of error message applied to name: `Invalid expression syntax`.
-                    #
-                    # Example of information message applied to value: `Not captured`.
-                    #
-                    # Examples of error message applied to value:
-                    #
-                    # *   `Malformed string`,
-                    # *   `Field f not found in class C`
-                    # *   `Null pointer dereference`
-                    # The message can indicate an error or informational status, and refer to
-                    # specific parts of the containing object.
-                    # For example, the `Breakpoint.status` field can indicate an error referring
-                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                  "isError": True or False, # Distinguishes errors from informational messages.
-                  "refersTo": "A String", # Reference to which the message applies.
-                  "description": { # Represents a message with parameters. # Status message text.
-                    "parameters": [ # Optional parameters to be embedded into the message.
-                      "A String",
-                    ],
-                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                        # character.
-                        #
-                        # Examples:
-                        #
-                        # *   `Failed to load '$0' which helps debug $1 the first time it
-                        #     is loaded.  Again, $0 is very important.`
-                        # *   `Please pay $$10 to use $0 instead of $1.`
-                  },
-                },
-                "name": "A String", # Name of the variable, if any.
-                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                    # one variable can reference the same variable in the table. The
-                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
-                "value": "A String", # Simple value of the variable.
-                "members": [ # Members contained or pointed to by the variable.
-                  # Object with schema name: Variable
-                ],
-                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                    # `var_table_index`, `type` goes next to `value`. The interpretation of
-                    # a type is agent specific. It is recommended to include the dynamic type
-                    # rather than a static type of an object.
-              },
-            ],
             "arguments": [ # Set of arguments passed to this function.
                 # Note that this might not be populated for all stack frames.
               { # Represents a variable or an argument possibly of a compound object type.
@@ -1496,20 +1316,200 @@
                     # rather than a static type of an object.
               },
             ],
+            "locals": [ # Set of local variables at the stack frame location.
+                # Note that this might not be populated for all stack frames.
+              { # Represents a variable or an argument possibly of a compound object type.
+                  # Note how the following variables are represented:
+                  #
+                  # 1) A simple variable:
+                  #
+                  #     int x = 5
+                  #
+                  #     { name: "x", value: "5", type: "int" }  // Captured variable
+                  #
+                  # 2) A compound object:
+                  #
+                  #     struct T {
+                  #         int m1;
+                  #         int m2;
+                  #     };
+                  #     T x = { 3, 7 };
+                  #
+                  #     {  // Captured variable
+                  #         name: "x",
+                  #         type: "T",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 3) A pointer where the pointee was captured:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00500500",
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # 4) A pointer where the pointee was not captured:
+                  #
+                  #     T* p = new T;
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         type: "T*",
+                  #         value: "0x00400400"
+                  #         status { is_error: true, description { format: "unavailable" } }
+                  #     }
+                  #
+                  # The status should describe the reason for the missing value,
+                  # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                  #
+                  # Note that a null pointer should not have members.
+                  #
+                  # 5) An unnamed value:
+                  #
+                  #     int* p = new int(7);
+                  #
+                  #     {   // Captured variable
+                  #         name: "p",
+                  #         value: "0x00500500",
+                  #         type: "int*",
+                  #         members { value: "7", type: "int" } }
+                  #
+                  # 6) An unnamed pointer where the pointee was not captured:
+                  #
+                  #     int* p = new int(7);
+                  #     int** pp = &p;
+                  #
+                  #     {  // Captured variable
+                  #         name: "pp",
+                  #         value: "0x00500500",
+                  #         type: "int**",
+                  #         members {
+                  #             value: "0x00400400",
+                  #             type: "int*"
+                  #             status {
+                  #                 is_error: true,
+                  #                 description: { format: "unavailable" } }
+                  #             }
+                  #         }
+                  #     }
+                  #
+                  # To optimize computation, memory and network traffic, variables that
+                  # repeat in the output multiple times can be stored once in a shared
+                  # variable table and be referenced using the `var_table_index` field.  The
+                  # variables stored in the shared table are nameless and are essentially
+                  # a partition of the complete variable. To reconstruct the complete
+                  # variable, merge the referencing variable with the referenced variable.
+                  #
+                  # When using the shared variable table, the following variables:
+                  #
+                  #     T x = { 3, 7 };
+                  #     T* p = &x;
+                  #     T& r = x;
+                  #
+                  #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                  #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                  #     { name: "r", type="T&", var_table_index: 3 }
+                  #
+                  #     {  // Shared variable table entry #3:
+                  #         members { name: "m1", value: "3", type: "int" },
+                  #         members { name: "m2", value: "7", type: "int" }
+                  #     }
+                  #
+                  # Note that the pointer address is stored with the referencing variable
+                  # and not with the referenced variable. This allows the referenced variable
+                  # to be shared between pointers and references.
+                  #
+                  # The type field is optional. The debugger agent may or may not support it.
+                "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                    # unset. A status of a single variable only applies to that variable or
+                    # expression. The rest of breakpoint data still remains valid. Variables
+                    # might be reported in error state even when breakpoint is not in final
+                    # state.
+                    #
+                    # The message may refer to variable name with `refers_to` set to
+                    # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                    # In either case variable value and members will be unset.
+                    #
+                    # Example of error message applied to name: `Invalid expression syntax`.
+                    #
+                    # Example of information message applied to value: `Not captured`.
+                    #
+                    # Examples of error message applied to value:
+                    #
+                    # *   `Malformed string`,
+                    # *   `Field f not found in class C`
+                    # *   `Null pointer dereference`
+                    # The message can indicate an error or informational status, and refer to
+                    # specific parts of the containing object.
+                    # For example, the `Breakpoint.status` field can indicate an error referring
+                    # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                  "isError": True or False, # Distinguishes errors from informational messages.
+                  "refersTo": "A String", # Reference to which the message applies.
+                  "description": { # Represents a message with parameters. # Status message text.
+                    "parameters": [ # Optional parameters to be embedded into the message.
+                      "A String",
+                    ],
+                    "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                        # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                        # character.
+                        #
+                        # Examples:
+                        #
+                        # *   `Failed to load '$0' which helps debug $1 the first time it
+                        #     is loaded.  Again, $0 is very important.`
+                        # *   `Please pay $$10 to use $0 instead of $1.`
+                  },
+                },
+                "name": "A String", # Name of the variable, if any.
+                "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                    # one variable can reference the same variable in the table. The
+                    # `var_table_index` field is an index into `variable_table` in Breakpoint.
+                "value": "A String", # Simple value of the variable.
+                "members": [ # Members contained or pointed to by the variable.
+                  # Object with schema name: Variable
+                ],
+                "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                    # `var_table_index`, `type` goes next to `value`. The interpretation of
+                    # a type is agent specific. It is recommended to include the dynamic type
+                    # rather than a static type of an object.
+              },
+            ],
+            "location": { # Represents a location in the source code. # Source location of the call site.
+              "path": "A String", # Path to the source file within the source context of the target binary.
+              "line": 42, # Line inside the file. The first line in the file has the value `1`.
+            },
           },
         ],
-        "location": { # Represents a location in the source code. # Breakpoint source location.
-          "path": "A String", # Path to the source file within the source context of the target binary.
-          "line": 42, # Line inside the file. The first line in the file has the value `1`.
-        },
-        "action": "A String", # Action that the agent should perform when the code at the
-            # breakpoint location is hit.
+        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
         "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
             # The expressions are composed using expressions in the programming language
             # at the source location. If the breakpoint action is `LOG`, the evaluated
             # expressions are included in log statements.
           "A String",
         ],
+        "location": { # Represents a location in the source code. # Breakpoint source location.
+          "path": "A String", # Path to the source file within the source context of the target binary.
+          "line": 42, # Line inside the file. The first line in the file has the value `1`.
+        },
+        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+            # resolution.
+        "action": "A String", # Action that the agent should perform when the code at the
+            # breakpoint location is hit.
+        "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+            # the breakpoint hits. The message may include parameter placeholders `$0`,
+            # `$1`, etc. These placeholders are replaced with the evaluated value
+            # of the appropriate expression. Expressions not referenced in
+            # `log_message_format` are not logged.
+            #
+            # Example: `Message received, id = $0, count = $1` with
+            # `expressions` = `[ message.id, message.count ]`.
         "isFinalState": True or False, # When true, indicates that this is a final result and the
             # breakpoint state will not change from here on.
         "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
@@ -1912,195 +1912,15 @@
           # rather than a static type of an object.
     },
   ],
-  "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-      # resolution.
+  "userEmail": "A String", # E-mail address of the user that created this breakpoint
   "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
   "labels": { # A set of custom breakpoint properties, populated by the agent, to be
       # displayed to the user.
     "a_key": "A String",
   },
-  "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
-      # the breakpoint hits. The message may include parameter placeholders `$0`,
-      # `$1`, etc. These placeholders are replaced with the evaluated value
-      # of the appropriate expression. Expressions not referenced in
-      # `log_message_format` are not logged.
-      # 
-      # Example: `Message received, id = $0, count = $1` with
-      # `expressions` = `[ message.id, message.count ]`.
-  "userEmail": "A String", # E-mail address of the user that created this breakpoint
-  "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
   "stackFrames": [ # The stack at breakpoint time.
     { # Represents a stack frame context.
       "function": "A String", # Demangled function name at the call site.
-      "location": { # Represents a location in the source code. # Source location of the call site.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-      "locals": [ # Set of local variables at the stack frame location.
-          # Note that this might not be populated for all stack frames.
-        { # Represents a variable or an argument possibly of a compound object type.
-            # Note how the following variables are represented:
-            #
-            # 1) A simple variable:
-            #
-            #     int x = 5
-            #
-            #     { name: "x", value: "5", type: "int" }  // Captured variable
-            #
-            # 2) A compound object:
-            #
-            #     struct T {
-            #         int m1;
-            #         int m2;
-            #     };
-            #     T x = { 3, 7 };
-            #
-            #     {  // Captured variable
-            #         name: "x",
-            #         type: "T",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # 3) A pointer where the pointee was captured:
-            #
-            #     T x = { 3, 7 };
-            #     T* p = &x;
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00500500",
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # 4) A pointer where the pointee was not captured:
-            #
-            #     T* p = new T;
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         type: "T*",
-            #         value: "0x00400400"
-            #         status { is_error: true, description { format: "unavailable" } }
-            #     }
-            #
-            # The status should describe the reason for the missing value,
-            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
-            #
-            # Note that a null pointer should not have members.
-            #
-            # 5) An unnamed value:
-            #
-            #     int* p = new int(7);
-            #
-            #     {   // Captured variable
-            #         name: "p",
-            #         value: "0x00500500",
-            #         type: "int*",
-            #         members { value: "7", type: "int" } }
-            #
-            # 6) An unnamed pointer where the pointee was not captured:
-            #
-            #     int* p = new int(7);
-            #     int** pp = &p;
-            #
-            #     {  // Captured variable
-            #         name: "pp",
-            #         value: "0x00500500",
-            #         type: "int**",
-            #         members {
-            #             value: "0x00400400",
-            #             type: "int*"
-            #             status {
-            #                 is_error: true,
-            #                 description: { format: "unavailable" } }
-            #             }
-            #         }
-            #     }
-            #
-            # To optimize computation, memory and network traffic, variables that
-            # repeat in the output multiple times can be stored once in a shared
-            # variable table and be referenced using the `var_table_index` field.  The
-            # variables stored in the shared table are nameless and are essentially
-            # a partition of the complete variable. To reconstruct the complete
-            # variable, merge the referencing variable with the referenced variable.
-            #
-            # When using the shared variable table, the following variables:
-            #
-            #     T x = { 3, 7 };
-            #     T* p = &x;
-            #     T& r = x;
-            #
-            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-            #     { name: "r", type="T&", var_table_index: 3 }
-            #
-            #     {  // Shared variable table entry #3:
-            #         members { name: "m1", value: "3", type: "int" },
-            #         members { name: "m2", value: "7", type: "int" }
-            #     }
-            #
-            # Note that the pointer address is stored with the referencing variable
-            # and not with the referenced variable. This allows the referenced variable
-            # to be shared between pointers and references.
-            #
-            # The type field is optional. The debugger agent may or may not support it.
-          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-              # unset. A status of a single variable only applies to that variable or
-              # expression. The rest of breakpoint data still remains valid. Variables
-              # might be reported in error state even when breakpoint is not in final
-              # state.
-              #
-              # The message may refer to variable name with `refers_to` set to
-              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-              # In either case variable value and members will be unset.
-              #
-              # Example of error message applied to name: `Invalid expression syntax`.
-              #
-              # Example of information message applied to value: `Not captured`.
-              #
-              # Examples of error message applied to value:
-              #
-              # *   `Malformed string`,
-              # *   `Field f not found in class C`
-              # *   `Null pointer dereference`
-              # The message can indicate an error or informational status, and refer to
-              # specific parts of the containing object.
-              # For example, the `Breakpoint.status` field can indicate an error referring
-              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-            "isError": True or False, # Distinguishes errors from informational messages.
-            "refersTo": "A String", # Reference to which the message applies.
-            "description": { # Represents a message with parameters. # Status message text.
-              "parameters": [ # Optional parameters to be embedded into the message.
-                "A String",
-              ],
-              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                  # character.
-                  #
-                  # Examples:
-                  #
-                  # *   `Failed to load '$0' which helps debug $1 the first time it
-                  #     is loaded.  Again, $0 is very important.`
-                  # *   `Please pay $$10 to use $0 instead of $1.`
-            },
-          },
-          "name": "A String", # Name of the variable, if any.
-          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-              # one variable can reference the same variable in the table. The
-              # `var_table_index` field is an index into `variable_table` in Breakpoint.
-          "value": "A String", # Simple value of the variable.
-          "members": [ # Members contained or pointed to by the variable.
-            # Object with schema name: Variable
-          ],
-          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-              # `var_table_index`, `type` goes next to `value`. The interpretation of
-              # a type is agent specific. It is recommended to include the dynamic type
-              # rather than a static type of an object.
-        },
-      ],
       "arguments": [ # Set of arguments passed to this function.
           # Note that this might not be populated for all stack frames.
         { # Represents a variable or an argument possibly of a compound object type.
@@ -2266,20 +2086,200 @@
               # rather than a static type of an object.
         },
       ],
+      "locals": [ # Set of local variables at the stack frame location.
+          # Note that this might not be populated for all stack frames.
+        { # Represents a variable or an argument possibly of a compound object type.
+            # Note how the following variables are represented:
+            #
+            # 1) A simple variable:
+            #
+            #     int x = 5
+            #
+            #     { name: "x", value: "5", type: "int" }  // Captured variable
+            #
+            # 2) A compound object:
+            #
+            #     struct T {
+            #         int m1;
+            #         int m2;
+            #     };
+            #     T x = { 3, 7 };
+            #
+            #     {  // Captured variable
+            #         name: "x",
+            #         type: "T",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 3) A pointer where the pointee was captured:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00500500",
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # 4) A pointer where the pointee was not captured:
+            #
+            #     T* p = new T;
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         type: "T*",
+            #         value: "0x00400400"
+            #         status { is_error: true, description { format: "unavailable" } }
+            #     }
+            #
+            # The status should describe the reason for the missing value,
+            # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+            #
+            # Note that a null pointer should not have members.
+            #
+            # 5) An unnamed value:
+            #
+            #     int* p = new int(7);
+            #
+            #     {   // Captured variable
+            #         name: "p",
+            #         value: "0x00500500",
+            #         type: "int*",
+            #         members { value: "7", type: "int" } }
+            #
+            # 6) An unnamed pointer where the pointee was not captured:
+            #
+            #     int* p = new int(7);
+            #     int** pp = &p;
+            #
+            #     {  // Captured variable
+            #         name: "pp",
+            #         value: "0x00500500",
+            #         type: "int**",
+            #         members {
+            #             value: "0x00400400",
+            #             type: "int*"
+            #             status {
+            #                 is_error: true,
+            #                 description: { format: "unavailable" } }
+            #             }
+            #         }
+            #     }
+            #
+            # To optimize computation, memory and network traffic, variables that
+            # repeat in the output multiple times can be stored once in a shared
+            # variable table and be referenced using the `var_table_index` field.  The
+            # variables stored in the shared table are nameless and are essentially
+            # a partition of the complete variable. To reconstruct the complete
+            # variable, merge the referencing variable with the referenced variable.
+            #
+            # When using the shared variable table, the following variables:
+            #
+            #     T x = { 3, 7 };
+            #     T* p = &x;
+            #     T& r = x;
+            #
+            #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+            #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+            #     { name: "r", type="T&", var_table_index: 3 }
+            #
+            #     {  // Shared variable table entry #3:
+            #         members { name: "m1", value: "3", type: "int" },
+            #         members { name: "m2", value: "7", type: "int" }
+            #     }
+            #
+            # Note that the pointer address is stored with the referencing variable
+            # and not with the referenced variable. This allows the referenced variable
+            # to be shared between pointers and references.
+            #
+            # The type field is optional. The debugger agent may or may not support it.
+          "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+              # unset. A status of a single variable only applies to that variable or
+              # expression. The rest of breakpoint data still remains valid. Variables
+              # might be reported in error state even when breakpoint is not in final
+              # state.
+              #
+              # The message may refer to variable name with `refers_to` set to
+              # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+              # In either case variable value and members will be unset.
+              #
+              # Example of error message applied to name: `Invalid expression syntax`.
+              #
+              # Example of information message applied to value: `Not captured`.
+              #
+              # Examples of error message applied to value:
+              #
+              # *   `Malformed string`,
+              # *   `Field f not found in class C`
+              # *   `Null pointer dereference`
+              # The message can indicate an error or informational status, and refer to
+              # specific parts of the containing object.
+              # For example, the `Breakpoint.status` field can indicate an error referring
+              # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+            "isError": True or False, # Distinguishes errors from informational messages.
+            "refersTo": "A String", # Reference to which the message applies.
+            "description": { # Represents a message with parameters. # Status message text.
+              "parameters": [ # Optional parameters to be embedded into the message.
+                "A String",
+              ],
+              "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                  # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                  # character.
+                  #
+                  # Examples:
+                  #
+                  # *   `Failed to load '$0' which helps debug $1 the first time it
+                  #     is loaded.  Again, $0 is very important.`
+                  # *   `Please pay $$10 to use $0 instead of $1.`
+            },
+          },
+          "name": "A String", # Name of the variable, if any.
+          "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+              # one variable can reference the same variable in the table. The
+              # `var_table_index` field is an index into `variable_table` in Breakpoint.
+          "value": "A String", # Simple value of the variable.
+          "members": [ # Members contained or pointed to by the variable.
+            # Object with schema name: Variable
+          ],
+          "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+              # `var_table_index`, `type` goes next to `value`. The interpretation of
+              # a type is agent specific. It is recommended to include the dynamic type
+              # rather than a static type of an object.
+        },
+      ],
+      "location": { # Represents a location in the source code. # Source location of the call site.
+        "path": "A String", # Path to the source file within the source context of the target binary.
+        "line": 42, # Line inside the file. The first line in the file has the value `1`.
+      },
     },
   ],
-  "location": { # Represents a location in the source code. # Breakpoint source location.
-    "path": "A String", # Path to the source file within the source context of the target binary.
-    "line": 42, # Line inside the file. The first line in the file has the value `1`.
-  },
-  "action": "A String", # Action that the agent should perform when the code at the
-      # breakpoint location is hit.
+  "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
   "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
       # The expressions are composed using expressions in the programming language
       # at the source location. If the breakpoint action is `LOG`, the evaluated
       # expressions are included in log statements.
     "A String",
   ],
+  "location": { # Represents a location in the source code. # Breakpoint source location.
+    "path": "A String", # Path to the source file within the source context of the target binary.
+    "line": 42, # Line inside the file. The first line in the file has the value `1`.
+  },
+  "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+      # resolution.
+  "action": "A String", # Action that the agent should perform when the code at the
+      # breakpoint location is hit.
+  "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+      # the breakpoint hits. The message may include parameter placeholders `$0`,
+      # `$1`, etc. These placeholders are replaced with the evaluated value
+      # of the appropriate expression. Expressions not referenced in
+      # `log_message_format` are not logged.
+      # 
+      # Example: `Message received, id = $0, count = $1` with
+      # `expressions` = `[ message.id, message.count ]`.
   "isFinalState": True or False, # When true, indicates that this is a final result and the
       # breakpoint state will not change from here on.
   "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
@@ -2682,195 +2682,15 @@
               # rather than a static type of an object.
         },
       ],
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
+      "userEmail": "A String", # E-mail address of the user that created this breakpoint
       "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
       "labels": { # A set of custom breakpoint properties, populated by the agent, to be
           # displayed to the user.
         "a_key": "A String",
       },
-      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
-          # the breakpoint hits. The message may include parameter placeholders `$0`,
-          # `$1`, etc. These placeholders are replaced with the evaluated value
-          # of the appropriate expression. Expressions not referenced in
-          # `log_message_format` are not logged.
-          #
-          # Example: `Message received, id = $0, count = $1` with
-          # `expressions` = `[ message.id, message.count ]`.
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "stackFrames": [ # The stack at breakpoint time.
         { # Represents a stack frame context.
           "function": "A String", # Demangled function name at the call site.
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "path": "A String", # Path to the source file within the source context of the target binary.
-            "line": 42, # Line inside the file. The first line in the file has the value `1`.
-          },
-          "locals": [ # Set of local variables at the stack frame location.
-              # Note that this might not be populated for all stack frames.
-            { # Represents a variable or an argument possibly of a compound object type.
-                # Note how the following variables are represented:
-                #
-                # 1) A simple variable:
-                #
-                #     int x = 5
-                #
-                #     { name: "x", value: "5", type: "int" }  // Captured variable
-                #
-                # 2) A compound object:
-                #
-                #     struct T {
-                #         int m1;
-                #         int m2;
-                #     };
-                #     T x = { 3, 7 };
-                #
-                #     {  // Captured variable
-                #         name: "x",
-                #         type: "T",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 3) A pointer where the pointee was captured:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &x;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00500500",
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # 4) A pointer where the pointee was not captured:
-                #
-                #     T* p = new T;
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         type: "T*",
-                #         value: "0x00400400"
-                #         status { is_error: true, description { format: "unavailable" } }
-                #     }
-                #
-                # The status should describe the reason for the missing value,
-                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
-                #
-                # Note that a null pointer should not have members.
-                #
-                # 5) An unnamed value:
-                #
-                #     int* p = new int(7);
-                #
-                #     {   // Captured variable
-                #         name: "p",
-                #         value: "0x00500500",
-                #         type: "int*",
-                #         members { value: "7", type: "int" } }
-                #
-                # 6) An unnamed pointer where the pointee was not captured:
-                #
-                #     int* p = new int(7);
-                #     int** pp = &p;
-                #
-                #     {  // Captured variable
-                #         name: "pp",
-                #         value: "0x00500500",
-                #         type: "int**",
-                #         members {
-                #             value: "0x00400400",
-                #             type: "int*"
-                #             status {
-                #                 is_error: true,
-                #                 description: { format: "unavailable" } }
-                #             }
-                #         }
-                #     }
-                #
-                # To optimize computation, memory and network traffic, variables that
-                # repeat in the output multiple times can be stored once in a shared
-                # variable table and be referenced using the `var_table_index` field.  The
-                # variables stored in the shared table are nameless and are essentially
-                # a partition of the complete variable. To reconstruct the complete
-                # variable, merge the referencing variable with the referenced variable.
-                #
-                # When using the shared variable table, the following variables:
-                #
-                #     T x = { 3, 7 };
-                #     T* p = &x;
-                #     T& r = x;
-                #
-                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
-                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
-                #     { name: "r", type="T&", var_table_index: 3 }
-                #
-                #     {  // Shared variable table entry #3:
-                #         members { name: "m1", value: "3", type: "int" },
-                #         members { name: "m2", value: "7", type: "int" }
-                #     }
-                #
-                # Note that the pointer address is stored with the referencing variable
-                # and not with the referenced variable. This allows the referenced variable
-                # to be shared between pointers and references.
-                #
-                # The type field is optional. The debugger agent may or may not support it.
-              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
-                  # unset. A status of a single variable only applies to that variable or
-                  # expression. The rest of breakpoint data still remains valid. Variables
-                  # might be reported in error state even when breakpoint is not in final
-                  # state.
-                  #
-                  # The message may refer to variable name with `refers_to` set to
-                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
-                  # In either case variable value and members will be unset.
-                  #
-                  # Example of error message applied to name: `Invalid expression syntax`.
-                  #
-                  # Example of information message applied to value: `Not captured`.
-                  #
-                  # Examples of error message applied to value:
-                  #
-                  # *   `Malformed string`,
-                  # *   `Field f not found in class C`
-                  # *   `Null pointer dereference`
-                  # The message can indicate an error or informational status, and refer to
-                  # specific parts of the containing object.
-                  # For example, the `Breakpoint.status` field can indicate an error referring
-                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
-                "isError": True or False, # Distinguishes errors from informational messages.
-                "refersTo": "A String", # Reference to which the message applies.
-                "description": { # Represents a message with parameters. # Status message text.
-                  "parameters": [ # Optional parameters to be embedded into the message.
-                    "A String",
-                  ],
-                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
-                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
-                      # character.
-                      #
-                      # Examples:
-                      #
-                      # *   `Failed to load '$0' which helps debug $1 the first time it
-                      #     is loaded.  Again, $0 is very important.`
-                      # *   `Please pay $$10 to use $0 instead of $1.`
-                },
-              },
-              "name": "A String", # Name of the variable, if any.
-              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
-                  # one variable can reference the same variable in the table. The
-                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
-              "value": "A String", # Simple value of the variable.
-              "members": [ # Members contained or pointed to by the variable.
-                # Object with schema name: Variable
-              ],
-              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
-                  # `var_table_index`, `type` goes next to `value`. The interpretation of
-                  # a type is agent specific. It is recommended to include the dynamic type
-                  # rather than a static type of an object.
-            },
-          ],
           "arguments": [ # Set of arguments passed to this function.
               # Note that this might not be populated for all stack frames.
             { # Represents a variable or an argument possibly of a compound object type.
@@ -3036,20 +2856,200 @@
                   # rather than a static type of an object.
             },
           ],
+          "locals": [ # Set of local variables at the stack frame location.
+              # Note that this might not be populated for all stack frames.
+            { # Represents a variable or an argument possibly of a compound object type.
+                # Note how the following variables are represented:
+                #
+                # 1) A simple variable:
+                #
+                #     int x = 5
+                #
+                #     { name: "x", value: "5", type: "int" }  // Captured variable
+                #
+                # 2) A compound object:
+                #
+                #     struct T {
+                #         int m1;
+                #         int m2;
+                #     };
+                #     T x = { 3, 7 };
+                #
+                #     {  // Captured variable
+                #         name: "x",
+                #         type: "T",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 3) A pointer where the pointee was captured:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00500500",
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # 4) A pointer where the pointee was not captured:
+                #
+                #     T* p = new T;
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         type: "T*",
+                #         value: "0x00400400"
+                #         status { is_error: true, description { format: "unavailable" } }
+                #     }
+                #
+                # The status should describe the reason for the missing value,
+                # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
+                #
+                # Note that a null pointer should not have members.
+                #
+                # 5) An unnamed value:
+                #
+                #     int* p = new int(7);
+                #
+                #     {   // Captured variable
+                #         name: "p",
+                #         value: "0x00500500",
+                #         type: "int*",
+                #         members { value: "7", type: "int" } }
+                #
+                # 6) An unnamed pointer where the pointee was not captured:
+                #
+                #     int* p = new int(7);
+                #     int** pp = &p;
+                #
+                #     {  // Captured variable
+                #         name: "pp",
+                #         value: "0x00500500",
+                #         type: "int**",
+                #         members {
+                #             value: "0x00400400",
+                #             type: "int*"
+                #             status {
+                #                 is_error: true,
+                #                 description: { format: "unavailable" } }
+                #             }
+                #         }
+                #     }
+                #
+                # To optimize computation, memory and network traffic, variables that
+                # repeat in the output multiple times can be stored once in a shared
+                # variable table and be referenced using the `var_table_index` field.  The
+                # variables stored in the shared table are nameless and are essentially
+                # a partition of the complete variable. To reconstruct the complete
+                # variable, merge the referencing variable with the referenced variable.
+                #
+                # When using the shared variable table, the following variables:
+                #
+                #     T x = { 3, 7 };
+                #     T* p = &x;
+                #     T& r = x;
+                #
+                #     { name: "x", var_table_index: 3, type: "T" }  // Captured variables
+                #     { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
+                #     { name: "r", type="T&", var_table_index: 3 }
+                #
+                #     {  // Shared variable table entry #3:
+                #         members { name: "m1", value: "3", type: "int" },
+                #         members { name: "m2", value: "7", type: "int" }
+                #     }
+                #
+                # Note that the pointer address is stored with the referencing variable
+                # and not with the referenced variable. This allows the referenced variable
+                # to be shared between pointers and references.
+                #
+                # The type field is optional. The debugger agent may or may not support it.
+              "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
+                  # unset. A status of a single variable only applies to that variable or
+                  # expression. The rest of breakpoint data still remains valid. Variables
+                  # might be reported in error state even when breakpoint is not in final
+                  # state.
+                  #
+                  # The message may refer to variable name with `refers_to` set to
+                  # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
+                  # In either case variable value and members will be unset.
+                  #
+                  # Example of error message applied to name: `Invalid expression syntax`.
+                  #
+                  # Example of information message applied to value: `Not captured`.
+                  #
+                  # Examples of error message applied to value:
+                  #
+                  # *   `Malformed string`,
+                  # *   `Field f not found in class C`
+                  # *   `Null pointer dereference`
+                  # The message can indicate an error or informational status, and refer to
+                  # specific parts of the containing object.
+                  # For example, the `Breakpoint.status` field can indicate an error referring
+                  # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
+                "isError": True or False, # Distinguishes errors from informational messages.
+                "refersTo": "A String", # Reference to which the message applies.
+                "description": { # Represents a message with parameters. # Status message text.
+                  "parameters": [ # Optional parameters to be embedded into the message.
+                    "A String",
+                  ],
+                  "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
+                      # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
+                      # character.
+                      #
+                      # Examples:
+                      #
+                      # *   `Failed to load '$0' which helps debug $1 the first time it
+                      #     is loaded.  Again, $0 is very important.`
+                      # *   `Please pay $$10 to use $0 instead of $1.`
+                },
+              },
+              "name": "A String", # Name of the variable, if any.
+              "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
+                  # one variable can reference the same variable in the table. The
+                  # `var_table_index` field is an index into `variable_table` in Breakpoint.
+              "value": "A String", # Simple value of the variable.
+              "members": [ # Members contained or pointed to by the variable.
+                # Object with schema name: Variable
+              ],
+              "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
+                  # `var_table_index`, `type` goes next to `value`. The interpretation of
+                  # a type is agent specific. It is recommended to include the dynamic type
+                  # rather than a static type of an object.
+            },
+          ],
+          "location": { # Represents a location in the source code. # Source location of the call site.
+            "path": "A String", # Path to the source file within the source context of the target binary.
+            "line": 42, # Line inside the file. The first line in the file has the value `1`.
+          },
         },
       ],
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "path": "A String", # Path to the source file within the source context of the target binary.
-        "line": 42, # Line inside the file. The first line in the file has the value `1`.
-      },
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
+      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
       "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
           # The expressions are composed using expressions in the programming language
           # at the source location. If the breakpoint action is `LOG`, the evaluated
           # expressions are included in log statements.
         "A String",
       ],
+      "location": { # Represents a location in the source code. # Breakpoint source location.
+        "path": "A String", # Path to the source file within the source context of the target binary.
+        "line": 42, # Line inside the file. The first line in the file has the value `1`.
+      },
+      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
+          # resolution.
+      "action": "A String", # Action that the agent should perform when the code at the
+          # breakpoint location is hit.
+      "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
+          # the breakpoint hits. The message may include parameter placeholders `$0`,
+          # `$1`, etc. These placeholders are replaced with the evaluated value
+          # of the appropriate expression. Expressions not referenced in
+          # `log_message_format` are not logged.
+          #
+          # Example: `Message received, id = $0, count = $1` with
+          # `expressions` = `[ message.id, message.count ]`.
       "isFinalState": True or False, # When true, indicates that this is a final result and the
           # breakpoint state will not change from here on.
       "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.html
index ee65a67..f048b0d 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.html
@@ -164,6 +164,8 @@
               "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                   # A cloud workspace is a place associated with a repo where modified files
                   # can be stored before they are committed.
+                "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                    # chosen by the client in the Source API's CreateWorkspace method.
                 "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                   "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                       # (e.g. winged-cargo-31) and a repo name within that project.
@@ -172,8 +174,6 @@
                   },
                   "uid": "A String", # A server-assigned, globally unique identifier.
                 },
-                "name": "A String", # The unique name of the workspace within the repo.  This is the name
-                    # chosen by the client in the Source API's CreateWorkspace method.
               },
             },
             "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -204,12 +204,12 @@
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
               },
+              "revisionId": "A String", # A revision (commit) ID.
               "hostUri": "A String", # The URI of a running Gerrit instance.
+              "aliasName": "A String", # The name of an alias (branch, tag, etc.).
               "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                   # "project/subproject" is a valid project name.
                   # The "repo name" is hostURI/project.
-              "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-              "revisionId": "A String", # A revision (commit) ID.
             },
           },
         ],
@@ -232,6 +232,8 @@
                 "workspaceId": { # A CloudWorkspaceId is a unique identifier for a cloud workspace. # The ID of the workspace.
                     # A cloud workspace is a place associated with a repo where modified files
                     # can be stored before they are committed.
+                  "name": "A String", # The unique name of the workspace within the repo.  This is the name
+                      # chosen by the client in the Source API's CreateWorkspace method.
                   "repoId": { # A unique identifier for a cloud repo. # The ID of the repo containing the workspace.
                     "projectRepoId": { # Selects a repo using a Google Cloud Platform project ID # A combination of a project ID and a repo name.
                         # (e.g. winged-cargo-31) and a repo name within that project.
@@ -240,8 +242,6 @@
                     },
                     "uid": "A String", # A server-assigned, globally unique identifier.
                   },
-                  "name": "A String", # The unique name of the workspace within the repo.  This is the name
-                      # chosen by the client in the Source API's CreateWorkspace method.
                 },
               },
               "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -272,12 +272,12 @@
                   "kind": "A String", # The alias kind.
                   "name": "A String", # The alias name.
                 },
+                "revisionId": "A String", # A revision (commit) ID.
                 "hostUri": "A String", # The URI of a running Gerrit instance.
+                "aliasName": "A String", # The name of an alias (branch, tag, etc.).
                 "gerritProject": "A String", # The full project name within the host. Projects may be nested, so
                     # "project/subproject" is a valid project name.
                     # The "repo name" is hostURI/project.
-                "aliasName": "A String", # The name of an alias (branch, tag, etc.).
-                "revisionId": "A String", # A revision (commit) ID.
               },
             },
           },
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.events.html b/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
index 9b28397..612138f 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
@@ -127,6 +127,8 @@
               # reporting errors.
           "version": "A String", # Represents the source code version that the developer provided,
               # which could represent a version label or a Git SHA-1 hash, for example.
+              # For App Engine standard environment, the version is set to the version of
+              # the app.
           "service": "A String", # An identifier of the service, such as the name of the
               # executable, job, or Google App Engine service name. This field is expected
               # to have a low number of values that are relatively stable over time, as
@@ -135,10 +137,10 @@
               # Contains the service name for error reports extracted from Google
               # App Engine logs or `default` if the App Engine default service is used.
         },
+        "message": "A String", # The stack trace that was reported or logged by the service.
         "eventTime": "A String", # Time when the event occurred as provided in the error report.
             # If the report did not contain a timestamp, the time the error was received
             # by the Error Reporting system is used.
-        "message": "A String", # The stack trace that was reported or logged by the service.
         "context": { # A description of the context in which an error occurred. # Data about the context in which the error occurred.
             # This data should be provided by the application when reporting an error,
             # unless the
@@ -158,6 +160,16 @@
             "userAgent": "A String", # The user agent information that is provided with the request.
             "method": "A String", # The type of HTTP request, such as `GET`, `POST`, etc.
           },
+          "sourceReferences": [ # Source code that was used to build the executable which has
+              # caused the given error message.
+            { # A reference to a particular snapshot of the source tree used to build and
+                # deploy an application.
+              "revisionId": "A String", # The canonical and persistent identifier of the deployed revision.
+                  # Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
+              "repository": "A String", # Optional. A URI string identifying the repository.
+                  # Example: "https://github.com/GoogleCloudPlatform/kubernetes.git"
+            },
+          ],
           "user": "A String", # The user who caused or was affected by the crash.
               # This can be a user ID, an email address, or an arbitrary token that
               # uniquely identifies the user.
@@ -166,16 +178,15 @@
               # Error Reporting system will use other data, such as remote IP address, to
               # distinguish affected users. See `affected_users_count` in
               # `ErrorGroupStats`.
-          "reportLocation": { # Indicates a location in the source code of the service for which # The location in the source code where the decision was made to
+          "reportLocation": { # Indicates a location in the source code of the service for which errors are # The location in the source code where the decision was made to
               # report the error, usually the place where it was logged.
               # For a logged exception this would be the source line where the
               # exception is logged, usually close to the place where it was
               # caught. This value is in contrast to `Exception.cause_location`,
               # which describes the source line where the exception was thrown.
-              # errors are reported.
-              # This data should be provided by the application when reporting an error,
-              # unless the error report has been generated automatically from Google App
-              # Engine logs. All fields are optional.
+              # reported. `functionName` must be provided by the application when reporting
+              # an error, unless the error report contains a `message` with a supported
+              # exception stack trace. All fields are optional for the later case.
             "lineNumber": 42, # 1-based. 0 indicates that the line number is unknown.
             "functionName": "A String", # Human-readable name of a function or method.
                 # The value can include optional context like the class or package name.
@@ -233,6 +244,8 @@
           # reporting errors.
       "version": "A String", # Represents the source code version that the developer provided,
           # which could represent a version label or a Git SHA-1 hash, for example.
+          # For App Engine standard environment, the version is set to the version of
+          # the app.
       "service": "A String", # An identifier of the service, such as the name of the
           # executable, job, or Google App Engine service name. This field is expected
           # to have a low number of values that are relatively stable over time, as
@@ -280,6 +293,16 @@
         "userAgent": "A String", # The user agent information that is provided with the request.
         "method": "A String", # The type of HTTP request, such as `GET`, `POST`, etc.
       },
+      "sourceReferences": [ # Source code that was used to build the executable which has
+          # caused the given error message.
+        { # A reference to a particular snapshot of the source tree used to build and
+            # deploy an application.
+          "revisionId": "A String", # The canonical and persistent identifier of the deployed revision.
+              # Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
+          "repository": "A String", # Optional. A URI string identifying the repository.
+              # Example: "https://github.com/GoogleCloudPlatform/kubernetes.git"
+        },
+      ],
       "user": "A String", # The user who caused or was affected by the crash.
           # This can be a user ID, an email address, or an arbitrary token that
           # uniquely identifies the user.
@@ -288,16 +311,15 @@
           # Error Reporting system will use other data, such as remote IP address, to
           # distinguish affected users. See `affected_users_count` in
           # `ErrorGroupStats`.
-      "reportLocation": { # Indicates a location in the source code of the service for which # The location in the source code where the decision was made to
+      "reportLocation": { # Indicates a location in the source code of the service for which errors are # The location in the source code where the decision was made to
           # report the error, usually the place where it was logged.
           # For a logged exception this would be the source line where the
           # exception is logged, usually close to the place where it was
           # caught. This value is in contrast to `Exception.cause_location`,
           # which describes the source line where the exception was thrown.
-          # errors are reported.
-          # This data should be provided by the application when reporting an error,
-          # unless the error report has been generated automatically from Google App
-          # Engine logs. All fields are optional.
+          # reported. `functionName` must be provided by the application when reporting
+          # an error, unless the error report contains a `message` with a supported
+          # exception stack trace. All fields are optional for the later case.
         "lineNumber": 42, # 1-based. 0 indicates that the line number is unknown.
         "functionName": "A String", # Human-readable name of a function or method.
             # The value can include optional context like the class or package name.
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html b/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
index 2efbcd0..f73be38 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
@@ -125,10 +125,6 @@
     "nextPageToken": "A String", # If non-empty, more results are available.
         # Pass this token, along with the same query parameters as the first
         # request, to view the next page of results.
-    "timeRangeBegin": "A String", # The timestamp specifies the start time to which the request was restricted.
-        # The start time is set based on the requested time range. It may be adjusted
-        # to a later time if a project has exceeded the storage quota and older data
-        # has been deleted.
     "errorGroupStats": [ # The error group stats which match the given request.
       { # Data extracted for a specific group based on certain filter criteria,
           # such as a given time period and/or service filter.
@@ -161,6 +157,8 @@
                 # reporting errors.
             "version": "A String", # Represents the source code version that the developer provided,
                 # which could represent a version label or a Git SHA-1 hash, for example.
+                # For App Engine standard environment, the version is set to the version of
+                # the app.
             "service": "A String", # An identifier of the service, such as the name of the
                 # executable, job, or Google App Engine service name. This field is expected
                 # to have a low number of values that are relatively stable over time, as
@@ -201,6 +199,8 @@
                 # reporting errors.
             "version": "A String", # Represents the source code version that the developer provided,
                 # which could represent a version label or a Git SHA-1 hash, for example.
+                # For App Engine standard environment, the version is set to the version of
+                # the app.
             "service": "A String", # An identifier of the service, such as the name of the
                 # executable, job, or Google App Engine service name. This field is expected
                 # to have a low number of values that are relatively stable over time, as
@@ -209,10 +209,10 @@
                 # Contains the service name for error reports extracted from Google
                 # App Engine logs or `default` if the App Engine default service is used.
           },
+          "message": "A String", # The stack trace that was reported or logged by the service.
           "eventTime": "A String", # Time when the event occurred as provided in the error report.
               # If the report did not contain a timestamp, the time the error was received
               # by the Error Reporting system is used.
-          "message": "A String", # The stack trace that was reported or logged by the service.
           "context": { # A description of the context in which an error occurred. # Data about the context in which the error occurred.
               # This data should be provided by the application when reporting an error,
               # unless the
@@ -232,6 +232,16 @@
               "userAgent": "A String", # The user agent information that is provided with the request.
               "method": "A String", # The type of HTTP request, such as `GET`, `POST`, etc.
             },
+            "sourceReferences": [ # Source code that was used to build the executable which has
+                # caused the given error message.
+              { # A reference to a particular snapshot of the source tree used to build and
+                  # deploy an application.
+                "revisionId": "A String", # The canonical and persistent identifier of the deployed revision.
+                    # Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
+                "repository": "A String", # Optional. A URI string identifying the repository.
+                    # Example: "https://github.com/GoogleCloudPlatform/kubernetes.git"
+              },
+            ],
             "user": "A String", # The user who caused or was affected by the crash.
                 # This can be a user ID, an email address, or an arbitrary token that
                 # uniquely identifies the user.
@@ -240,16 +250,15 @@
                 # Error Reporting system will use other data, such as remote IP address, to
                 # distinguish affected users. See `affected_users_count` in
                 # `ErrorGroupStats`.
-            "reportLocation": { # Indicates a location in the source code of the service for which # The location in the source code where the decision was made to
+            "reportLocation": { # Indicates a location in the source code of the service for which errors are # The location in the source code where the decision was made to
                 # report the error, usually the place where it was logged.
                 # For a logged exception this would be the source line where the
                 # exception is logged, usually close to the place where it was
                 # caught. This value is in contrast to `Exception.cause_location`,
                 # which describes the source line where the exception was thrown.
-                # errors are reported.
-                # This data should be provided by the application when reporting an error,
-                # unless the error report has been generated automatically from Google App
-                # Engine logs. All fields are optional.
+                # reported. `functionName` must be provided by the application when reporting
+                # an error, unless the error report contains a `message` with a supported
+                # exception stack trace. All fields are optional for the later case.
               "lineNumber": 42, # 1-based. 0 indicates that the line number is unknown.
               "functionName": "A String", # Human-readable name of a function or method.
                   # The value can include optional context like the class or package name.
@@ -275,6 +284,10 @@
         },
       },
     ],
+    "timeRangeBegin": "A String", # The timestamp specifies the start time to which the request was restricted.
+        # The start time is set based on the requested time range. It may be adjusted
+        # to a later time if a project has exceeded the storage quota and older data
+        # has been deleted.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudfunctions_v1.html b/docs/dyn/cloudfunctions_v1.html
index d3f6ab8..a5a4dc9 100644
--- a/docs/dyn/cloudfunctions_v1.html
+++ b/docs/dyn/cloudfunctions_v1.html
@@ -75,11 +75,6 @@
 <h1><a href="cloudfunctions_v1.html">Google Cloud Functions API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="cloudfunctions_v1.projects.html">projects()</a></code>
-</p>
-<p class="firstline">Returns the projects Resource.</p>
-
-<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/cloudfunctions_v1.projects.html b/docs/dyn/cloudfunctions_v1.projects.html
deleted file mode 100644
index 764c5b0..0000000
--- a/docs/dyn/cloudfunctions_v1.projects.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<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="cloudfunctions_v1.html">Google Cloud Functions API</a> . <a href="cloudfunctions_v1.projects.html">projects</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudfunctions_v1.projects.locations.html">locations()</a></code>
-</p>
-<p class="firstline">Returns the locations Resource.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudfunctions_v1.projects.locations.html b/docs/dyn/cloudfunctions_v1.projects.locations.html
deleted file mode 100644
index 1d0fed4..0000000
--- a/docs/dyn/cloudfunctions_v1.projects.locations.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<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="cloudfunctions_v1.html">Google Cloud Functions API</a> . <a href="cloudfunctions_v1.projects.html">projects</a> . <a href="cloudfunctions_v1.projects.locations.html">locations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Get information about a location.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Get information about a location.
-
-Args:
-  name: string, Resource name for the location. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example
-        #
-        #     {"cloud.googleapis.com/region": "us-east1"}
-      "a_key": "A String",
-    },
-    "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
-    "name": "A String", # Resource name for the location, which may vary between implementations.
-        # For example: `"projects/example-project/locations/us-east1"`
-    "metadata": { # Service-specific metadata. For example the available capacity at the given
-        # location.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudfunctions_v1beta2.operations.html b/docs/dyn/cloudfunctions_v1beta2.operations.html
index 8171552..2cb5158 100644
--- a/docs/dyn/cloudfunctions_v1beta2.operations.html
+++ b/docs/dyn/cloudfunctions_v1beta2.operations.html
@@ -102,28 +102,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -141,7 +125,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -164,7 +148,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -187,6 +171,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -195,11 +195,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection.
+  name: string, The name of the operation's parent resource.
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -212,32 +217,15 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
-    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
         "metadata": { # Service-specific metadata associated with the operation.  It typically
             # contains progress information and common metadata such as create time.
             # Some services might not provide such metadata.  Any method that returns a
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -255,7 +243,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -278,7 +266,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -301,8 +289,25 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
+    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html b/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
index 64603ad..cc03879 100644
--- a/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
+++ b/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
@@ -187,8 +187,8 @@
   "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
     "url": "A String", # Output only. The deployed url for the function.
   },
-  "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
-      # the function.
+  "sourceArchiveUrl": "A String", # The Google Cloud Storage URL, starting with gs://, pointing to the zip
+      # archive which contains the function.
   "serviceAccount": "A String", # Output only. The service account of the function.
   "entryPoint": "A String", # The name of the function (as defined in source code) that will be
       # executed. Defaults to the resource name suffix, if not specified. For
@@ -214,28 +214,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -253,7 +237,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -276,7 +260,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -299,6 +283,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -320,28 +320,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -359,7 +343,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -382,7 +366,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -405,6 +389,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -470,8 +470,8 @@
     "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
       "url": "A String", # Output only. The deployed url for the function.
     },
-    "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
-        # the function.
+    "sourceArchiveUrl": "A String", # The Google Cloud Storage URL, starting with gs://, pointing to the zip
+        # archive which contains the function.
     "serviceAccount": "A String", # Output only. The service account of the function.
     "entryPoint": "A String", # The name of the function (as defined in source code) that will be
         # executed. Defaults to the resource name suffix, if not specified. For
@@ -564,8 +564,8 @@
         "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
           "url": "A String", # Output only. The deployed url for the function.
         },
-        "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
-            # the function.
+        "sourceArchiveUrl": "A String", # The Google Cloud Storage URL, starting with gs://, pointing to the zip
+            # archive which contains the function.
         "serviceAccount": "A String", # Output only. The service account of the function.
         "entryPoint": "A String", # The name of the function (as defined in source code) that will be
             # executed. Defaults to the resource name suffix, if not specified. For
@@ -655,8 +655,8 @@
   "httpsTrigger": { # Describes HTTPSTrigger, could be used to connect web hooks to function. # An HTTPS endpoint type of source that can be triggered via URL.
     "url": "A String", # Output only. The deployed url for the function.
   },
-  "sourceArchiveUrl": "A String", # The URL, starting with gs://, pointing to the zip archive which contains
-      # the function.
+  "sourceArchiveUrl": "A String", # The Google Cloud Storage URL, starting with gs://, pointing to the zip
+      # archive which contains the function.
   "serviceAccount": "A String", # Output only. The service account of the function.
   "entryPoint": "A String", # The name of the function (as defined in source code) that will be
       # executed. Defaults to the resource name suffix, if not specified. For
@@ -682,28 +682,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -721,7 +705,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -744,7 +728,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -767,6 +751,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
index ddcdcc7..32cf33d 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns metadata for a given CryptoKeyVersion.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists CryptoKeyVersions.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -117,15 +117,15 @@
     # parent CryptoKey, in which case the server will choose the appropriate
     # version for the operation.
   "state": "A String", # The current state of the CryptoKeyVersion.
-  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
       # for destruction. Only present if state is
       # DESTROY_SCHEDULED.
+  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
   "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
       # destroyed. Only present if state is
       # DESTROYED.
+  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
 }
 
   x__xgafv: string, V1 error format.
@@ -143,15 +143,15 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
@@ -193,15 +193,15 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
@@ -226,36 +226,36 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists CryptoKeyVersions.
 
 Args:
   parent: string, Required. The resource name of the CryptoKey to list, in the format
 `projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
+  pageSize: integer, Optional limit on the number of CryptoKeyVersions to
+include in the response. Further CryptoKeyVersions can
+subsequently be obtained by including the
+ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
+If unspecified, the server will pick an appropriate default.
   pageToken: string, Optional pagination token, returned earlier via
 ListCryptoKeyVersionsResponse.next_page_token.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Optional limit on the number of CryptoKeyVersions to
-include in the response. Further CryptoKeyVersions can
-subsequently be obtained by including the
-ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
-If unspecified, the server will pick an appropriate default.
 
 Returns:
   An object of the form:
@@ -274,15 +274,15 @@
           # parent CryptoKey, in which case the server will choose the appropriate
           # version for the operation.
         "state": "A String", # The current state of the CryptoKeyVersion.
-        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
         "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
             # for destruction. Only present if state is
             # DESTROY_SCHEDULED.
+        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
         "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
             # destroyed. Only present if state is
             # DESTROYED.
+        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
       },
     ],
   }</pre>
@@ -325,15 +325,15 @@
     # parent CryptoKey, in which case the server will choose the appropriate
     # version for the operation.
   "state": "A String", # The current state of the CryptoKeyVersion.
-  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
       # for destruction. Only present if state is
       # DESTROY_SCHEDULED.
+  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
   "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
       # destroyed. Only present if state is
       # DESTROYED.
+  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
 }
 
   updateMask: string, Required list of fields to be updated in this request.
@@ -352,15 +352,15 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
@@ -397,15 +397,15 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
index 931fe60..af88aba 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
@@ -84,10 +84,10 @@
 <p class="firstline">Create a new CryptoKey within a KeyRing.</p>
 <p class="toc_element">
   <code><a href="#decrypt">decrypt(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Decrypt data that was protected by Encrypt.</p>
+<p class="firstline">Decrypts data that was protected by Encrypt.</p>
 <p class="toc_element">
   <code><a href="#encrypt">encrypt(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Encrypt data, so that it can only be recovered by a call to Decrypt.</p>
+<p class="firstline">Encrypts data, so that it can only be recovered by a call to Decrypt.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns metadata for a given CryptoKey, as well as its</p>
@@ -148,15 +148,15 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   },
   "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
       # purpose is ENCRYPT_DECRYPT.
@@ -205,15 +205,15 @@
         # parent CryptoKey, in which case the server will choose the appropriate
         # version for the operation.
       "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
       "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
           # for destruction. Only present if state is
           # DESTROY_SCHEDULED.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
@@ -232,7 +232,7 @@
 
 <div class="method">
     <code class="details" id="decrypt">decrypt(name, body, x__xgafv=None)</code>
-  <pre>Decrypt data that was protected by Encrypt.
+  <pre>Decrypts data that was protected by Encrypt.
 
 Args:
   name: string, Required. The resource name of the CryptoKey to use for decryption.
@@ -262,7 +262,7 @@
 
 <div class="method">
     <code class="details" id="encrypt">encrypt(name, body, x__xgafv=None)</code>
-  <pre>Encrypt data, so that it can only be recovered by a call to Decrypt.
+  <pre>Encrypts data, so that it can only be recovered by a call to Decrypt.
 
 Args:
   name: string, Required. The resource name of the CryptoKey or CryptoKeyVersion
@@ -332,15 +332,15 @@
         # parent CryptoKey, in which case the server will choose the appropriate
         # version for the operation.
       "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
       "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
           # for destruction. Only present if state is
           # DESTROY_SCHEDULED.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
@@ -409,48 +409,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -536,6 +539,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -558,7 +562,6 @@
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
@@ -583,11 +586,34 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
           "A String",
         ],
+        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+            # NOTE: an unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            # This field is GOOGLE_INTERNAL.
+            #
+            #     title: "User account presence"
+            #     description: "Determines whether the request has a user account"
+            #     expression: "size(request.user) > 0"
+          "location": "A String", # An optional string indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "expression": "A String", # Textual representation of an expression in
+              # [Common Expression Language](http://go/api-expr) syntax.
+              #
+              # The application context of the containing message determines which
+              # well-known feature set of CEL is supported.
+          "description": "A String", # An optional description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "title": "A String", # An optional title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+        },
       },
     ],
     "iamOwned": True or False,
@@ -642,15 +668,15 @@
             # parent CryptoKey, in which case the server will choose the appropriate
             # version for the operation.
           "state": "A String", # The current state of the CryptoKeyVersion.
-          "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-          "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-              # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
           "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
               # for destruction. Only present if state is
               # DESTROY_SCHEDULED.
+          "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
           "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
               # destroyed. Only present if state is
               # DESTROYED.
+          "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+              # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
         },
         "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
             # purpose is ENCRYPT_DECRYPT.
@@ -717,15 +743,15 @@
       # parent CryptoKey, in which case the server will choose the appropriate
       # version for the operation.
     "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
         # for destruction. Only present if state is
         # DESTROY_SCHEDULED.
+    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
+    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   },
   "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
       # purpose is ENCRYPT_DECRYPT.
@@ -773,15 +799,15 @@
         # parent CryptoKey, in which case the server will choose the appropriate
         # version for the operation.
       "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
       "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
           # for destruction. Only present if state is
           # DESTROY_SCHEDULED.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
@@ -848,48 +874,51 @@
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -975,6 +1004,7 @@
               "dataAccess": { # Write a Data Access (Gin) log # Data access options.
               },
               "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+                "logName": "A String", # The log_name to populate in the Cloud Audit Record.
               },
             },
           ],
@@ -997,7 +1027,6 @@
           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
           # policy is overwritten blindly.
       "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
           # `bindings` with no members will result in an error.
         { # Associates `members` with a `role`.
           "role": "A String", # Role that is assigned to `members`.
@@ -1022,11 +1051,34 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
             "A String",
           ],
+          "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+              # NOTE: an unsatisfied condition will not allow user access via current
+              # binding. Different bindings, including their conditions, are examined
+              # independently.
+              # This field is GOOGLE_INTERNAL.
+              #
+              #     title: "User account presence"
+              #     description: "Determines whether the request has a user account"
+              #     expression: "size(request.user) > 0"
+            "location": "A String", # An optional string indicating the location of the expression for error
+                # reporting, e.g. a file name and a position in the file.
+            "expression": "A String", # Textual representation of an expression in
+                # [Common Expression Language](http://go/api-expr) syntax.
+                #
+                # The application context of the containing message determines which
+                # well-known feature set of CEL is supported.
+            "description": "A String", # An optional description of the expression. This is a longer text which
+                # describes the expression, e.g. when hovered over it in a UI.
+            "title": "A String", # An optional title for the expression, i.e. a short string describing
+                # its purpose. This can be used e.g. in UIs which allow to enter the
+                # expression.
+          },
         },
       ],
       "iamOwned": True or False,
@@ -1081,48 +1133,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -1208,6 +1263,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -1230,7 +1286,6 @@
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
@@ -1255,11 +1310,34 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
           "A String",
         ],
+        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+            # NOTE: an unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            # This field is GOOGLE_INTERNAL.
+            #
+            #     title: "User account presence"
+            #     description: "Determines whether the request has a user account"
+            #     expression: "size(request.user) > 0"
+          "location": "A String", # An optional string indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "expression": "A String", # Textual representation of an expression in
+              # [Common Expression Language](http://go/api-expr) syntax.
+              #
+              # The application context of the containing message determines which
+              # well-known feature set of CEL is supported.
+          "description": "A String", # An optional description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "title": "A String", # An optional title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+        },
       },
     ],
     "iamOwned": True or False,
@@ -1351,15 +1429,15 @@
         # parent CryptoKey, in which case the server will choose the appropriate
         # version for the operation.
       "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
       "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
           # for destruction. Only present if state is
           # DESTROY_SCHEDULED.
+      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
+      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
+          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
index aae8bfd..92de95e 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
@@ -89,7 +89,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists KeyRings.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -207,48 +207,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -334,6 +337,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -356,7 +360,6 @@
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
@@ -381,11 +384,34 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
           "A String",
         ],
+        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+            # NOTE: an unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            # This field is GOOGLE_INTERNAL.
+            #
+            #     title: "User account presence"
+            #     description: "Determines whether the request has a user account"
+            #     expression: "size(request.user) > 0"
+          "location": "A String", # An optional string indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "expression": "A String", # Textual representation of an expression in
+              # [Common Expression Language](http://go/api-expr) syntax.
+              #
+              # The application context of the containing message determines which
+              # well-known feature set of CEL is supported.
+          "description": "A String", # An optional description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "title": "A String", # An optional title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+        },
       },
     ],
     "iamOwned": True or False,
@@ -393,22 +419,22 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists KeyRings.
 
 Args:
   parent: string, Required. The resource name of the location associated with the
 KeyRings, in the format `projects/*/locations/*`. (required)
-  pageSize: integer, Optional limit on the number of KeyRings to include in the
-response.  Further KeyRings can subsequently be obtained by
-including the ListKeyRingsResponse.next_page_token in a subsequent
-request.  If unspecified, the server will pick an appropriate default.
   pageToken: string, Optional pagination token, returned earlier via
 ListKeyRingsResponse.next_page_token.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional limit on the number of KeyRings to include in the
+response.  Further KeyRings can subsequently be obtained by
+including the ListKeyRingsResponse.next_page_token in a subsequent
+request.  If unspecified, the server will pick an appropriate default.
 
 Returns:
   An object of the form:
@@ -491,48 +517,51 @@
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -618,6 +647,7 @@
               "dataAccess": { # Write a Data Access (Gin) log # Data access options.
               },
               "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+                "logName": "A String", # The log_name to populate in the Cloud Audit Record.
               },
             },
           ],
@@ -640,7 +670,6 @@
           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
           # policy is overwritten blindly.
       "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
           # `bindings` with no members will result in an error.
         { # Associates `members` with a `role`.
           "role": "A String", # Role that is assigned to `members`.
@@ -665,11 +694,34 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
             "A String",
           ],
+          "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+              # NOTE: an unsatisfied condition will not allow user access via current
+              # binding. Different bindings, including their conditions, are examined
+              # independently.
+              # This field is GOOGLE_INTERNAL.
+              #
+              #     title: "User account presence"
+              #     description: "Determines whether the request has a user account"
+              #     expression: "size(request.user) > 0"
+            "location": "A String", # An optional string indicating the location of the expression for error
+                # reporting, e.g. a file name and a position in the file.
+            "expression": "A String", # Textual representation of an expression in
+                # [Common Expression Language](http://go/api-expr) syntax.
+                #
+                # The application context of the containing message determines which
+                # well-known feature set of CEL is supported.
+            "description": "A String", # An optional description of the expression. This is a longer text which
+                # describes the expression, e.g. when hovered over it in a UI.
+            "title": "A String", # An optional title for the expression, i.e. a short string describing
+                # its purpose. This can be used e.g. in UIs which allow to enter the
+                # expression.
+          },
         },
       ],
       "iamOwned": True or False,
@@ -724,48 +776,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -851,6 +906,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -873,7 +929,6 @@
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
@@ -898,11 +953,34 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
           "A String",
         ],
+        "condition": { # Represents an expression text. Example: # The condition that is associated with this binding.
+            # NOTE: an unsatisfied condition will not allow user access via current
+            # binding. Different bindings, including their conditions, are examined
+            # independently.
+            # This field is GOOGLE_INTERNAL.
+            #
+            #     title: "User account presence"
+            #     description: "Determines whether the request has a user account"
+            #     expression: "size(request.user) > 0"
+          "location": "A String", # An optional string indicating the location of the expression for error
+              # reporting, e.g. a file name and a position in the file.
+          "expression": "A String", # Textual representation of an expression in
+              # [Common Expression Language](http://go/api-expr) syntax.
+              #
+              # The application context of the containing message determines which
+              # well-known feature set of CEL is supported.
+          "description": "A String", # An optional description of the expression. This is a longer text which
+              # describes the expression, e.g. when hovered over it in a UI.
+          "title": "A String", # An optional title for the expression, i.e. a short string describing
+              # its purpose. This can be used e.g. in UIs which allow to enter the
+              # expression.
+        },
       },
     ],
     "iamOwned": True or False,
diff --git a/docs/dyn/cloudkms_v1beta1.html b/docs/dyn/cloudkms_v1beta1.html
deleted file mode 100644
index 25ecb30..0000000
--- a/docs/dyn/cloudkms_v1beta1.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudkms_v1beta1.projects.html">projects()</a></code>
-</p>
-<p class="firstline">Returns the projects Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.html b/docs/dyn/cloudkms_v1beta1.projects.html
deleted file mode 100644
index 9e34140..0000000
--- a/docs/dyn/cloudkms_v1beta1.projects.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudkms_v1beta1.projects.locations.html">locations()</a></code>
-</p>
-<p class="firstline">Returns the locations Resource.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.html b/docs/dyn/cloudkms_v1beta1.projects.locations.html
deleted file mode 100644
index f8aff14..0000000
--- a/docs/dyn/cloudkms_v1beta1.projects.locations.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings()</a></code>
-</p>
-<p class="firstline">Returns the keyRings Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Get information about a location.</p>
-<p class="toc_element">
-  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists information about the supported locations for this service.</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="get">get(name, x__xgafv=None)</code>
-  <pre>Get information about a location.
-
-Args:
-  name: string, Resource name for the location. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A resource that represents Google Cloud Platform location.
-    "labels": { # Cross-service attributes for the location. For example
-        #
-        #     {"cloud.googleapis.com/region": "us-east1"}
-      "a_key": "A String",
-    },
-    "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
-    "name": "A String", # Resource name for the location, which may vary between implementations.
-        # For example: `"projects/example-project/locations/us-east1"`
-    "metadata": { # Service-specific metadata. For example the available capacity at the given
-        # location.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists information about the supported locations for this service.
-
-Args:
-  name: string, The resource that owns the locations collection, if applicable. (required)
-  pageSize: integer, The standard list page size.
-  filter: string, The standard list filter.
-  pageToken: string, The standard list page token.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # The response message for Locations.ListLocations.
-    "nextPageToken": "A String", # The standard List next-page token.
-    "locations": [ # A list of locations that matches the specified filter in the request.
-      { # A resource that represents Google Cloud Platform location.
-        "labels": { # Cross-service attributes for the location. For example
-            #
-            #     {"cloud.googleapis.com/region": "us-east1"}
-          "a_key": "A String",
-        },
-        "locationId": "A String", # The canonical id for this location. For example: `"us-east1"`.
-        "name": "A String", # Resource name for the location, which may vary between implementations.
-            # For example: `"projects/example-project/locations/us-east1"`
-        "metadata": { # Service-specific metadata. For example the available capacity at the given
-            # location.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-      },
-    ],
-  }</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
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
deleted file mode 100644
index 30ab30a..0000000
--- a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
+++ /dev/null
@@ -1,412 +0,0 @@
-<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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html">cryptoKeyVersions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Create a new CryptoKeyVersion in a CryptoKey.</p>
-<p class="toc_element">
-  <code><a href="#destroy">destroy(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Schedule a CryptoKeyVersion for destruction.</p>
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns metadata for a given CryptoKeyVersion.</p>
-<p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists CryptoKeyVersions.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(name=None, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Update a CryptoKeyVersion's metadata.</p>
-<p class="toc_element">
-  <code><a href="#restore">restore(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Restore a CryptoKeyVersion in the</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
-  <pre>Create a new CryptoKeyVersion in a CryptoKey.
-
-The server will assign the next sequential id. If unset,
-state will be set to
-ENABLED.
-
-Args:
-  parent: string, Required. The name of the CryptoKey associated with
-the CryptoKeyVersions. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A CryptoKeyVersion represents an individual cryptographic key, and the
-    # associated key material.
-    # 
-    # It can be used for cryptographic operations either directly, or via its
-    # parent CryptoKey, in which case the server will choose the appropriate
-    # version for the operation.
-  "state": "A String", # The current state of the CryptoKeyVersion.
-  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-  "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-      # for destruction. Only present if state is
-      # DESTROY_SCHEDULED.
-  "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-      # destroyed. Only present if state is
-      # DESTROYED.
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKeyVersion represents an individual cryptographic key, and the
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="destroy">destroy(name, body, x__xgafv=None)</code>
-  <pre>Schedule a CryptoKeyVersion for destruction.
-
-Upon calling this method, CryptoKeyVersion.state will be set to
-DESTROY_SCHEDULED
-and destroy_time will be set to a time 24
-hours in the future, at which point the state
-will be changed to
-DESTROYED, and the key
-material will be irrevocably destroyed.
-
-Before the destroy_time is reached,
-RestoreCryptoKeyVersion may be called to reverse the process.
-
-Args:
-  name: string, The resource name of the CryptoKeyVersion to destroy. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for KeyManagementService.DestroyCryptoKeyVersion.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKeyVersion represents an individual cryptographic key, and the
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Returns metadata for a given CryptoKeyVersion.
-
-Args:
-  name: string, The name of the CryptoKeyVersion to get. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKeyVersion represents an individual cryptographic key, and the
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists CryptoKeyVersions.
-
-Args:
-  parent: string, Required. The resource name of the CryptoKey to list, in the format
-`projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
-  pageSize: integer, Optional limit on the number of CryptoKeyVersions to
-include in the response. Further CryptoKeyVersions can
-subsequently be obtained by including the
-ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
-If unspecified, the server will pick an appropriate default.
-  pageToken: string, Optional pagination token, returned earlier via
-ListCryptoKeyVersionsResponse.next_page_token.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message for KeyManagementService.ListCryptoKeyVersions.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
-        # ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
-        # results.
-    "totalSize": 42, # The total number of CryptoKeyVersions that matched the
-        # query.
-    "cryptoKeyVersions": [ # The list of CryptoKeyVersions.
-      { # A CryptoKeyVersion represents an individual cryptographic key, and the
-          # associated key material.
-          #
-          # It can be used for cryptographic operations either directly, or via its
-          # parent CryptoKey, in which case the server will choose the appropriate
-          # version for the operation.
-        "state": "A String", # The current state of the CryptoKeyVersion.
-        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-            # for destruction. Only present if state is
-            # DESTROY_SCHEDULED.
-        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-            # destroyed. Only present if state is
-            # DESTROYED.
-      },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(name=None, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Update a CryptoKeyVersion's metadata.
-
-state may be changed between
-ENABLED and
-DISABLED using this
-method. See DestroyCryptoKeyVersion and RestoreCryptoKeyVersion to
-move between other states.
-
-Args:
-  name: string, Output only. The resource name for this CryptoKeyVersion in the format
-`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A CryptoKeyVersion represents an individual cryptographic key, and the
-    # associated key material.
-    # 
-    # It can be used for cryptographic operations either directly, or via its
-    # parent CryptoKey, in which case the server will choose the appropriate
-    # version for the operation.
-  "state": "A String", # The current state of the CryptoKeyVersion.
-  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-  "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-      # for destruction. Only present if state is
-      # DESTROY_SCHEDULED.
-  "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-      # destroyed. Only present if state is
-      # DESTROYED.
-}
-
-  updateMask: string, Required list of fields to be updated in this request.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKeyVersion represents an individual cryptographic key, and the
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="restore">restore(name, body, x__xgafv=None)</code>
-  <pre>Restore a CryptoKeyVersion in the
-DESTROY_SCHEDULED,
-state.
-
-Upon restoration of the CryptoKeyVersion, state
-will be set to DISABLED,
-and destroy_time will be cleared.
-
-Args:
-  name: string, The resource name of the CryptoKeyVersion to restore. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for KeyManagementService.RestoreCryptoKeyVersion.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKeyVersion represents an individual cryptographic key, and the
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html b/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html
deleted file mode 100644
index 0e4f179..0000000
--- a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html
+++ /dev/null
@@ -1,1445 +0,0 @@
-<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="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html">cryptoKeyVersions()</a></code>
-</p>
-<p class="firstline">Returns the cryptoKeyVersions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#create">create(parent=None, body, cryptoKeyId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Create a new CryptoKey within a KeyRing.</p>
-<p class="toc_element">
-  <code><a href="#decrypt">decrypt(name=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Decrypt data that was protected by Encrypt.</p>
-<p class="toc_element">
-  <code><a href="#encrypt">encrypt(name=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Encrypt data, so that it can only be recovered by a call to Decrypt.</p>
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns metadata for a given CryptoKey, as well as its</p>
-<p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the access control policy for a resource.</p>
-<p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists CryptoKeys.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(name=None, body, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Update a CryptoKey.</p>
-<p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
-<p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
-<p class="toc_element">
-  <code><a href="#updatePrimaryVersion">updatePrimaryVersion(name, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Update the version of a CryptoKey that will be used in Encrypt</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(parent=None, body, cryptoKeyId=None, x__xgafv=None)</code>
-  <pre>Create a new CryptoKey within a KeyRing.
-
-CryptoKey.purpose is required.
-
-Args:
-  parent: string, Required. The name of the KeyRing associated with the
-CryptoKeys. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A CryptoKey represents a logical key that can be used for cryptographic
-    # operations.
-    # 
-    # A CryptoKey is made up of one or more versions, which
-    # represent the actual key material used in cryptographic operations.
-  "name": "A String", # Output only. The resource name for this CryptoKey in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-  "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-      # automatically rotates a key. Must be at least one day.
-      # 
-      # If rotation_period is set, next_rotation_time must also be set.
-  "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-      # by Encrypt when this CryptoKey is given
-      # in EncryptRequest.name.
-      # 
-      # The CryptoKey's primary version can be updated via
-      # UpdateCryptoKeyPrimaryVersion.
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  },
-  "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-      # purpose is ENCRYPT_DECRYPT.
-  "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-  "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-      # 
-      # 1. Create a new version of this CryptoKey.
-      # 2. Mark the new version as primary.
-      # 
-      # Key rotations performed manually via
-      # CreateCryptoKeyVersion and
-      # UpdateCryptoKeyPrimaryVersion
-      # do not affect next_rotation_time.
-}
-
-  cryptoKeyId: string, Required. It must be unique within a KeyRing and match the regular
-expression `[a-zA-Z0-9_-]{1,63}`
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKey represents a logical key that can be used for cryptographic
-      # operations.
-      #
-      # A CryptoKey is made up of one or more versions, which
-      # represent the actual key material used in cryptographic operations.
-    "name": "A String", # Output only. The resource name for this CryptoKey in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-        # automatically rotates a key. Must be at least one day.
-        #
-        # If rotation_period is set, next_rotation_time must also be set.
-    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-        # by Encrypt when this CryptoKey is given
-        # in EncryptRequest.name.
-        #
-        # The CryptoKey's primary version can be updated via
-        # UpdateCryptoKeyPrimaryVersion.
-        # associated key material.
-        #
-        # It can be used for cryptographic operations either directly, or via its
-        # parent CryptoKey, in which case the server will choose the appropriate
-        # version for the operation.
-      "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-          # for destruction. Only present if state is
-          # DESTROY_SCHEDULED.
-      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-          # destroyed. Only present if state is
-          # DESTROYED.
-    },
-    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-        # purpose is ENCRYPT_DECRYPT.
-    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-        #
-        # 1. Create a new version of this CryptoKey.
-        # 2. Mark the new version as primary.
-        #
-        # Key rotations performed manually via
-        # CreateCryptoKeyVersion and
-        # UpdateCryptoKeyPrimaryVersion
-        # do not affect next_rotation_time.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="decrypt">decrypt(name=None, body, x__xgafv=None)</code>
-  <pre>Decrypt data that was protected by Encrypt.
-
-Args:
-  name: string, Required. The resource name of the CryptoKey to use for decryption.
-The server will choose the appropriate version. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for KeyManagementService.Decrypt.
-    "ciphertext": "A String", # Required. The encrypted data originally returned in
-        # EncryptResponse.ciphertext.
-    "additionalAuthenticatedData": "A String", # Optional data that must match the data originally supplied in
-        # EncryptRequest.additional_authenticated_data.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message for KeyManagementService.Decrypt.
-    "plaintext": "A String", # The decrypted data originally supplied in EncryptRequest.plaintext.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="encrypt">encrypt(name=None, body, x__xgafv=None)</code>
-  <pre>Encrypt data, so that it can only be recovered by a call to Decrypt.
-
-Args:
-  name: string, Required. The resource name of the CryptoKey or CryptoKeyVersion
-to use for encryption.
-
-If a CryptoKey is specified, the server will use its
-primary version. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for KeyManagementService.Encrypt.
-    "plaintext": "A String", # Required. The data to encrypt. Must be no larger than 64KiB.
-    "additionalAuthenticatedData": "A String", # Optional data that, if specified, must also be provided during decryption
-        # through DecryptRequest.additional_authenticated_data.  Must be no
-        # larger than 64KiB.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message for KeyManagementService.Encrypt.
-    "ciphertext": "A String", # The encrypted data.
-    "name": "A String", # The resource name of the CryptoKeyVersion used in encryption.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Returns metadata for a given CryptoKey, as well as its
-primary CryptoKeyVersion.
-
-Args:
-  name: string, The name of the CryptoKey to get. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKey represents a logical key that can be used for cryptographic
-      # operations.
-      #
-      # A CryptoKey is made up of one or more versions, which
-      # represent the actual key material used in cryptographic operations.
-    "name": "A String", # Output only. The resource name for this CryptoKey in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-        # automatically rotates a key. Must be at least one day.
-        #
-        # If rotation_period is set, next_rotation_time must also be set.
-    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-        # by Encrypt when this CryptoKey is given
-        # in EncryptRequest.name.
-        #
-        # The CryptoKey's primary version can be updated via
-        # UpdateCryptoKeyPrimaryVersion.
-        # associated key material.
-        #
-        # It can be used for cryptographic operations either directly, or via its
-        # parent CryptoKey, in which case the server will choose the appropriate
-        # version for the operation.
-      "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-          # for destruction. Only present if state is
-          # DESTROY_SCHEDULED.
-      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-          # destroyed. Only present if state is
-          # DESTROYED.
-    },
-    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-        # purpose is ENCRYPT_DECRYPT.
-    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-        #
-        # 1. Create a new version of this CryptoKey.
-        # 2. Mark the new version as primary.
-        #
-        # Key rotations performed manually via
-        # CreateCryptoKeyVersion and
-        # UpdateCryptoKeyPrimaryVersion
-        # do not affect next_rotation_time.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
-  <pre>Gets the access control policy for a resource.
-Returns an empty policy if the resource exists and does not have a policy
-set.
-
-Args:
-  resource: string, REQUIRED: The resource for which the policy is being requested.
-See the operation documentation for the appropriate value for this field. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines an Identity and Access Management (IAM) policy. It is used to
-      # specify access control policies for Cloud Platform resources.
-      #
-      #
-      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
-      # `members` to a `role`, where the members can be user accounts, Google groups,
-      # Google domains, and service accounts. A `role` is a named list of permissions
-      # defined by IAM.
-      #
-      # **Example**
-      #
-      #     {
-      #       "bindings": [
-      #         {
-      #           "role": "roles/owner",
-      #           "members": [
-      #             "user:mike@example.com",
-      #             "group:admins@example.com",
-      #             "domain:google.com",
-      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
-      #           ]
-      #         },
-      #         {
-      #           "role": "roles/viewer",
-      #           "members": ["user:sean@example.com"]
-      #         }
-      #       ]
-      #     }
-      #
-      # For a description of IAM and its features, see the
-      # [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
-          #
-          # If there are AuditConfigs for both `allServices` and a specific service,
-          # the union of the two AuditConfigs is used for that service: the log_types
-          # specified in each AuditConfig are enabled, and the exempted_members in each
-          # AuditConfig are exempted.
-          # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
-          #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
-          #           ]
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
-          #           ]
-          #         }
-          #       ]
-          #     }
-          #   ]
-          # }
-          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
-          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
-          # bar@gmail.com from DATA_WRITE logging.
-        "exemptedMembers": [
-          "A String",
-        ],
-        "auditLogConfigs": [ # The configuration for logging of each type of permission.
-            # Next ID: 4
-          { # Provides the configuration for logging a type of permissions.
-              # Example:
-              #
-              #     {
-              #       "audit_log_configs": [
-              #         {
-              #           "log_type": "DATA_READ",
-              #           "exempted_members": [
-              #             "user:foo@gmail.com"
-              #           ]
-              #         },
-              #         {
-              #           "log_type": "DATA_WRITE",
-              #         }
-              #       ]
-              #     }
-              #
-              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
-              # foo@gmail.com from DATA_READ logging.
-            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
-                # permission.
-                # Follows the same format of Binding.members.
-              "A String",
-            ],
-            "logType": "A String", # The log type that this config enables.
-          },
-        ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
-            # `allServices` is a special value that covers all services.
-      },
-    ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
-    "rules": [ # If more than one rule is specified, the rules are applied in the following
-        # manner:
-        # - All matching LOG rules are always applied.
-        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
-        #   granted.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if no rule applies, permission is denied.
-      { # A rule to be applied in a Policy.
-        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
-            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-            # The format for in and not_in entries is the same as for members in a
-            # Binding (see google/iam/v1/policy.proto).
-          "A String",
-        ],
-        "description": "A String", # Human-readable description of the rule.
-        "in": [ # If one or more 'in' clauses are specified, the rule matches if
-            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-          "A String",
-        ],
-        "action": "A String", # Required
-        "conditions": [ # Additional restrictions that must be met
-          { # A condition to be met.
-            "iam": "A String", # Trusted attributes supplied by the IAM system.
-            "svc": "A String", # Trusted attributes discharged by the service.
-            "value": "A String", # DEPRECATED. Use 'values' instead.
-            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
-                # the IAM system for access control.
-            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
-              "A String",
-            ],
-            "op": "A String", # An operator to apply the subject with.
-          },
-        ],
-        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
-            # that match the LOG action.
-          { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
-            "counter": { # Options for counters # Counter options.
-              "field": "A String", # The field value to attribute.
-              "metric": "A String", # The metric to update.
-            },
-            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
-            },
-            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
-            },
-          },
-        ],
-        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
-            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
-            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-          "A String",
-        ],
-      },
-    ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
-    "iamOwned": True or False,
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists CryptoKeys.
-
-Args:
-  parent: string, Required. The resource name of the KeyRing to list, in the format
-`projects/*/locations/*/keyRings/*`. (required)
-  pageSize: integer, Optional limit on the number of CryptoKeys to include in the
-response.  Further CryptoKeys can subsequently be obtained by
-including the ListCryptoKeysResponse.next_page_token in a subsequent
-request.  If unspecified, the server will pick an appropriate default.
-  pageToken: string, Optional pagination token, returned earlier via
-ListCryptoKeysResponse.next_page_token.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message for KeyManagementService.ListCryptoKeys.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
-        # ListCryptoKeysRequest.page_token to retrieve the next page of results.
-    "cryptoKeys": [ # The list of CryptoKeys.
-      { # A CryptoKey represents a logical key that can be used for cryptographic
-          # operations.
-          #
-          # A CryptoKey is made up of one or more versions, which
-          # represent the actual key material used in cryptographic operations.
-        "name": "A String", # Output only. The resource name for this CryptoKey in the format
-            # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-        "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-            # automatically rotates a key. Must be at least one day.
-            #
-            # If rotation_period is set, next_rotation_time must also be set.
-        "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-            # by Encrypt when this CryptoKey is given
-            # in EncryptRequest.name.
-            #
-            # The CryptoKey's primary version can be updated via
-            # UpdateCryptoKeyPrimaryVersion.
-            # associated key material.
-            #
-            # It can be used for cryptographic operations either directly, or via its
-            # parent CryptoKey, in which case the server will choose the appropriate
-            # version for the operation.
-          "state": "A String", # The current state of the CryptoKeyVersion.
-          "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-          "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-              # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-          "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-              # for destruction. Only present if state is
-              # DESTROY_SCHEDULED.
-          "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-              # destroyed. Only present if state is
-              # DESTROYED.
-        },
-        "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-            # purpose is ENCRYPT_DECRYPT.
-        "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-        "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-            #
-            # 1. Create a new version of this CryptoKey.
-            # 2. Mark the new version as primary.
-            #
-            # Key rotations performed manually via
-            # CreateCryptoKeyVersion and
-            # UpdateCryptoKeyPrimaryVersion
-            # do not affect next_rotation_time.
-      },
-    ],
-    "totalSize": 42, # The total number of CryptoKeys that matched the query.
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(name=None, body, updateMask=None, x__xgafv=None)</code>
-  <pre>Update a CryptoKey.
-
-Args:
-  name: string, Output only. The resource name for this CryptoKey in the format
-`projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A CryptoKey represents a logical key that can be used for cryptographic
-    # operations.
-    # 
-    # A CryptoKey is made up of one or more versions, which
-    # represent the actual key material used in cryptographic operations.
-  "name": "A String", # Output only. The resource name for this CryptoKey in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-  "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-      # automatically rotates a key. Must be at least one day.
-      # 
-      # If rotation_period is set, next_rotation_time must also be set.
-  "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-      # by Encrypt when this CryptoKey is given
-      # in EncryptRequest.name.
-      # 
-      # The CryptoKey's primary version can be updated via
-      # UpdateCryptoKeyPrimaryVersion.
-      # associated key material.
-      #
-      # It can be used for cryptographic operations either directly, or via its
-      # parent CryptoKey, in which case the server will choose the appropriate
-      # version for the operation.
-    "state": "A String", # The current state of the CryptoKeyVersion.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-    "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-        # for destruction. Only present if state is
-        # DESTROY_SCHEDULED.
-    "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-        # destroyed. Only present if state is
-        # DESTROYED.
-  },
-  "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-      # purpose is ENCRYPT_DECRYPT.
-  "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-  "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-      # 
-      # 1. Create a new version of this CryptoKey.
-      # 2. Mark the new version as primary.
-      # 
-      # Key rotations performed manually via
-      # CreateCryptoKeyVersion and
-      # UpdateCryptoKeyPrimaryVersion
-      # do not affect next_rotation_time.
-}
-
-  updateMask: string, Required list of fields to be updated in this request.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKey represents a logical key that can be used for cryptographic
-      # operations.
-      #
-      # A CryptoKey is made up of one or more versions, which
-      # represent the actual key material used in cryptographic operations.
-    "name": "A String", # Output only. The resource name for this CryptoKey in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-        # automatically rotates a key. Must be at least one day.
-        #
-        # If rotation_period is set, next_rotation_time must also be set.
-    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-        # by Encrypt when this CryptoKey is given
-        # in EncryptRequest.name.
-        #
-        # The CryptoKey's primary version can be updated via
-        # UpdateCryptoKeyPrimaryVersion.
-        # associated key material.
-        #
-        # It can be used for cryptographic operations either directly, or via its
-        # parent CryptoKey, in which case the server will choose the appropriate
-        # version for the operation.
-      "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-          # for destruction. Only present if state is
-          # DESTROY_SCHEDULED.
-      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-          # destroyed. Only present if state is
-          # DESTROYED.
-    },
-    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-        # purpose is ENCRYPT_DECRYPT.
-    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-        #
-        # 1. Create a new version of this CryptoKey.
-        # 2. Mark the new version as primary.
-        #
-        # Key rotations performed manually via
-        # CreateCryptoKeyVersion and
-        # UpdateCryptoKeyPrimaryVersion
-        # do not affect next_rotation_time.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
-  <pre>Sets the access control policy on the specified resource. Replaces any
-existing policy.
-
-Args:
-  resource: string, REQUIRED: The resource for which the policy is being specified.
-See the operation documentation for the appropriate value for this field. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for `SetIamPolicy` method.
-    "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
-        # the policy is limited to a few 10s of KB. An empty policy is a
-        # valid policy but certain Cloud Platform services (such as Projects)
-        # might reject them.
-        # specify access control policies for Cloud Platform resources.
-        #
-        #
-        # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
-        # `members` to a `role`, where the members can be user accounts, Google groups,
-        # Google domains, and service accounts. A `role` is a named list of permissions
-        # defined by IAM.
-        #
-        # **Example**
-        #
-        #     {
-        #       "bindings": [
-        #         {
-        #           "role": "roles/owner",
-        #           "members": [
-        #             "user:mike@example.com",
-        #             "group:admins@example.com",
-        #             "domain:google.com",
-        #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
-        #           ]
-        #         },
-        #         {
-        #           "role": "roles/viewer",
-        #           "members": ["user:sean@example.com"]
-        #         }
-        #       ]
-        #     }
-        #
-        # For a description of IAM and its features, see the
-        # [IAM developer's guide](https://cloud.google.com/iam).
-      "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-        { # Specifies the audit configuration for a service.
-            # It consists of which permission types are logged, and what identities, if
-            # any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
-            #
-            # If there are AuditConfigs for both `allServices` and a specific service,
-            # the union of the two AuditConfigs is used for that service: the log_types
-            # specified in each AuditConfig are enabled, and the exempted_members in each
-            # AuditConfig are exempted.
-            # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
-            #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
-            #           ]
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
-            #           ]
-            #         }
-            #       ]
-            #     }
-            #   ]
-            # }
-            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
-            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
-            # bar@gmail.com from DATA_WRITE logging.
-          "exemptedMembers": [
-            "A String",
-          ],
-          "auditLogConfigs": [ # The configuration for logging of each type of permission.
-              # Next ID: 4
-            { # Provides the configuration for logging a type of permissions.
-                # Example:
-                #
-                #     {
-                #       "audit_log_configs": [
-                #         {
-                #           "log_type": "DATA_READ",
-                #           "exempted_members": [
-                #             "user:foo@gmail.com"
-                #           ]
-                #         },
-                #         {
-                #           "log_type": "DATA_WRITE",
-                #         }
-                #       ]
-                #     }
-                #
-                # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
-                # foo@gmail.com from DATA_READ logging.
-              "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
-                  # permission.
-                  # Follows the same format of Binding.members.
-                "A String",
-              ],
-              "logType": "A String", # The log type that this config enables.
-            },
-          ],
-          "service": "A String", # Specifies a service that will be enabled for audit logging.
-              # For example, `resourcemanager`, `storage`, `compute`.
-              # `allServices` is a special value that covers all services.
-        },
-      ],
-      "version": 42, # Version of the `Policy`. The default version is 0.
-      "rules": [ # If more than one rule is specified, the rules are applied in the following
-          # manner:
-          # - All matching LOG rules are always applied.
-          # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
-          #   Logging will be applied if one or more matching rule requires logging.
-          # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
-          #   granted.
-          #   Logging will be applied if one or more matching rule requires logging.
-          # - Otherwise, if no rule applies, permission is denied.
-        { # A rule to be applied in a Policy.
-          "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
-              # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-              # The format for in and not_in entries is the same as for members in a
-              # Binding (see google/iam/v1/policy.proto).
-            "A String",
-          ],
-          "description": "A String", # Human-readable description of the rule.
-          "in": [ # If one or more 'in' clauses are specified, the rule matches if
-              # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-            "A String",
-          ],
-          "action": "A String", # Required
-          "conditions": [ # Additional restrictions that must be met
-            { # A condition to be met.
-              "iam": "A String", # Trusted attributes supplied by the IAM system.
-              "svc": "A String", # Trusted attributes discharged by the service.
-              "value": "A String", # DEPRECATED. Use 'values' instead.
-              "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
-                  # the IAM system for access control.
-              "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
-                "A String",
-              ],
-              "op": "A String", # An operator to apply the subject with.
-            },
-          ],
-          "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
-              # that match the LOG action.
-            { # Specifies what kind of log the caller must write
-                # Increment a streamz counter with the specified metric and field names.
-                #
-                # Metric names should start with a '/', generally be lowercase-only,
-                # and end in "_count". Field names should not contain an initial slash.
-                # The actual exported metric names will have "/iam/policy" prepended.
-                #
-                # Field names correspond to IAM request parameters and field values are
-                # their respective values.
-                #
-                # At present the only supported field names are
-                #    - "iam_principal", corresponding to IAMContext.principal;
-                #    - "" (empty string), resulting in one aggretated counter with no field.
-                #
-                # Examples:
-                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                #   ==> increment counter /iam/policy/backend_debug_access_count
-                #                         {iam_principal=[value of IAMContext.principal]}
-                #
-                # At this time we do not support:
-                # * multiple field names (though this may be supported in the future)
-                # * decrementing the counter
-                # * incrementing it by anything other than 1
-              "counter": { # Options for counters # Counter options.
-                "field": "A String", # The field value to attribute.
-                "metric": "A String", # The metric to update.
-              },
-              "dataAccess": { # Write a Data Access (Gin) log # Data access options.
-              },
-              "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
-              },
-            },
-          ],
-          "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
-              # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
-              # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-            "A String",
-          ],
-        },
-      ],
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-          # policy is overwritten blindly.
-      "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
-          # `bindings` with no members will result in an error.
-        { # Associates `members` with a `role`.
-          "role": "A String", # Role that is assigned to `members`.
-              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-              # Required
-          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-              # `members` can have the following values:
-              #
-              # * `allUsers`: A special identifier that represents anyone who is
-              #    on the internet; with or without a Google account.
-              #
-              # * `allAuthenticatedUsers`: A special identifier that represents anyone
-              #    who is authenticated with a Google account or a service account.
-              #
-              # * `user:{emailid}`: An email address that represents a specific Google
-              #    account. For example, `alice@gmail.com` or `joe@example.com`.
-              #
-              #
-              # * `serviceAccount:{emailid}`: An email address that represents a service
-              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-              #
-              # * `group:{emailid}`: An email address that represents a Google group.
-              #    For example, `admins@example.com`.
-              #
-              # * `domain:{domain}`: A Google Apps domain name that represents all the
-              #    users of that domain. For example, `google.com` or `example.com`.
-              #
-            "A String",
-          ],
-        },
-      ],
-      "iamOwned": True or False,
-    },
-    "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
-        # the fields in the mask will be modified. If no mask is provided, a default
-        # mask is used:
-        # paths: "bindings, etag"
-        # This field is only used by Cloud IAM.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines an Identity and Access Management (IAM) policy. It is used to
-      # specify access control policies for Cloud Platform resources.
-      #
-      #
-      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
-      # `members` to a `role`, where the members can be user accounts, Google groups,
-      # Google domains, and service accounts. A `role` is a named list of permissions
-      # defined by IAM.
-      #
-      # **Example**
-      #
-      #     {
-      #       "bindings": [
-      #         {
-      #           "role": "roles/owner",
-      #           "members": [
-      #             "user:mike@example.com",
-      #             "group:admins@example.com",
-      #             "domain:google.com",
-      #             "serviceAccount:my-other-app@appspot.gserviceaccount.com",
-      #           ]
-      #         },
-      #         {
-      #           "role": "roles/viewer",
-      #           "members": ["user:sean@example.com"]
-      #         }
-      #       ]
-      #     }
-      #
-      # For a description of IAM and its features, see the
-      # [IAM developer's guide](https://cloud.google.com/iam).
-    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
-          #
-          # If there are AuditConfigs for both `allServices` and a specific service,
-          # the union of the two AuditConfigs is used for that service: the log_types
-          # specified in each AuditConfig are enabled, and the exempted_members in each
-          # AuditConfig are exempted.
-          # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
-          #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
-          #           ]
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
-          #           ]
-          #         }
-          #       ]
-          #     }
-          #   ]
-          # }
-          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
-          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
-          # bar@gmail.com from DATA_WRITE logging.
-        "exemptedMembers": [
-          "A String",
-        ],
-        "auditLogConfigs": [ # The configuration for logging of each type of permission.
-            # Next ID: 4
-          { # Provides the configuration for logging a type of permissions.
-              # Example:
-              #
-              #     {
-              #       "audit_log_configs": [
-              #         {
-              #           "log_type": "DATA_READ",
-              #           "exempted_members": [
-              #             "user:foo@gmail.com"
-              #           ]
-              #         },
-              #         {
-              #           "log_type": "DATA_WRITE",
-              #         }
-              #       ]
-              #     }
-              #
-              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
-              # foo@gmail.com from DATA_READ logging.
-            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of
-                # permission.
-                # Follows the same format of Binding.members.
-              "A String",
-            ],
-            "logType": "A String", # The log type that this config enables.
-          },
-        ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
-            # `allServices` is a special value that covers all services.
-      },
-    ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
-    "rules": [ # If more than one rule is specified, the rules are applied in the following
-        # manner:
-        # - All matching LOG rules are always applied.
-        # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
-        #   granted.
-        #   Logging will be applied if one or more matching rule requires logging.
-        # - Otherwise, if no rule applies, permission is denied.
-      { # A rule to be applied in a Policy.
-        "notIn": [ # If one or more 'not_in' clauses are specified, the rule matches
-            # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
-            # The format for in and not_in entries is the same as for members in a
-            # Binding (see google/iam/v1/policy.proto).
-          "A String",
-        ],
-        "description": "A String", # Human-readable description of the rule.
-        "in": [ # If one or more 'in' clauses are specified, the rule matches if
-            # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
-          "A String",
-        ],
-        "action": "A String", # Required
-        "conditions": [ # Additional restrictions that must be met
-          { # A condition to be met.
-            "iam": "A String", # Trusted attributes supplied by the IAM system.
-            "svc": "A String", # Trusted attributes discharged by the service.
-            "value": "A String", # DEPRECATED. Use 'values' instead.
-            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses
-                # the IAM system for access control.
-            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
-              "A String",
-            ],
-            "op": "A String", # An operator to apply the subject with.
-          },
-        ],
-        "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
-            # that match the LOG action.
-          { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
-            "counter": { # Options for counters # Counter options.
-              "field": "A String", # The field value to attribute.
-              "metric": "A String", # The metric to update.
-            },
-            "dataAccess": { # Write a Data Access (Gin) log # Data access options.
-            },
-            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
-            },
-          },
-        ],
-        "permissions": [ # A permission is a string of form '<service>.<resource type>.<verb>'
-            # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
-            # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
-          "A String",
-        ],
-      },
-    ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
-    "iamOwned": True or False,
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
-  <pre>Returns permissions that a caller has on the specified resource.
-If the resource does not exist, this will return an empty set of
-permissions, not a NOT_FOUND error.
-
-Note: This operation is designed to be used for building permission-aware
-UIs and command-line tools, not for authorization checking. This operation
-may "fail open" without warning.
-
-Args:
-  resource: string, REQUIRED: The resource for which the policy detail is being requested.
-See the operation documentation for the appropriate value for this field. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for `TestIamPermissions` method.
-    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
-        # wildcards (such as '*' or 'storage.*') are not allowed. For more
-        # information see
-        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
-      "A String",
-    ],
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Response message for `TestIamPermissions` method.
-    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
-        # allowed.
-      "A String",
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="updatePrimaryVersion">updatePrimaryVersion(name, body, x__xgafv=None)</code>
-  <pre>Update the version of a CryptoKey that will be used in Encrypt
-
-Args:
-  name: string, The resource name of the CryptoKey to update. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.
-    "cryptoKeyVersionId": "A String", # The id of the child CryptoKeyVersion to use as primary.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A CryptoKey represents a logical key that can be used for cryptographic
-      # operations.
-      #
-      # A CryptoKey is made up of one or more versions, which
-      # represent the actual key material used in cryptographic operations.
-    "name": "A String", # Output only. The resource name for this CryptoKey in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
-    "rotationPeriod": "A String", # next_rotation_time will be advanced by this period when the service
-        # automatically rotates a key. Must be at least one day.
-        #
-        # If rotation_period is set, next_rotation_time must also be set.
-    "primary": { # A CryptoKeyVersion represents an individual cryptographic key, and the # Output only. A copy of the "primary" CryptoKeyVersion that will be used
-        # by Encrypt when this CryptoKey is given
-        # in EncryptRequest.name.
-        #
-        # The CryptoKey's primary version can be updated via
-        # UpdateCryptoKeyPrimaryVersion.
-        # associated key material.
-        #
-        # It can be used for cryptographic operations either directly, or via its
-        # parent CryptoKey, in which case the server will choose the appropriate
-        # version for the operation.
-      "state": "A String", # The current state of the CryptoKeyVersion.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
-      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
-          # for destruction. Only present if state is
-          # DESTROY_SCHEDULED.
-      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
-          # destroyed. Only present if state is
-          # DESTROYED.
-    },
-    "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
-        # purpose is ENCRYPT_DECRYPT.
-    "createTime": "A String", # Output only. The time at which this CryptoKey was created.
-    "nextRotationTime": "A String", # At next_rotation_time, the Key Management Service will automatically:
-        #
-        # 1. Create a new version of this CryptoKey.
-        # 2. Mark the new version as primary.
-        #
-        # Key rotations performed manually via
-        # CreateCryptoKeyVersion and
-        # UpdateCryptoKeyPrimaryVersion
-        # do not affect next_rotation_time.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudresourcemanager_v1.folders.html b/docs/dyn/cloudresourcemanager_v1.folders.html
index 59da546..c7174cc 100644
--- a/docs/dyn/cloudresourcemanager_v1.folders.html
+++ b/docs/dyn/cloudresourcemanager_v1.folders.html
@@ -78,21 +78,12 @@
   <code><a href="#clearOrgPolicy">clearOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Clears a `Policy` from a resource.</p>
 <p class="toc_element">
-  <code><a href="#clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Clears a `Policy` from a resource.</p>
-<p class="toc_element">
   <code><a href="#getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
 <p class="toc_element">
-  <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
-<p class="toc_element">
   <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a `Policy` on a resource.</p>
 <p class="toc_element">
-  <code><a href="#getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a `Policy` on a resource.</p>
-<p class="toc_element">
   <code><a href="#listAvailableOrgPolicyConstraints">listAvailableOrgPolicyConstraints(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists `Constraints` that could be applied on the specified resource.</p>
 <p class="toc_element">
@@ -107,9 +98,6 @@
 <p class="toc_element">
   <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
-<p class="toc_element">
-  <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="clearOrgPolicy">clearOrgPolicy(resource, body, x__xgafv=None)</code>
@@ -147,41 +135,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Clears a `Policy` from a resource.
-
-Args:
-  resource: string, Name of the resource for the `Policy` to clear. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the ClearOrgPolicy method.
-    "etag": "A String", # The current version, for concurrency control. Not sending an `etag`
-        # will cause the `Policy` to be cleared blindly.
-    "constraint": "A String", # Name of the `Constraint` of the `Policy` to clear.
-  }
-
-  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="getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</code>
   <pre>Gets the effective `Policy` on a resource. This is the result of merging
 `Policies` in the resource hierarchy. The returned `Policy` will not have
@@ -210,7 +163,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -240,8 +192,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -331,231 +283,11 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets the effective `Policy` on a resource. This is the result of merging
-`Policies` in the resource hierarchy. The returned `Policy` will not have
-an `etag`set because it is a computed `Policy` across multiple resources.
-
-Args:
-  resource: string, The name of the resource to start computing the effective `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetEffectiveOrgPolicy method.
-    "constraint": "A String", # The name of the `Constraint` to compute the effective `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
       "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
           # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
     },
     "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
         # resource.
@@ -603,6 +335,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -653,7 +386,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -683,8 +415,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -774,234 +506,11 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets a `Policy` on a resource.
-
-If no `Policy` is set on the resource, a `Policy` is returned with default
-values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
-`etag` value can be used with `SetOrgPolicy()` to create or update a
-`Policy` during read-modify-write.
-
-Args:
-  resource: string, Name of the resource the `Policy` is set on. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetOrgPolicy method.
-    "constraint": "A String", # Name of the `Constraint` to get the `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
       "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
           # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
     },
     "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
         # resource.
@@ -1049,6 +558,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1191,7 +701,6 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -1221,8 +730,8 @@
             # result in a failed request). If `all_values` is set to either `ALLOW` or
             # `DENY`, `allowed_values` and `denied_values` must be unset.
           "allValues": "A String", # The policy all_values state.
-          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-              # set for `allowed_values` and `all_values` is set to
+          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+              # set for `denied_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -1312,8 +821,8 @@
               # that matches the value specified in this `Policy`. If `suggested_value`
               # is not set, it will inherit the value specified higher in the hierarchy,
               # unless `inherit_from_parent` is `false`.
-          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-              # set for `denied_values` and `all_values` is set to
+          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+              # set for `allowed_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -1364,6 +873,7 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -1418,7 +928,6 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -1448,8 +957,8 @@
           # result in a failed request). If `all_values` is set to either `ALLOW` or
           # `DENY`, `allowed_values` and `denied_values` must be unset.
         "allValues": "A String", # The policy all_values state.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
+        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+            # set for `denied_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -1539,427 +1048,11 @@
             # that matches the value specified in this `Policy`. If `suggested_value`
             # is not set, it will inherit the value specified higher in the hierarchy,
             # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-      },
-      "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-          # resource.
-        "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-            # configuration is acceptable.
-            #
-            # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-            # with `constraint_default` set to `ALLOW`. A `Policy` for that
-            # `Constraint` exhibits the following behavior:
-            #   - If the `Policy` at this resource has enforced set to `false`, serial
-            #     port connection attempts will be allowed.
-            #   - If the `Policy` at this resource has enforced set to `true`, serial
-            #     port connection attempts will be refused.
-            #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-            #     connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource or anywhere higher in the
-            #     resource hierarchy, serial port connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource, but one exists higher in the
-            #     resource hierarchy, the behavior is as if the`Policy` were set at
-            #     this resource.
-            #
-            # The following examples demonstrate the different possible layerings:
-            #
-            # Example 1 (nearest `Constraint` wins):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has no `Policy` set.
-            # The constraint at `projects/bar` and `organizations/foo` will not be
-            # enforced.
-            #
-            # Example 2 (enforcement gets replaced):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has a `Policy` with:
-            #     {enforced: true}
-            # The constraint at `organizations/foo` is not enforced.
-            # The constraint at `projects/bar` is enforced.
-            #
-            # Example 3 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: true}
-            #   `projects/bar` has a `Policy` with:
-            #     {RestoreDefault: {}}
-            # The constraint at `organizations/foo` is enforced.
-            # The constraint at `projects/bar` is not enforced, because
-            # `constraint_default` for the `Constraint` is `ALLOW`.
-      },
-      "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-          # concurrency control.
-          #
-          # When the `Policy` is returned from either a `GetPolicy` or a
-          # `ListOrgPolicy` request, this `etag` indicates the version of the current
-          # `Policy` to use when executing a read-modify-write loop.
-          #
-          # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-          # `etag` will be unset.
-          #
-          # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-          # that was returned from a `GetOrgPolicy` request as part of a
-          # read-modify-write loop for concurrency control. Not setting the `etag`in a
-          # `SetOrgPolicy` request will result in an unconditional write of the
-          # `Policy`.
-    },
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Updates the specified `Policy` on the resource. Creates a new `Policy` for
-that `Constraint` on the resource if one does not exist.
-
-Not supplying an `etag` on the request `Policy` results in an unconditional
-write of the `Policy`.
-
-Args:
-  resource: string, Resource name of the resource to attach the `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the SetOrgPolicyRequest method.
-    "policy": { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` # `Policy` to set on the resource.
-        # for configurations of Cloud Platform resources.
-      "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-          # server, not specified by the caller, and represents the last time a call to
-          # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-          # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
-      "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-          # `constraints/serviceuser.services`.
-          #
-          # Immutable after creation.
-      "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-          # `Constraint` type.
-          # `constraint_default` enforcement behavior of the specific `Constraint` at
-          # this resource.
-          #
-          # Suppose that `constraint_default` is set to `ALLOW` for the
-          # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-          # foo.com sets a `Policy` at their Organization resource node that restricts
-          # the allowed service activations to deny all service activations. They
-          # could then set a `Policy` with the `policy_type` `restore_default` on
-          # several experimental projects, restoring the `constraint_default`
-          # enforcement of the `Constraint` for only those projects, allowing those
-          # projects to have all services activated.
-      },
-      "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-          # resource.
-          #
-          # A `ListPolicy` can define specific values that are allowed or denied by
-          # setting either the `allowed_values` or `denied_values` fields. It can also
-          # be used to allow or deny all values, by setting the `all_values` field. If
-          # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-          # or `denied_values` must be set (attempting to set both or neither will
-          # result in a failed request). If `all_values` is set to either `ALLOW` or
-          # `DENY`, `allowed_values` and `denied_values` must be unset.
-        "allValues": "A String", # The policy all_values state.
         "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
             # set for `allowed_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
-        "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-            #
-            # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-            # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-            # set to `true`, then the values from the effective `Policy` of the parent
-            # resource are inherited, meaning the values set in this `Policy` are
-            # added to the values inherited up the hierarchy.
-            #
-            # Setting `Policy` hierarchies that inherit both allowed values and denied
-            # values isn't recommended in most circumstances to keep the configuration
-            # simple and understandable. However, it is possible to set a `Policy` with
-            # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-            # In this case, the values that are allowed must be in `allowed_values` and
-            # not present in `denied_values`.
-            #
-            # For example, suppose you have a `Constraint`
-            # `constraints/serviceuser.services`, which has a `constraint_type` of
-            # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-            # Suppose that at the Organization level, a `Policy` is applied that
-            # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-            # `Policy` is applied to a project below the Organization that has
-            # `inherit_from_parent` set to `false` and field all_values set to DENY,
-            # then an attempt to activate any API will be denied.
-            #
-            # The following examples demonstrate different possible layerings:
-            #
-            # Example 1 (no inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-            #     {allowed_values: "E3" allowed_values: "E4"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E3`, and `E4`.
-            #
-            # Example 2 (inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {value: “E3” value: ”E4” inherit_from_parent: true}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-            #
-            # Example 3 (inheriting both allowed and denied values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: "E1" allowed_values: "E2"}
-            #   `projects/bar` has a `Policy` with:
-            #     {denied_values: "E1"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The value accepted at `projects/bar` is `E2`.
-            #
-            # Example 4 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {RestoreDefault: {}}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 5 (no policy inherits parent policy):
-            #   `organizations/foo` has no `Policy` set.
-            #   `projects/bar` has no `Policy` set.
-            # The accepted values at both levels are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 6 (ListConstraint allowing all):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: ALLOW}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # Any value is accepted at `projects/bar`.
-            #
-            # Example 7 (ListConstraint allowing none):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: DENY}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # No value is accepted at `projects/bar`.
-        "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-            # that matches the value specified in this `Policy`. If `suggested_value`
-            # is not set, it will inherit the value specified higher in the hierarchy,
-            # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
       },
       "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
           # resource.
@@ -2007,6 +1100,7 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2039,7 +1133,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2069,8 +1162,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2160,8 +1253,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2212,6 +1305,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
diff --git a/docs/dyn/cloudresourcemanager_v1.liens.html b/docs/dyn/cloudresourcemanager_v1.liens.html
index 854e26c..a78abd6 100644
--- a/docs/dyn/cloudresourcemanager_v1.liens.html
+++ b/docs/dyn/cloudresourcemanager_v1.liens.html
@@ -81,7 +81,7 @@
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Delete a Lien by `name`.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">List all Liens applied to the `parent` resource.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -201,7 +201,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>List all Liens applied to the `parent` resource.
 
 Callers of this method will require permission on the `parent` resource.
@@ -211,12 +211,12 @@
 Args:
   parent: string, The name of the resource to list all attached Liens.
 For example, `projects/1234`.
+  pageSize: integer, The maximum number of items to return. This is a suggestion for the server.
   pageToken: string, The `next_page_token` value returned from a previous List request, if any.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, The maximum number of items to return. This is a suggestion for the server.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/cloudresourcemanager_v1.operations.html b/docs/dyn/cloudresourcemanager_v1.operations.html
index dd1970c..af114fc 100644
--- a/docs/dyn/cloudresourcemanager_v1.operations.html
+++ b/docs/dyn/cloudresourcemanager_v1.operations.html
@@ -119,7 +119,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -142,7 +142,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
diff --git a/docs/dyn/cloudresourcemanager_v1.organizations.html b/docs/dyn/cloudresourcemanager_v1.organizations.html
index c9aae73..77a3304 100644
--- a/docs/dyn/cloudresourcemanager_v1.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v1.organizations.html
@@ -78,27 +78,18 @@
   <code><a href="#clearOrgPolicy">clearOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Clears a `Policy` from a resource.</p>
 <p class="toc_element">
-  <code><a href="#clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Clears a `Policy` from a resource.</p>
-<p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Fetches an Organization resource identified by the specified resource name.</p>
 <p class="toc_element">
   <code><a href="#getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
 <p class="toc_element">
-  <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
-<p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for an Organization resource. May be empty</p>
 <p class="toc_element">
   <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a `Policy` on a resource.</p>
 <p class="toc_element">
-  <code><a href="#getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a `Policy` on a resource.</p>
-<p class="toc_element">
   <code><a href="#listAvailableOrgPolicyConstraints">listAvailableOrgPolicyConstraints(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists `Constraints` that could be applied on the specified resource.</p>
 <p class="toc_element">
@@ -123,9 +114,6 @@
   <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
 <p class="toc_element">
-  <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
-<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified Organization.</p>
 <h3>Method Details</h3>
@@ -165,41 +153,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Clears a `Policy` from a resource.
-
-Args:
-  resource: string, Name of the resource for the `Policy` to clear. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the ClearOrgPolicy method.
-    "etag": "A String", # The current version, for concurrency control. Not sending an `etag`
-        # will cause the `Policy` to be cleared blindly.
-    "constraint": "A String", # Name of the `Constraint` of the `Policy` to clear.
-  }
-
-  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, x__xgafv=None)</code>
   <pre>Fetches an Organization resource identified by the specified resource name.
 
@@ -229,11 +182,11 @@
         # Assigned by the server, set to the primary domain of the G Suite
         # customer that owns the organization.
         # @OutputOnly
-    "lifecycleState": "A String", # The organization's current lifecycle state. Assigned by the server.
-        # @OutputOnly
     "name": "A String", # Output Only. The resource name of the organization. This is the
         # organization's relative path in the API. Its format is
         # "organizations/[organization_id]". For example, "organizations/1234".
+    "lifecycleState": "A String", # The organization's current lifecycle state. Assigned by the server.
+        # @OutputOnly
   }</pre>
 </div>
 
@@ -266,7 +219,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -296,8 +248,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -387,231 +339,11 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets the effective `Policy` on a resource. This is the result of merging
-`Policies` in the resource hierarchy. The returned `Policy` will not have
-an `etag`set because it is a computed `Policy` across multiple resources.
-
-Args:
-  resource: string, The name of the resource to start computing the effective `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetEffectiveOrgPolicy method.
-    "constraint": "A String", # The name of the `Constraint` to compute the effective `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
       "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
           # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
     },
     "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
         # resource.
@@ -659,6 +391,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -731,52 +464,89 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -824,39 +594,6 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -893,7 +630,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -923,8 +659,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -1014,234 +750,11 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets a `Policy` on a resource.
-
-If no `Policy` is set on the resource, a `Policy` is returned with default
-values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
-`etag` value can be used with `SetOrgPolicy()` to create or update a
-`Policy` during read-modify-write.
-
-Args:
-  resource: string, Name of the resource the `Policy` is set on. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetOrgPolicy method.
-    "constraint": "A String", # Name of the `Constraint` to get the `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
       "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
           # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
     },
     "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
         # resource.
@@ -1289,6 +802,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1431,7 +945,6 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -1461,8 +974,8 @@
             # result in a failed request). If `all_values` is set to either `ALLOW` or
             # `DENY`, `allowed_values` and `denied_values` must be unset.
           "allValues": "A String", # The policy all_values state.
-          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-              # set for `allowed_values` and `all_values` is set to
+          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+              # set for `denied_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -1552,8 +1065,8 @@
               # that matches the value specified in this `Policy`. If `suggested_value`
               # is not set, it will inherit the value specified higher in the hierarchy,
               # unless `inherit_from_parent` is `false`.
-          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-              # set for `denied_values` and `all_values` is set to
+          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+              # set for `allowed_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -1604,6 +1117,7 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -1703,11 +1217,11 @@
             # Assigned by the server, set to the primary domain of the G Suite
             # customer that owns the organization.
             # @OutputOnly
-        "lifecycleState": "A String", # The organization's current lifecycle state. Assigned by the server.
-            # @OutputOnly
         "name": "A String", # Output Only. The resource name of the organization. This is the
             # organization's relative path in the API. Its format is
             # "organizations/[organization_id]". For example, "organizations/1234".
+        "lifecycleState": "A String", # The organization's current lifecycle state. Assigned by the server.
+            # @OutputOnly
       },
     ],
   }</pre>
@@ -1774,52 +1288,89 @@
         #
         # For a description of IAM and its features, see the
         # [IAM developer's guide](https://cloud.google.com/iam).
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -1867,39 +1418,6 @@
           #
           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
           # policy is overwritten blindly.
-      "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
-          # `bindings` with no members will result in an error.
-        { # Associates `members` with a `role`.
-          "role": "A String", # Role that is assigned to `members`.
-              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-              # Required
-          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-              # `members` can have the following values:
-              #
-              # * `allUsers`: A special identifier that represents anyone who is
-              #    on the internet; with or without a Google account.
-              #
-              # * `allAuthenticatedUsers`: A special identifier that represents anyone
-              #    who is authenticated with a Google account or a service account.
-              #
-              # * `user:{emailid}`: An email address that represents a specific Google
-              #    account. For example, `alice@gmail.com` or `joe@example.com`.
-              #
-              #
-              # * `serviceAccount:{emailid}`: An email address that represents a service
-              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-              #
-              # * `group:{emailid}`: An email address that represents a Google group.
-              #    For example, `admins@example.com`.
-              #
-              # * `domain:{domain}`: A Google Apps domain name that represents all the
-              #    users of that domain. For example, `google.com` or `example.com`.
-              #
-            "A String",
-          ],
-        },
-      ],
       "version": 42, # Version of the `Policy`. The default version is 0.
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
@@ -1948,52 +1466,89 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -2041,39 +1596,6 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -2098,7 +1620,6 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2128,8 +1649,8 @@
           # result in a failed request). If `all_values` is set to either `ALLOW` or
           # `DENY`, `allowed_values` and `denied_values` must be unset.
         "allValues": "A String", # The policy all_values state.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
+        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+            # set for `denied_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -2219,427 +1740,11 @@
             # that matches the value specified in this `Policy`. If `suggested_value`
             # is not set, it will inherit the value specified higher in the hierarchy,
             # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-      },
-      "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-          # resource.
-        "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-            # configuration is acceptable.
-            #
-            # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-            # with `constraint_default` set to `ALLOW`. A `Policy` for that
-            # `Constraint` exhibits the following behavior:
-            #   - If the `Policy` at this resource has enforced set to `false`, serial
-            #     port connection attempts will be allowed.
-            #   - If the `Policy` at this resource has enforced set to `true`, serial
-            #     port connection attempts will be refused.
-            #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-            #     connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource or anywhere higher in the
-            #     resource hierarchy, serial port connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource, but one exists higher in the
-            #     resource hierarchy, the behavior is as if the`Policy` were set at
-            #     this resource.
-            #
-            # The following examples demonstrate the different possible layerings:
-            #
-            # Example 1 (nearest `Constraint` wins):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has no `Policy` set.
-            # The constraint at `projects/bar` and `organizations/foo` will not be
-            # enforced.
-            #
-            # Example 2 (enforcement gets replaced):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has a `Policy` with:
-            #     {enforced: true}
-            # The constraint at `organizations/foo` is not enforced.
-            # The constraint at `projects/bar` is enforced.
-            #
-            # Example 3 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: true}
-            #   `projects/bar` has a `Policy` with:
-            #     {RestoreDefault: {}}
-            # The constraint at `organizations/foo` is enforced.
-            # The constraint at `projects/bar` is not enforced, because
-            # `constraint_default` for the `Constraint` is `ALLOW`.
-      },
-      "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-          # concurrency control.
-          #
-          # When the `Policy` is returned from either a `GetPolicy` or a
-          # `ListOrgPolicy` request, this `etag` indicates the version of the current
-          # `Policy` to use when executing a read-modify-write loop.
-          #
-          # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-          # `etag` will be unset.
-          #
-          # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-          # that was returned from a `GetOrgPolicy` request as part of a
-          # read-modify-write loop for concurrency control. Not setting the `etag`in a
-          # `SetOrgPolicy` request will result in an unconditional write of the
-          # `Policy`.
-    },
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Updates the specified `Policy` on the resource. Creates a new `Policy` for
-that `Constraint` on the resource if one does not exist.
-
-Not supplying an `etag` on the request `Policy` results in an unconditional
-write of the `Policy`.
-
-Args:
-  resource: string, Resource name of the resource to attach the `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the SetOrgPolicyRequest method.
-    "policy": { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` # `Policy` to set on the resource.
-        # for configurations of Cloud Platform resources.
-      "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-          # server, not specified by the caller, and represents the last time a call to
-          # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-          # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
-      "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-          # `constraints/serviceuser.services`.
-          #
-          # Immutable after creation.
-      "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-          # `Constraint` type.
-          # `constraint_default` enforcement behavior of the specific `Constraint` at
-          # this resource.
-          #
-          # Suppose that `constraint_default` is set to `ALLOW` for the
-          # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-          # foo.com sets a `Policy` at their Organization resource node that restricts
-          # the allowed service activations to deny all service activations. They
-          # could then set a `Policy` with the `policy_type` `restore_default` on
-          # several experimental projects, restoring the `constraint_default`
-          # enforcement of the `Constraint` for only those projects, allowing those
-          # projects to have all services activated.
-      },
-      "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-          # resource.
-          #
-          # A `ListPolicy` can define specific values that are allowed or denied by
-          # setting either the `allowed_values` or `denied_values` fields. It can also
-          # be used to allow or deny all values, by setting the `all_values` field. If
-          # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-          # or `denied_values` must be set (attempting to set both or neither will
-          # result in a failed request). If `all_values` is set to either `ALLOW` or
-          # `DENY`, `allowed_values` and `denied_values` must be unset.
-        "allValues": "A String", # The policy all_values state.
         "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
             # set for `allowed_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
-        "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-            #
-            # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-            # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-            # set to `true`, then the values from the effective `Policy` of the parent
-            # resource are inherited, meaning the values set in this `Policy` are
-            # added to the values inherited up the hierarchy.
-            #
-            # Setting `Policy` hierarchies that inherit both allowed values and denied
-            # values isn't recommended in most circumstances to keep the configuration
-            # simple and understandable. However, it is possible to set a `Policy` with
-            # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-            # In this case, the values that are allowed must be in `allowed_values` and
-            # not present in `denied_values`.
-            #
-            # For example, suppose you have a `Constraint`
-            # `constraints/serviceuser.services`, which has a `constraint_type` of
-            # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-            # Suppose that at the Organization level, a `Policy` is applied that
-            # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-            # `Policy` is applied to a project below the Organization that has
-            # `inherit_from_parent` set to `false` and field all_values set to DENY,
-            # then an attempt to activate any API will be denied.
-            #
-            # The following examples demonstrate different possible layerings:
-            #
-            # Example 1 (no inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-            #     {allowed_values: "E3" allowed_values: "E4"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E3`, and `E4`.
-            #
-            # Example 2 (inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {value: “E3” value: ”E4” inherit_from_parent: true}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-            #
-            # Example 3 (inheriting both allowed and denied values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: "E1" allowed_values: "E2"}
-            #   `projects/bar` has a `Policy` with:
-            #     {denied_values: "E1"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The value accepted at `projects/bar` is `E2`.
-            #
-            # Example 4 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {RestoreDefault: {}}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 5 (no policy inherits parent policy):
-            #   `organizations/foo` has no `Policy` set.
-            #   `projects/bar` has no `Policy` set.
-            # The accepted values at both levels are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 6 (ListConstraint allowing all):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: ALLOW}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # Any value is accepted at `projects/bar`.
-            #
-            # Example 7 (ListConstraint allowing none):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: DENY}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # No value is accepted at `projects/bar`.
-        "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-            # that matches the value specified in this `Policy`. If `suggested_value`
-            # is not set, it will inherit the value specified higher in the hierarchy,
-            # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
       },
       "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
           # resource.
@@ -2687,6 +1792,7 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2719,7 +1825,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2749,8 +1854,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2840,8 +1945,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2892,6 +1997,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
diff --git a/docs/dyn/cloudresourcemanager_v1.projects.html b/docs/dyn/cloudresourcemanager_v1.projects.html
index 4c490e5..68af8f3 100644
--- a/docs/dyn/cloudresourcemanager_v1.projects.html
+++ b/docs/dyn/cloudresourcemanager_v1.projects.html
@@ -78,9 +78,6 @@
   <code><a href="#clearOrgPolicy">clearOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Clears a `Policy` from a resource.</p>
 <p class="toc_element">
-  <code><a href="#clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Clears a `Policy` from a resource.</p>
-<p class="toc_element">
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Request that a new Project be created. The result is an Operation which</p>
 <p class="toc_element">
@@ -96,18 +93,12 @@
   <code><a href="#getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
 <p class="toc_element">
-  <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
-<p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns the IAM access control policy for the specified Project.</p>
 <p class="toc_element">
   <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a `Policy` on a resource.</p>
 <p class="toc_element">
-  <code><a href="#getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a `Policy` on a resource.</p>
-<p class="toc_element">
   <code><a href="#list">list(pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists Projects that are visible to the user and satisfy the</p>
 <p class="toc_element">
@@ -132,9 +123,6 @@
   <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
 <p class="toc_element">
-  <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
-<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified Project.</p>
 <p class="toc_element">
@@ -180,41 +168,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Clears a `Policy` from a resource.
-
-Args:
-  resource: string, Name of the resource for the `Policy` to clear. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the ClearOrgPolicy method.
-    "etag": "A String", # The current version, for concurrency control. Not sending an `etag`
-        # will cause the `Policy` to be cleared blindly.
-    "constraint": "A String", # Name of the `Constraint` of the `Policy` to clear.
-  }
-
-  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="create">create(body, x__xgafv=None)</code>
   <pre>Request that a new Project be created. The result is an Operation which
 can be used to track the creation process. It is automatically deleted
@@ -230,66 +183,66 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # container for ACLs, APIs, App Engine Apps, VMs, and other
-      # Google Cloud Platform resources.
-    "name": "A String", # The user-assigned display name of the Project.
-        # It must be 4 to 30 characters.
-        # Allowed characters are: lowercase and uppercase letters, numbers,
-        # hyphen, single-quote, double-quote, space, and exclamation point.
-        # 
-        # Example: <code>My Project</code>
-        # Read-write.
-    "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
-        # 
-        # The only supported parent type is "organization". Once set, the parent
-        # cannot be modified. The `parent` can be set on creation or using the
-        # `UpdateProject` method; the end user must have the
-        # `resourcemanager.projects.create` permission on the parent.
-        # 
-        # Read-write.
-        # Cloud Platform is a generic term for something you (a developer) may want to
-        # interact with through one of our API's. Some examples are an App Engine app,
-        # a Compute Engine instance, a Cloud SQL database, and so on.
-      "type": "A String", # Required field representing the resource type this id is for.
-          # At present, the valid types are: "organization"
-      "id": "A String", # Required field for the type-specific id. This should correspond to the id
-          # used in the type-specific API's.
-    },
-    "projectId": "A String", # The unique, user-assigned ID of the Project.
-        # It must be 6 to 30 lowercase letters, digits, or hyphens.
-        # It must start with a letter.
-        # Trailing hyphens are prohibited.
-        # 
-        # Example: <code>tokyo-rain-123</code>
-        # Read-only after creation.
-    "labels": { # The labels associated with this Project.
-        # 
-        # Label keys must be between 1 and 63 characters long and must conform
-        # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
-        # 
-        # Label values must be between 0 and 63 characters long and must conform
-        # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
-        # 
-        # No more than 256 labels can be associated with a given resource.
-        # 
-        # Clients should store labels in a representation such as JSON that does not
-        # depend on specific characters being disallowed.
-        # 
-        # Example: <code>"environment" : "dev"</code>
-        # Read-write.
-      "a_key": "A String",
-    },
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        # 
-        # Example: <code>415104041262</code>
-        # Read-only.
-    "lifecycleState": "A String", # The Project lifecycle state.
-        # 
-        # Read-only.
-    "createTime": "A String", # Creation time.
-        # 
-        # Read-only.
-  }
+    # container for ACLs, APIs, App Engine Apps, VMs, and other
+    # Google Cloud Platform resources.
+  "name": "A String", # The user-assigned display name of the Project.
+      # It must be 4 to 30 characters.
+      # Allowed characters are: lowercase and uppercase letters, numbers,
+      # hyphen, single-quote, double-quote, space, and exclamation point.
+      # 
+      # Example: <code>My Project</code>
+      # Read-write.
+  "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
+      # 
+      # The only supported parent type is "organization". Once set, the parent
+      # cannot be modified. The `parent` can be set on creation or using the
+      # `UpdateProject` method; the end user must have the
+      # `resourcemanager.projects.create` permission on the parent.
+      # 
+      # Read-write.
+      # Cloud Platform is a generic term for something you (a developer) may want to
+      # interact with through one of our API's. Some examples are an App Engine app,
+      # a Compute Engine instance, a Cloud SQL database, and so on.
+    "type": "A String", # Required field representing the resource type this id is for.
+        # At present, the valid types are: "organization"
+    "id": "A String", # Required field for the type-specific id. This should correspond to the id
+        # used in the type-specific API's.
+  },
+  "projectId": "A String", # The unique, user-assigned ID of the Project.
+      # It must be 6 to 30 lowercase letters, digits, or hyphens.
+      # It must start with a letter.
+      # Trailing hyphens are prohibited.
+      # 
+      # Example: <code>tokyo-rain-123</code>
+      # Read-only after creation.
+  "labels": { # The labels associated with this Project.
+      # 
+      # Label keys must be between 1 and 63 characters long and must conform
+      # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
+      # 
+      # Label values must be between 0 and 63 characters long and must conform
+      # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
+      # 
+      # No more than 256 labels can be associated with a given resource.
+      # 
+      # Clients should store labels in a representation such as JSON that does not
+      # depend on specific characters being disallowed.
+      # 
+      # Example: <code>"environment" : "dev"</code>
+      # Read-write.
+    "a_key": "A String",
+  },
+  "createTime": "A String", # Creation time.
+      # 
+      # Read-only.
+  "lifecycleState": "A String", # The Project lifecycle state.
+      # 
+      # Read-only.
+  "projectNumber": "A String", # The number uniquely identifying the project.
+      # 
+      # Example: <code>415104041262</code>
+      # Read-only.
+}
 
   x__xgafv: string, V1 error format.
     Allowed values
@@ -324,7 +277,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -347,7 +300,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -460,66 +413,66 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-        # container for ACLs, APIs, App Engine Apps, VMs, and other
-        # Google Cloud Platform resources.
-      "name": "A String", # The user-assigned display name of the Project.
-          # It must be 4 to 30 characters.
-          # Allowed characters are: lowercase and uppercase letters, numbers,
-          # hyphen, single-quote, double-quote, space, and exclamation point.
-          #
-          # Example: <code>My Project</code>
-          # Read-write.
-      "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
-          #
-          # The only supported parent type is "organization". Once set, the parent
-          # cannot be modified. The `parent` can be set on creation or using the
-          # `UpdateProject` method; the end user must have the
-          # `resourcemanager.projects.create` permission on the parent.
-          #
-          # Read-write.
-          # Cloud Platform is a generic term for something you (a developer) may want to
-          # interact with through one of our API's. Some examples are an App Engine app,
-          # a Compute Engine instance, a Cloud SQL database, and so on.
-        "type": "A String", # Required field representing the resource type this id is for.
-            # At present, the valid types are: "organization"
-        "id": "A String", # Required field for the type-specific id. This should correspond to the id
-            # used in the type-specific API's.
-      },
-      "projectId": "A String", # The unique, user-assigned ID of the Project.
-          # It must be 6 to 30 lowercase letters, digits, or hyphens.
-          # It must start with a letter.
-          # Trailing hyphens are prohibited.
-          #
-          # Example: <code>tokyo-rain-123</code>
-          # Read-only after creation.
-      "labels": { # The labels associated with this Project.
-          #
-          # Label keys must be between 1 and 63 characters long and must conform
-          # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
-          #
-          # Label values must be between 0 and 63 characters long and must conform
-          # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
-          #
-          # No more than 256 labels can be associated with a given resource.
-          #
-          # Clients should store labels in a representation such as JSON that does not
-          # depend on specific characters being disallowed.
-          #
-          # Example: <code>"environment" : "dev"</code>
-          # Read-write.
-        "a_key": "A String",
-      },
-      "projectNumber": "A String", # The number uniquely identifying the project.
-          #
-          # Example: <code>415104041262</code>
-          # Read-only.
-      "lifecycleState": "A String", # The Project lifecycle state.
-          #
-          # Read-only.
-      "createTime": "A String", # Creation time.
-          #
-          # Read-only.
-    }</pre>
+      # container for ACLs, APIs, App Engine Apps, VMs, and other
+      # Google Cloud Platform resources.
+    "name": "A String", # The user-assigned display name of the Project.
+        # It must be 4 to 30 characters.
+        # Allowed characters are: lowercase and uppercase letters, numbers,
+        # hyphen, single-quote, double-quote, space, and exclamation point.
+        #
+        # Example: <code>My Project</code>
+        # Read-write.
+    "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
+        #
+        # The only supported parent type is "organization". Once set, the parent
+        # cannot be modified. The `parent` can be set on creation or using the
+        # `UpdateProject` method; the end user must have the
+        # `resourcemanager.projects.create` permission on the parent.
+        #
+        # Read-write.
+        # Cloud Platform is a generic term for something you (a developer) may want to
+        # interact with through one of our API's. Some examples are an App Engine app,
+        # a Compute Engine instance, a Cloud SQL database, and so on.
+      "type": "A String", # Required field representing the resource type this id is for.
+          # At present, the valid types are: "organization"
+      "id": "A String", # Required field for the type-specific id. This should correspond to the id
+          # used in the type-specific API's.
+    },
+    "projectId": "A String", # The unique, user-assigned ID of the Project.
+        # It must be 6 to 30 lowercase letters, digits, or hyphens.
+        # It must start with a letter.
+        # Trailing hyphens are prohibited.
+        #
+        # Example: <code>tokyo-rain-123</code>
+        # Read-only after creation.
+    "labels": { # The labels associated with this Project.
+        #
+        # Label keys must be between 1 and 63 characters long and must conform
+        # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
+        #
+        # Label values must be between 0 and 63 characters long and must conform
+        # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
+        #
+        # No more than 256 labels can be associated with a given resource.
+        #
+        # Clients should store labels in a representation such as JSON that does not
+        # depend on specific characters being disallowed.
+        #
+        # Example: <code>"environment" : "dev"</code>
+        # Read-write.
+      "a_key": "A String",
+    },
+    "createTime": "A String", # Creation time.
+        #
+        # Read-only.
+    "lifecycleState": "A String", # The Project lifecycle state.
+        #
+        # Read-only.
+    "projectNumber": "A String", # The number uniquely identifying the project.
+        #
+        # Example: <code>415104041262</code>
+        # Read-only.
+  }</pre>
 </div>
 
 <div class="method">
@@ -597,7 +550,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -627,8 +579,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -718,231 +670,11 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets the effective `Policy` on a resource. This is the result of merging
-`Policies` in the resource hierarchy. The returned `Policy` will not have
-an `etag`set because it is a computed `Policy` across multiple resources.
-
-Args:
-  resource: string, The name of the resource to start computing the effective `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetEffectiveOrgPolicy method.
-    "constraint": "A String", # The name of the `Constraint` to compute the effective `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
       "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
           # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
     },
     "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
         # resource.
@@ -990,6 +722,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1061,52 +794,89 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -1154,39 +924,6 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -1223,7 +960,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1253,8 +989,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -1344,234 +1080,11 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets a `Policy` on a resource.
-
-If no `Policy` is set on the resource, a `Policy` is returned with default
-values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
-`etag` value can be used with `SetOrgPolicy()` to create or update a
-`Policy` during read-modify-write.
-
-Args:
-  resource: string, Name of the resource the `Policy` is set on. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetOrgPolicy method.
-    "constraint": "A String", # Name of the `Constraint` to get the `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
       "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
           # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
     },
     "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
         # resource.
@@ -1619,6 +1132,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1660,7 +1174,7 @@
 
 |Filter|Description|
 |------|-----------|
-|name:*|The project has a name.|
+|name:how*|The project's name starts with "how".|
 |name:Howl|The project's name is `Howl` or `howl`.|
 |name:HOWL|Equivalent to above.|
 |NAME:howl|Equivalent to above.|
@@ -1703,66 +1217,66 @@
     "projects": [ # The list of Projects that matched the list filter. This list can
         # be paginated.
       { # A Project is a high-level Google Cloud Platform entity.  It is a
-            # container for ACLs, APIs, App Engine Apps, VMs, and other
-            # Google Cloud Platform resources.
-          "name": "A String", # The user-assigned display name of the Project.
-              # It must be 4 to 30 characters.
-              # Allowed characters are: lowercase and uppercase letters, numbers,
-              # hyphen, single-quote, double-quote, space, and exclamation point.
-              #
-              # Example: <code>My Project</code>
-              # Read-write.
-          "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
-              #
-              # The only supported parent type is "organization". Once set, the parent
-              # cannot be modified. The `parent` can be set on creation or using the
-              # `UpdateProject` method; the end user must have the
-              # `resourcemanager.projects.create` permission on the parent.
-              #
-              # Read-write.
-              # Cloud Platform is a generic term for something you (a developer) may want to
-              # interact with through one of our API's. Some examples are an App Engine app,
-              # a Compute Engine instance, a Cloud SQL database, and so on.
-            "type": "A String", # Required field representing the resource type this id is for.
-                # At present, the valid types are: "organization"
-            "id": "A String", # Required field for the type-specific id. This should correspond to the id
-                # used in the type-specific API's.
-          },
-          "projectId": "A String", # The unique, user-assigned ID of the Project.
-              # It must be 6 to 30 lowercase letters, digits, or hyphens.
-              # It must start with a letter.
-              # Trailing hyphens are prohibited.
-              #
-              # Example: <code>tokyo-rain-123</code>
-              # Read-only after creation.
-          "labels": { # The labels associated with this Project.
-              #
-              # Label keys must be between 1 and 63 characters long and must conform
-              # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
-              #
-              # Label values must be between 0 and 63 characters long and must conform
-              # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
-              #
-              # No more than 256 labels can be associated with a given resource.
-              #
-              # Clients should store labels in a representation such as JSON that does not
-              # depend on specific characters being disallowed.
-              #
-              # Example: <code>"environment" : "dev"</code>
-              # Read-write.
-            "a_key": "A String",
-          },
-          "projectNumber": "A String", # The number uniquely identifying the project.
-              #
-              # Example: <code>415104041262</code>
-              # Read-only.
-          "lifecycleState": "A String", # The Project lifecycle state.
-              #
-              # Read-only.
-          "createTime": "A String", # Creation time.
-              #
-              # Read-only.
+          # container for ACLs, APIs, App Engine Apps, VMs, and other
+          # Google Cloud Platform resources.
+        "name": "A String", # The user-assigned display name of the Project.
+            # It must be 4 to 30 characters.
+            # Allowed characters are: lowercase and uppercase letters, numbers,
+            # hyphen, single-quote, double-quote, space, and exclamation point.
+            #
+            # Example: <code>My Project</code>
+            # Read-write.
+        "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
+            #
+            # The only supported parent type is "organization". Once set, the parent
+            # cannot be modified. The `parent` can be set on creation or using the
+            # `UpdateProject` method; the end user must have the
+            # `resourcemanager.projects.create` permission on the parent.
+            #
+            # Read-write.
+            # Cloud Platform is a generic term for something you (a developer) may want to
+            # interact with through one of our API's. Some examples are an App Engine app,
+            # a Compute Engine instance, a Cloud SQL database, and so on.
+          "type": "A String", # Required field representing the resource type this id is for.
+              # At present, the valid types are: "organization"
+          "id": "A String", # Required field for the type-specific id. This should correspond to the id
+              # used in the type-specific API's.
         },
+        "projectId": "A String", # The unique, user-assigned ID of the Project.
+            # It must be 6 to 30 lowercase letters, digits, or hyphens.
+            # It must start with a letter.
+            # Trailing hyphens are prohibited.
+            #
+            # Example: <code>tokyo-rain-123</code>
+            # Read-only after creation.
+        "labels": { # The labels associated with this Project.
+            #
+            # Label keys must be between 1 and 63 characters long and must conform
+            # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
+            #
+            # Label values must be between 0 and 63 characters long and must conform
+            # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
+            #
+            # No more than 256 labels can be associated with a given resource.
+            #
+            # Clients should store labels in a representation such as JSON that does not
+            # depend on specific characters being disallowed.
+            #
+            # Example: <code>"environment" : "dev"</code>
+            # Read-write.
+          "a_key": "A String",
+        },
+        "createTime": "A String", # Creation time.
+            #
+            # Read-only.
+        "lifecycleState": "A String", # The Project lifecycle state.
+            #
+            # Read-only.
+        "projectNumber": "A String", # The number uniquely identifying the project.
+            #
+            # Example: <code>415104041262</code>
+            # Read-only.
+      },
     ],
   }</pre>
 </div>
@@ -1891,7 +1405,6 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -1921,8 +1434,8 @@
             # result in a failed request). If `all_values` is set to either `ALLOW` or
             # `DENY`, `allowed_values` and `denied_values` must be unset.
           "allValues": "A String", # The policy all_values state.
-          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-              # set for `allowed_values` and `all_values` is set to
+          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+              # set for `denied_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -2012,8 +1525,8 @@
               # that matches the value specified in this `Policy`. If `suggested_value`
               # is not set, it will inherit the value specified higher in the hierarchy,
               # unless `inherit_from_parent` is `false`.
-          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-              # set for `denied_values` and `all_values` is set to
+          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+              # set for `allowed_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -2064,6 +1577,7 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -2194,52 +1708,89 @@
         #
         # For a description of IAM and its features, see the
         # [IAM developer's guide](https://cloud.google.com/iam).
+      "bindings": [ # Associates a list of `members` to a `role`.
+          # Multiple `bindings` must not be specified for the same `role`.
+          # `bindings` with no members will result in an error.
+        { # Associates `members` with a `role`.
+          "role": "A String", # Role that is assigned to `members`.
+              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+              # Required
+          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+              # `members` can have the following values:
+              #
+              # * `allUsers`: A special identifier that represents anyone who is
+              #    on the internet; with or without a Google account.
+              #
+              # * `allAuthenticatedUsers`: A special identifier that represents anyone
+              #    who is authenticated with a Google account or a service account.
+              #
+              # * `user:{emailid}`: An email address that represents a specific Google
+              #    account. For example, `alice@gmail.com` or `joe@example.com`.
+              #
+              #
+              # * `serviceAccount:{emailid}`: An email address that represents a service
+              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+              #
+              # * `group:{emailid}`: An email address that represents a Google group.
+              #    For example, `admins@example.com`.
+              #
+              #
+              # * `domain:{domain}`: A Google Apps domain name that represents all the
+              #    users of that domain. For example, `google.com` or `example.com`.
+              #
+            "A String",
+          ],
+        },
+      ],
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -2287,39 +1838,6 @@
           #
           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
           # policy is overwritten blindly.
-      "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
-          # `bindings` with no members will result in an error.
-        { # Associates `members` with a `role`.
-          "role": "A String", # Role that is assigned to `members`.
-              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-              # Required
-          "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-              # `members` can have the following values:
-              #
-              # * `allUsers`: A special identifier that represents anyone who is
-              #    on the internet; with or without a Google account.
-              #
-              # * `allAuthenticatedUsers`: A special identifier that represents anyone
-              #    who is authenticated with a Google account or a service account.
-              #
-              # * `user:{emailid}`: An email address that represents a specific Google
-              #    account. For example, `alice@gmail.com` or `joe@example.com`.
-              #
-              #
-              # * `serviceAccount:{emailid}`: An email address that represents a service
-              #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-              #
-              # * `group:{emailid}`: An email address that represents a Google group.
-              #    For example, `admins@example.com`.
-              #
-              # * `domain:{domain}`: A Google Apps domain name that represents all the
-              #    users of that domain. For example, `google.com` or `example.com`.
-              #
-            "A String",
-          ],
-        },
-      ],
       "version": 42, # Version of the `Policy`. The default version is 0.
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
@@ -2368,52 +1886,89 @@
       #
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
+    "bindings": [ # Associates a list of `members` to a `role`.
+        # Multiple `bindings` must not be specified for the same `role`.
+        # `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`.
+            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+            # Required
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
+            # `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is
+            #    on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone
+            #    who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google
+            #    account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service
+            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group.
+            #    For example, `admins@example.com`.
+            #
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the
+            #    users of that domain. For example, `google.com` or `example.com`.
+            #
+          "A String",
+        ],
+      },
+    ],
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -2461,39 +2016,6 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
-    "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
-        # `bindings` with no members will result in an error.
-      { # Associates `members` with a `role`.
-        "role": "A String", # Role that is assigned to `members`.
-            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
-            # Required
-        "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
-            # `members` can have the following values:
-            #
-            # * `allUsers`: A special identifier that represents anyone who is
-            #    on the internet; with or without a Google account.
-            #
-            # * `allAuthenticatedUsers`: A special identifier that represents anyone
-            #    who is authenticated with a Google account or a service account.
-            #
-            # * `user:{emailid}`: An email address that represents a specific Google
-            #    account. For example, `alice@gmail.com` or `joe@example.com`.
-            #
-            #
-            # * `serviceAccount:{emailid}`: An email address that represents a service
-            #    account. For example, `my-other-app@appspot.gserviceaccount.com`.
-            #
-            # * `group:{emailid}`: An email address that represents a Google group.
-            #    For example, `admins@example.com`.
-            #
-            # * `domain:{domain}`: A Google Apps domain name that represents all the
-            #    users of that domain. For example, `google.com` or `example.com`.
-            #
-          "A String",
-        ],
-      },
-    ],
     "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
@@ -2518,7 +2040,6 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2548,8 +2069,8 @@
           # result in a failed request). If `all_values` is set to either `ALLOW` or
           # `DENY`, `allowed_values` and `denied_values` must be unset.
         "allValues": "A String", # The policy all_values state.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
+        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+            # set for `denied_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -2639,427 +2160,11 @@
             # that matches the value specified in this `Policy`. If `suggested_value`
             # is not set, it will inherit the value specified higher in the hierarchy,
             # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-      },
-      "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-          # resource.
-        "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-            # configuration is acceptable.
-            #
-            # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-            # with `constraint_default` set to `ALLOW`. A `Policy` for that
-            # `Constraint` exhibits the following behavior:
-            #   - If the `Policy` at this resource has enforced set to `false`, serial
-            #     port connection attempts will be allowed.
-            #   - If the `Policy` at this resource has enforced set to `true`, serial
-            #     port connection attempts will be refused.
-            #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-            #     connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource or anywhere higher in the
-            #     resource hierarchy, serial port connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource, but one exists higher in the
-            #     resource hierarchy, the behavior is as if the`Policy` were set at
-            #     this resource.
-            #
-            # The following examples demonstrate the different possible layerings:
-            #
-            # Example 1 (nearest `Constraint` wins):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has no `Policy` set.
-            # The constraint at `projects/bar` and `organizations/foo` will not be
-            # enforced.
-            #
-            # Example 2 (enforcement gets replaced):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has a `Policy` with:
-            #     {enforced: true}
-            # The constraint at `organizations/foo` is not enforced.
-            # The constraint at `projects/bar` is enforced.
-            #
-            # Example 3 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: true}
-            #   `projects/bar` has a `Policy` with:
-            #     {RestoreDefault: {}}
-            # The constraint at `organizations/foo` is enforced.
-            # The constraint at `projects/bar` is not enforced, because
-            # `constraint_default` for the `Constraint` is `ALLOW`.
-      },
-      "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-          # concurrency control.
-          #
-          # When the `Policy` is returned from either a `GetPolicy` or a
-          # `ListOrgPolicy` request, this `etag` indicates the version of the current
-          # `Policy` to use when executing a read-modify-write loop.
-          #
-          # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-          # `etag` will be unset.
-          #
-          # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-          # that was returned from a `GetOrgPolicy` request as part of a
-          # read-modify-write loop for concurrency control. Not setting the `etag`in a
-          # `SetOrgPolicy` request will result in an unconditional write of the
-          # `Policy`.
-    },
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Updates the specified `Policy` on the resource. Creates a new `Policy` for
-that `Constraint` on the resource if one does not exist.
-
-Not supplying an `etag` on the request `Policy` results in an unconditional
-write of the `Policy`.
-
-Args:
-  resource: string, Resource name of the resource to attach the `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the SetOrgPolicyRequest method.
-    "policy": { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` # `Policy` to set on the resource.
-        # for configurations of Cloud Platform resources.
-      "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-          # server, not specified by the caller, and represents the last time a call to
-          # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-          # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
-      "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-          # `constraints/serviceuser.services`.
-          #
-          # Immutable after creation.
-      "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-          # `Constraint` type.
-          # `constraint_default` enforcement behavior of the specific `Constraint` at
-          # this resource.
-          #
-          # Suppose that `constraint_default` is set to `ALLOW` for the
-          # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-          # foo.com sets a `Policy` at their Organization resource node that restricts
-          # the allowed service activations to deny all service activations. They
-          # could then set a `Policy` with the `policy_type` `restore_default` on
-          # several experimental projects, restoring the `constraint_default`
-          # enforcement of the `Constraint` for only those projects, allowing those
-          # projects to have all services activated.
-      },
-      "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-          # resource.
-          #
-          # A `ListPolicy` can define specific values that are allowed or denied by
-          # setting either the `allowed_values` or `denied_values` fields. It can also
-          # be used to allow or deny all values, by setting the `all_values` field. If
-          # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-          # or `denied_values` must be set (attempting to set both or neither will
-          # result in a failed request). If `all_values` is set to either `ALLOW` or
-          # `DENY`, `allowed_values` and `denied_values` must be unset.
-        "allValues": "A String", # The policy all_values state.
         "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
             # set for `allowed_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
-        "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-            #
-            # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-            # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-            # set to `true`, then the values from the effective `Policy` of the parent
-            # resource are inherited, meaning the values set in this `Policy` are
-            # added to the values inherited up the hierarchy.
-            #
-            # Setting `Policy` hierarchies that inherit both allowed values and denied
-            # values isn't recommended in most circumstances to keep the configuration
-            # simple and understandable. However, it is possible to set a `Policy` with
-            # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-            # In this case, the values that are allowed must be in `allowed_values` and
-            # not present in `denied_values`.
-            #
-            # For example, suppose you have a `Constraint`
-            # `constraints/serviceuser.services`, which has a `constraint_type` of
-            # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-            # Suppose that at the Organization level, a `Policy` is applied that
-            # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-            # `Policy` is applied to a project below the Organization that has
-            # `inherit_from_parent` set to `false` and field all_values set to DENY,
-            # then an attempt to activate any API will be denied.
-            #
-            # The following examples demonstrate different possible layerings:
-            #
-            # Example 1 (no inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-            #     {allowed_values: "E3" allowed_values: "E4"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E3`, and `E4`.
-            #
-            # Example 2 (inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {value: “E3” value: ”E4” inherit_from_parent: true}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-            #
-            # Example 3 (inheriting both allowed and denied values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: "E1" allowed_values: "E2"}
-            #   `projects/bar` has a `Policy` with:
-            #     {denied_values: "E1"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The value accepted at `projects/bar` is `E2`.
-            #
-            # Example 4 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {RestoreDefault: {}}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 5 (no policy inherits parent policy):
-            #   `organizations/foo` has no `Policy` set.
-            #   `projects/bar` has no `Policy` set.
-            # The accepted values at both levels are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 6 (ListConstraint allowing all):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: ALLOW}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # Any value is accepted at `projects/bar`.
-            #
-            # Example 7 (ListConstraint allowing none):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: DENY}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # No value is accepted at `projects/bar`.
-        "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-            # that matches the value specified in this `Policy`. If `suggested_value`
-            # is not set, it will inherit the value specified higher in the hierarchy,
-            # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
       },
       "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
           # resource.
@@ -3107,6 +2212,7 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -3139,7 +2245,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -3169,8 +2274,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -3260,8 +2365,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -3312,6 +2417,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -3421,22 +2527,92 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
+    # container for ACLs, APIs, App Engine Apps, VMs, and other
+    # Google Cloud Platform resources.
+  "name": "A String", # The user-assigned display name of the Project.
+      # It must be 4 to 30 characters.
+      # Allowed characters are: lowercase and uppercase letters, numbers,
+      # hyphen, single-quote, double-quote, space, and exclamation point.
+      # 
+      # Example: <code>My Project</code>
+      # Read-write.
+  "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
+      # 
+      # The only supported parent type is "organization". Once set, the parent
+      # cannot be modified. The `parent` can be set on creation or using the
+      # `UpdateProject` method; the end user must have the
+      # `resourcemanager.projects.create` permission on the parent.
+      # 
+      # Read-write.
+      # Cloud Platform is a generic term for something you (a developer) may want to
+      # interact with through one of our API's. Some examples are an App Engine app,
+      # a Compute Engine instance, a Cloud SQL database, and so on.
+    "type": "A String", # Required field representing the resource type this id is for.
+        # At present, the valid types are: "organization"
+    "id": "A String", # Required field for the type-specific id. This should correspond to the id
+        # used in the type-specific API's.
+  },
+  "projectId": "A String", # The unique, user-assigned ID of the Project.
+      # It must be 6 to 30 lowercase letters, digits, or hyphens.
+      # It must start with a letter.
+      # Trailing hyphens are prohibited.
+      # 
+      # Example: <code>tokyo-rain-123</code>
+      # Read-only after creation.
+  "labels": { # The labels associated with this Project.
+      # 
+      # Label keys must be between 1 and 63 characters long and must conform
+      # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
+      # 
+      # Label values must be between 0 and 63 characters long and must conform
+      # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
+      # 
+      # No more than 256 labels can be associated with a given resource.
+      # 
+      # Clients should store labels in a representation such as JSON that does not
+      # depend on specific characters being disallowed.
+      # 
+      # Example: <code>"environment" : "dev"</code>
+      # Read-write.
+    "a_key": "A String",
+  },
+  "createTime": "A String", # Creation time.
+      # 
+      # Read-only.
+  "lifecycleState": "A String", # The Project lifecycle state.
+      # 
+      # Read-only.
+  "projectNumber": "A String", # The number uniquely identifying the project.
+      # 
+      # Example: <code>415104041262</code>
+      # Read-only.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Project is a high-level Google Cloud Platform entity.  It is a
       # container for ACLs, APIs, App Engine Apps, VMs, and other
       # Google Cloud Platform resources.
     "name": "A String", # The user-assigned display name of the Project.
         # It must be 4 to 30 characters.
         # Allowed characters are: lowercase and uppercase letters, numbers,
         # hyphen, single-quote, double-quote, space, and exclamation point.
-        # 
+        #
         # Example: <code>My Project</code>
         # Read-write.
     "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
-        # 
+        #
         # The only supported parent type is "organization". Once set, the parent
         # cannot be modified. The `parent` can be set on creation or using the
         # `UpdateProject` method; the end user must have the
         # `resourcemanager.projects.create` permission on the parent.
-        # 
+        #
         # Read-write.
         # Cloud Platform is a generic term for something you (a developer) may want to
         # interact with through one of our API's. Some examples are an App Engine app,
@@ -3450,107 +2626,37 @@
         # It must be 6 to 30 lowercase letters, digits, or hyphens.
         # It must start with a letter.
         # Trailing hyphens are prohibited.
-        # 
+        #
         # Example: <code>tokyo-rain-123</code>
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
-        # 
+        #
         # Label keys must be between 1 and 63 characters long and must conform
         # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
-        # 
+        #
         # Label values must be between 0 and 63 characters long and must conform
         # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
-        # 
+        #
         # No more than 256 labels can be associated with a given resource.
-        # 
+        #
         # Clients should store labels in a representation such as JSON that does not
         # depend on specific characters being disallowed.
-        # 
+        #
         # Example: <code>"environment" : "dev"</code>
         # Read-write.
       "a_key": "A String",
     },
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        # 
-        # Example: <code>415104041262</code>
+    "createTime": "A String", # Creation time.
+        #
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
-        # 
+        #
         # Read-only.
-    "createTime": "A String", # Creation time.
-        # 
+    "projectNumber": "A String", # The number uniquely identifying the project.
+        #
+        # Example: <code>415104041262</code>
         # Read-only.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A Project is a high-level Google Cloud Platform entity.  It is a
-        # container for ACLs, APIs, App Engine Apps, VMs, and other
-        # Google Cloud Platform resources.
-      "name": "A String", # The user-assigned display name of the Project.
-          # It must be 4 to 30 characters.
-          # Allowed characters are: lowercase and uppercase letters, numbers,
-          # hyphen, single-quote, double-quote, space, and exclamation point.
-          #
-          # Example: <code>My Project</code>
-          # Read-write.
-      "parent": { # A container to reference an id for any resource type. A `resource` in Google # An optional reference to a parent Resource.
-          #
-          # The only supported parent type is "organization". Once set, the parent
-          # cannot be modified. The `parent` can be set on creation or using the
-          # `UpdateProject` method; the end user must have the
-          # `resourcemanager.projects.create` permission on the parent.
-          #
-          # Read-write.
-          # Cloud Platform is a generic term for something you (a developer) may want to
-          # interact with through one of our API's. Some examples are an App Engine app,
-          # a Compute Engine instance, a Cloud SQL database, and so on.
-        "type": "A String", # Required field representing the resource type this id is for.
-            # At present, the valid types are: "organization"
-        "id": "A String", # Required field for the type-specific id. This should correspond to the id
-            # used in the type-specific API's.
-      },
-      "projectId": "A String", # The unique, user-assigned ID of the Project.
-          # It must be 6 to 30 lowercase letters, digits, or hyphens.
-          # It must start with a letter.
-          # Trailing hyphens are prohibited.
-          #
-          # Example: <code>tokyo-rain-123</code>
-          # Read-only after creation.
-      "labels": { # The labels associated with this Project.
-          #
-          # Label keys must be between 1 and 63 characters long and must conform
-          # to the following regular expression: \[a-z\](\[-a-z0-9\]*\[a-z0-9\])?.
-          #
-          # Label values must be between 0 and 63 characters long and must conform
-          # to the regular expression (\[a-z\](\[-a-z0-9\]*\[a-z0-9\])?)?.
-          #
-          # No more than 256 labels can be associated with a given resource.
-          #
-          # Clients should store labels in a representation such as JSON that does not
-          # depend on specific characters being disallowed.
-          #
-          # Example: <code>"environment" : "dev"</code>
-          # Read-write.
-        "a_key": "A String",
-      },
-      "projectNumber": "A String", # The number uniquely identifying the project.
-          #
-          # Example: <code>415104041262</code>
-          # Read-only.
-      "lifecycleState": "A String", # The Project lifecycle state.
-          #
-          # Read-only.
-      "createTime": "A String", # Creation time.
-          #
-          # Read-only.
-    }</pre>
+  }</pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudresourcemanager_v1beta1.organizations.html b/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
index 84e5158..f071d10 100644
--- a/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
@@ -75,57 +75,21 @@
 <h1><a href="cloudresourcemanager_v1beta1.html">Google Cloud Resource Manager API</a> . <a href="cloudresourcemanager_v1beta1.organizations.html">organizations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#clearOrgPolicy">clearOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Clears a `Policy` from a resource.</p>
-<p class="toc_element">
-  <code><a href="#clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Clears a `Policy` from a resource.</p>
-<p class="toc_element">
   <code><a href="#get">get(name, organizationId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Fetches an Organization resource identified by the specified resource name.</p>
 <p class="toc_element">
-  <code><a href="#getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
-<p class="toc_element">
-  <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
-<p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for an Organization resource. May be empty</p>
 <p class="toc_element">
-  <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a `Policy` on a resource.</p>
-<p class="toc_element">
-  <code><a href="#getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets a `Policy` on a resource.</p>
-<p class="toc_element">
   <code><a href="#list">list(pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists Organization resources that are visible to the user and satisfy</p>
 <p class="toc_element">
-  <code><a href="#listAvailableOrgPolicyConstraints">listAvailableOrgPolicyConstraints(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists `Constraints` that could be applied on the specified resource.</p>
-<p class="toc_element">
-  <code><a href="#listAvailableOrgPolicyConstraints_next">listAvailableOrgPolicyConstraints_next(previous_request, previous_response)</a></code></p>
-<p class="firstline">Retrieves the next page of results.</p>
-<p class="toc_element">
-  <code><a href="#listOrgPolicies">listOrgPolicies(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all the `Policies` set for a particular resource.</p>
-<p class="toc_element">
-  <code><a href="#listOrgPolicies_next">listOrgPolicies_next(previous_request, previous_response)</a></code></p>
-<p class="firstline">Retrieves the next page of results.</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>
 <p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the access control policy on an Organization resource. Replaces any</p>
 <p class="toc_element">
-  <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
-<p class="toc_element">
-  <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
-<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified Organization.</p>
 <p class="toc_element">
@@ -133,76 +97,6 @@
 <p class="firstline">Updates an Organization resource identified by the specified resource name.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="clearOrgPolicy">clearOrgPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Clears a `Policy` from a resource.
-
-Args:
-  resource: string, Name of the resource for the `Policy` to clear. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the ClearOrgPolicy method.
-    "etag": "A String", # The current version, for concurrency control. Not sending an `etag`
-        # will cause the `Policy` to be cleared blindly.
-    "constraint": "A String", # Name of the `Constraint` of the `Policy` to clear.
-  }
-
-  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="clearOrgPolicyV1">clearOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Clears a `Policy` from a resource.
-
-Args:
-  resource: string, Name of the resource for the `Policy` to clear. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the ClearOrgPolicy method.
-    "etag": "A String", # The current version, for concurrency control. Not sending an `etag`
-        # will cause the `Policy` to be cleared blindly.
-    "constraint": "A String", # Name of the `Constraint` of the `Policy` to clear.
-  }
-
-  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, organizationId=None, x__xgafv=None)</code>
   <pre>Fetches an Organization resource identified by the specified resource name.
 
@@ -247,446 +141,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Gets the effective `Policy` on a resource. This is the result of merging
-`Policies` in the resource hierarchy. The returned `Policy` will not have
-an `etag`set because it is a computed `Policy` across multiple resources.
-
-Args:
-  resource: string, The name of the resource to start computing the effective `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetEffectiveOrgPolicy method.
-    "constraint": "A String", # The name of the `Constraint` to compute the effective `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets the effective `Policy` on a resource. This is the result of merging
-`Policies` in the resource hierarchy. The returned `Policy` will not have
-an `etag`set because it is a computed `Policy` across multiple resources.
-
-Args:
-  resource: string, The name of the resource to start computing the effective `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetEffectiveOrgPolicy method.
-    "constraint": "A String", # The name of the `Constraint` to compute the effective `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
     <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Gets the access control policy for an Organization resource. May be empty
 if no such policy or resource exists. The `resource` field should be the
@@ -766,6 +220,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -773,63 +228,55 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -867,452 +314,17 @@
             # `allServices` is a special value that covers all services.
       },
     ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Gets a `Policy` on a resource.
-
-If no `Policy` is set on the resource, a `Policy` is returned with default
-values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
-`etag` value can be used with `SetOrgPolicy()` to create or update a
-`Policy` during read-modify-write.
-
-Args:
-  resource: string, Name of the resource the `Policy` is set on. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetOrgPolicy method.
-    "constraint": "A String", # Name of the `Constraint` to get the `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
         #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getOrgPolicyV1">getOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Gets a `Policy` on a resource.
-
-If no `Policy` is set on the resource, a `Policy` is returned with default
-values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
-`etag` value can be used with `SetOrgPolicy()` to create or update a
-`Policy` during read-modify-write.
-
-Args:
-  resource: string, Name of the resource the `Policy` is set on. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the GetOrgPolicy method.
-    "constraint": "A String", # Name of the `Constraint` to get the `Policy`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -1387,337 +399,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="listAvailableOrgPolicyConstraints">listAvailableOrgPolicyConstraints(resource, body, x__xgafv=None)</code>
-  <pre>Lists `Constraints` that could be applied on the specified resource.
-
-Args:
-  resource: string, Name of the resource to list `Constraints` for. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the [ListAvailableOrgPolicyConstraints]
-      # google.cloud.OrgPolicy.v1.ListAvailableOrgPolicyConstraints] method.
-    "pageToken": "A String", # Page token used to retrieve the next page. This is currently unsupported
-        # and will be ignored. The server may at any point start using this field.
-    "pageSize": 42, # Size of the pages to be returned. This is currently unsupported and will
-        # be ignored. The server may at any point start using this field to limit
-        # page size.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # The response returned from the ListAvailableOrgPolicyConstraints method.
-      # Returns all `Constraints` that could be set at this level of the hierarchy
-      # (contrast with the response from `ListPolicies`, which returns all policies
-      # which are set).
-    "nextPageToken": "A String", # Page token used to retrieve the next page. This is currently not used.
-    "constraints": [ # The collection of constraints that are settable on the request resource.
-      { # A `Constraint` describes a way in which a resource's configuration can be
-          # restricted. For example, it controls which cloud services can be activated
-          # across an organization, or whether a Compute Engine instance can have
-          # serial port connections established. `Constraints` can be configured by the
-          # organization's policy adminstrator to fit the needs of the organzation by
-          # setting Policies for `Constraints` at different locations in the
-          # organization's resource hierarchy. Policies are inherited down the resource
-          # hierarchy from higher levels, but can also be overridden. For details about
-          # the inheritance rules please read about
-          # Policies.
-          #
-          # `Constraints` have a default behavior determined by the `constraint_default`
-          # field, which is the enforcement behavior that is used in the absence of a
-          # `Policy` being defined or inherited for the resource in question.
-        "constraintDefault": "A String", # The evaluation behavior of this constraint in the absense of 'Policy'.
-        "displayName": "A String", # The human readable name.
-            #
-            # Mutable.
-        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
-            # where it is enforced.
-            #
-            # Mutable.
-        "booleanConstraint": { # A `Constraint` that is either enforced or not. # Defines this constraint as being a BooleanConstraint.
-            #
-            # For example a constraint `constraints/compute.disableSerialPortAccess`.
-            # If it is enforced on a VM instance, serial port connections will not be
-            # opened to that instance.
-        },
-        "version": 42, # Version of the `Constraint`. Default version is 0;
-        "listConstraint": { # A `Constraint` that allows or disallows a list of string values, which are # Defines this constraint as being a ListConstraint.
-            # configured by an Organization's policy administrator with a `Policy`.
-          "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-              # that matches the value specified in this `Constraint`.
-        },
-        "name": "A String", # Immutable value, required to globally be unique. For example,
-            # `constraints/serviceuser.services`
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="listAvailableOrgPolicyConstraints_next">listAvailableOrgPolicyConstraints_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>
-
-<div class="method">
-    <code class="details" id="listOrgPolicies">listOrgPolicies(resource, body, x__xgafv=None)</code>
-  <pre>Lists all the `Policies` set for a particular resource.
-
-Args:
-  resource: string, Name of the resource to list Policies for. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the ListOrgPolicies method.
-    "pageToken": "A String", # Page token used to retrieve the next page. This is currently unsupported
-        # and will be ignored. The server may at any point start using this field.
-    "pageSize": 42, # Size of the pages to be returned. This is currently unsupported and will
-        # be ignored. The server may at any point start using this field to limit
-        # page size.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # The response returned from the ListOrgPolicies method. It will be empty
-      # if no `Policies` are set on the resource.
-    "nextPageToken": "A String", # Page token used to retrieve the next page. This is currently not used, but
-        # the server may at any point start supplying a valid token.
-    "policies": [ # The `Policies` that are set on the resource. It will be empty if no
-        # `Policies` are set.
-      { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-          # for configurations of Cloud Platform resources.
-        "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-            # server, not specified by the caller, and represents the last time a call to
-            # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-            # be ignored.
-        "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-            # `constraints/serviceuser.services`.
-            #
-            # Immutable after creation.
-        "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-            # `Constraint` type.
-            # `constraint_default` enforcement behavior of the specific `Constraint` at
-            # this resource.
-            #
-            # Suppose that `constraint_default` is set to `ALLOW` for the
-            # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-            # foo.com sets a `Policy` at their Organization resource node that restricts
-            # the allowed service activations to deny all service activations. They
-            # could then set a `Policy` with the `policy_type` `restore_default` on
-            # several experimental projects, restoring the `constraint_default`
-            # enforcement of the `Constraint` for only those projects, allowing those
-            # projects to have all services activated.
-        },
-        "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-            # resource.
-            #
-            # A `ListPolicy` can define specific values that are allowed or denied by
-            # setting either the `allowed_values` or `denied_values` fields. It can also
-            # be used to allow or deny all values, by setting the `all_values` field. If
-            # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-            # or `denied_values` must be set (attempting to set both or neither will
-            # result in a failed request). If `all_values` is set to either `ALLOW` or
-            # `DENY`, `allowed_values` and `denied_values` must be unset.
-          "allValues": "A String", # The policy all_values state.
-          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-              # set for `allowed_values` and `all_values` is set to
-              # `ALL_VALUES_UNSPECIFIED`.
-            "A String",
-          ],
-          "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-              #
-              # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-              # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-              # set to `true`, then the values from the effective `Policy` of the parent
-              # resource are inherited, meaning the values set in this `Policy` are
-              # added to the values inherited up the hierarchy.
-              #
-              # Setting `Policy` hierarchies that inherit both allowed values and denied
-              # values isn't recommended in most circumstances to keep the configuration
-              # simple and understandable. However, it is possible to set a `Policy` with
-              # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-              # In this case, the values that are allowed must be in `allowed_values` and
-              # not present in `denied_values`.
-              #
-              # For example, suppose you have a `Constraint`
-              # `constraints/serviceuser.services`, which has a `constraint_type` of
-              # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-              # Suppose that at the Organization level, a `Policy` is applied that
-              # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-              # `Policy` is applied to a project below the Organization that has
-              # `inherit_from_parent` set to `false` and field all_values set to DENY,
-              # then an attempt to activate any API will be denied.
-              #
-              # The following examples demonstrate different possible layerings:
-              #
-              # Example 1 (no inherited values):
-              #   `organizations/foo` has a `Policy` with values:
-              #     {allowed_values: “E1” allowed_values:”E2”}
-              #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-              #     {allowed_values: "E3" allowed_values: "E4"}
-              # The accepted values at `organizations/foo` are `E1`, `E2`.
-              # The accepted values at `projects/bar` are `E3`, and `E4`.
-              #
-              # Example 2 (inherited values):
-              #   `organizations/foo` has a `Policy` with values:
-              #     {allowed_values: “E1” allowed_values:”E2”}
-              #   `projects/bar` has a `Policy` with values:
-              #     {value: “E3” value: ”E4” inherit_from_parent: true}
-              # The accepted values at `organizations/foo` are `E1`, `E2`.
-              # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-              #
-              # Example 3 (inheriting both allowed and denied values):
-              #   `organizations/foo` has a `Policy` with values:
-              #     {allowed_values: "E1" allowed_values: "E2"}
-              #   `projects/bar` has a `Policy` with:
-              #     {denied_values: "E1"}
-              # The accepted values at `organizations/foo` are `E1`, `E2`.
-              # The value accepted at `projects/bar` is `E2`.
-              #
-              # Example 4 (RestoreDefault):
-              #   `organizations/foo` has a `Policy` with values:
-              #     {allowed_values: “E1” allowed_values:”E2”}
-              #   `projects/bar` has a `Policy` with values:
-              #     {RestoreDefault: {}}
-              # The accepted values at `organizations/foo` are `E1`, `E2`.
-              # The accepted values at `projects/bar` are either all or none depending on
-              # the value of `constraint_default` (if `ALLOW`, all; if
-              # `DENY`, none).
-              #
-              # Example 5 (no policy inherits parent policy):
-              #   `organizations/foo` has no `Policy` set.
-              #   `projects/bar` has no `Policy` set.
-              # The accepted values at both levels are either all or none depending on
-              # the value of `constraint_default` (if `ALLOW`, all; if
-              # `DENY`, none).
-              #
-              # Example 6 (ListConstraint allowing all):
-              #   `organizations/foo` has a `Policy` with values:
-              #     {allowed_values: “E1” allowed_values: ”E2”}
-              #   `projects/bar` has a `Policy` with:
-              #     {all: ALLOW}
-              # The accepted values at `organizations/foo` are `E1`, E2`.
-              # Any value is accepted at `projects/bar`.
-              #
-              # Example 7 (ListConstraint allowing none):
-              #   `organizations/foo` has a `Policy` with values:
-              #     {allowed_values: “E1” allowed_values: ”E2”}
-              #   `projects/bar` has a `Policy` with:
-              #     {all: DENY}
-              # The accepted values at `organizations/foo` are `E1`, E2`.
-              # No value is accepted at `projects/bar`.
-          "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-              # that matches the value specified in this `Policy`. If `suggested_value`
-              # is not set, it will inherit the value specified higher in the hierarchy,
-              # unless `inherit_from_parent` is `false`.
-          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-              # set for `denied_values` and `all_values` is set to
-              # `ALL_VALUES_UNSPECIFIED`.
-            "A String",
-          ],
-        },
-        "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-            # resource.
-          "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-              # configuration is acceptable.
-              #
-              # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-              # with `constraint_default` set to `ALLOW`. A `Policy` for that
-              # `Constraint` exhibits the following behavior:
-              #   - If the `Policy` at this resource has enforced set to `false`, serial
-              #     port connection attempts will be allowed.
-              #   - If the `Policy` at this resource has enforced set to `true`, serial
-              #     port connection attempts will be refused.
-              #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-              #     connection attempts will be allowed.
-              #   - If no `Policy` is set at this resource or anywhere higher in the
-              #     resource hierarchy, serial port connection attempts will be allowed.
-              #   - If no `Policy` is set at this resource, but one exists higher in the
-              #     resource hierarchy, the behavior is as if the`Policy` were set at
-              #     this resource.
-              #
-              # The following examples demonstrate the different possible layerings:
-              #
-              # Example 1 (nearest `Constraint` wins):
-              #   `organizations/foo` has a `Policy` with:
-              #     {enforced: false}
-              #   `projects/bar` has no `Policy` set.
-              # The constraint at `projects/bar` and `organizations/foo` will not be
-              # enforced.
-              #
-              # Example 2 (enforcement gets replaced):
-              #   `organizations/foo` has a `Policy` with:
-              #     {enforced: false}
-              #   `projects/bar` has a `Policy` with:
-              #     {enforced: true}
-              # The constraint at `organizations/foo` is not enforced.
-              # The constraint at `projects/bar` is enforced.
-              #
-              # Example 3 (RestoreDefault):
-              #   `organizations/foo` has a `Policy` with:
-              #     {enforced: true}
-              #   `projects/bar` has a `Policy` with:
-              #     {RestoreDefault: {}}
-              # The constraint at `organizations/foo` is enforced.
-              # The constraint at `projects/bar` is not enforced, because
-              # `constraint_default` for the `Constraint` is `ALLOW`.
-        },
-        "version": 42, # Version of the `Policy`. Default version is 0;
-        "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-            # concurrency control.
-            #
-            # When the `Policy` is returned from either a `GetPolicy` or a
-            # `ListOrgPolicy` request, this `etag` indicates the version of the current
-            # `Policy` to use when executing a read-modify-write loop.
-            #
-            # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-            # `etag` will be unset.
-            #
-            # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-            # that was returned from a `GetOrgPolicy` request as part of a
-            # read-modify-write loop for concurrency control. Not setting the `etag`in a
-            # `SetOrgPolicy` request will result in an unconditional write of the
-            # `Policy`.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="listOrgPolicies_next">listOrgPolicies_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>
-
-<div class="method">
     <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
   <pre>Retrieves the next page of results.
 
@@ -1804,6 +485,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -1811,63 +493,55 @@
           ],
         },
       ],
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-          # policy is overwritten blindly.
-      "version": 42, # Version of the `Policy`. The default version is 0.
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -1905,6 +579,17 @@
               # `allServices` is a special value that covers all services.
         },
       ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "version": 42, # Version of the `Policy`. The default version is 0.
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
         # the fields in the mask will be modified. If no mask is provided, the
@@ -1978,6 +663,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -1985,63 +671,55 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -2079,838 +757,17 @@
             # `allServices` is a special value that covers all services.
       },
     ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</code>
-  <pre>Updates the specified `Policy` on the resource. Creates a new `Policy` for
-that `Constraint` on the resource if one does not exist.
-
-Not supplying an `etag` on the request `Policy` results in an unconditional
-write of the `Policy`.
-
-Args:
-  resource: string, Resource name of the resource to attach the `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the SetOrgPolicyRequest method.
-    "policy": { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` # `Policy` to set on the resource.
-        # for configurations of Cloud Platform resources.
-      "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-          # server, not specified by the caller, and represents the last time a call to
-          # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-          # be ignored.
-      "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-          # `constraints/serviceuser.services`.
-          #
-          # Immutable after creation.
-      "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-          # `Constraint` type.
-          # `constraint_default` enforcement behavior of the specific `Constraint` at
-          # this resource.
-          #
-          # Suppose that `constraint_default` is set to `ALLOW` for the
-          # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-          # foo.com sets a `Policy` at their Organization resource node that restricts
-          # the allowed service activations to deny all service activations. They
-          # could then set a `Policy` with the `policy_type` `restore_default` on
-          # several experimental projects, restoring the `constraint_default`
-          # enforcement of the `Constraint` for only those projects, allowing those
-          # projects to have all services activated.
-      },
-      "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-          # resource.
-          #
-          # A `ListPolicy` can define specific values that are allowed or denied by
-          # setting either the `allowed_values` or `denied_values` fields. It can also
-          # be used to allow or deny all values, by setting the `all_values` field. If
-          # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-          # or `denied_values` must be set (attempting to set both or neither will
-          # result in a failed request). If `all_values` is set to either `ALLOW` or
-          # `DENY`, `allowed_values` and `denied_values` must be unset.
-        "allValues": "A String", # The policy all_values state.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-        "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-            #
-            # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-            # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-            # set to `true`, then the values from the effective `Policy` of the parent
-            # resource are inherited, meaning the values set in this `Policy` are
-            # added to the values inherited up the hierarchy.
-            #
-            # Setting `Policy` hierarchies that inherit both allowed values and denied
-            # values isn't recommended in most circumstances to keep the configuration
-            # simple and understandable. However, it is possible to set a `Policy` with
-            # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-            # In this case, the values that are allowed must be in `allowed_values` and
-            # not present in `denied_values`.
-            #
-            # For example, suppose you have a `Constraint`
-            # `constraints/serviceuser.services`, which has a `constraint_type` of
-            # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-            # Suppose that at the Organization level, a `Policy` is applied that
-            # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-            # `Policy` is applied to a project below the Organization that has
-            # `inherit_from_parent` set to `false` and field all_values set to DENY,
-            # then an attempt to activate any API will be denied.
-            #
-            # The following examples demonstrate different possible layerings:
-            #
-            # Example 1 (no inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-            #     {allowed_values: "E3" allowed_values: "E4"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E3`, and `E4`.
-            #
-            # Example 2 (inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {value: “E3” value: ”E4” inherit_from_parent: true}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-            #
-            # Example 3 (inheriting both allowed and denied values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: "E1" allowed_values: "E2"}
-            #   `projects/bar` has a `Policy` with:
-            #     {denied_values: "E1"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The value accepted at `projects/bar` is `E2`.
-            #
-            # Example 4 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {RestoreDefault: {}}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 5 (no policy inherits parent policy):
-            #   `organizations/foo` has no `Policy` set.
-            #   `projects/bar` has no `Policy` set.
-            # The accepted values at both levels are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 6 (ListConstraint allowing all):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: ALLOW}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # Any value is accepted at `projects/bar`.
-            #
-            # Example 7 (ListConstraint allowing none):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: DENY}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # No value is accepted at `projects/bar`.
-        "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-            # that matches the value specified in this `Policy`. If `suggested_value`
-            # is not set, it will inherit the value specified higher in the hierarchy,
-            # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-      },
-      "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-          # resource.
-        "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-            # configuration is acceptable.
-            #
-            # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-            # with `constraint_default` set to `ALLOW`. A `Policy` for that
-            # `Constraint` exhibits the following behavior:
-            #   - If the `Policy` at this resource has enforced set to `false`, serial
-            #     port connection attempts will be allowed.
-            #   - If the `Policy` at this resource has enforced set to `true`, serial
-            #     port connection attempts will be refused.
-            #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-            #     connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource or anywhere higher in the
-            #     resource hierarchy, serial port connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource, but one exists higher in the
-            #     resource hierarchy, the behavior is as if the`Policy` were set at
-            #     this resource.
-            #
-            # The following examples demonstrate the different possible layerings:
-            #
-            # Example 1 (nearest `Constraint` wins):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has no `Policy` set.
-            # The constraint at `projects/bar` and `organizations/foo` will not be
-            # enforced.
-            #
-            # Example 2 (enforcement gets replaced):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has a `Policy` with:
-            #     {enforced: true}
-            # The constraint at `organizations/foo` is not enforced.
-            # The constraint at `projects/bar` is enforced.
-            #
-            # Example 3 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: true}
-            #   `projects/bar` has a `Policy` with:
-            #     {RestoreDefault: {}}
-            # The constraint at `organizations/foo` is enforced.
-            # The constraint at `projects/bar` is not enforced, because
-            # `constraint_default` for the `Constraint` is `ALLOW`.
-      },
-      "version": 42, # Version of the `Policy`. Default version is 0;
-      "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-          # concurrency control.
-          #
-          # When the `Policy` is returned from either a `GetPolicy` or a
-          # `ListOrgPolicy` request, this `etag` indicates the version of the current
-          # `Policy` to use when executing a read-modify-write loop.
-          #
-          # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-          # `etag` will be unset.
-          #
-          # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-          # that was returned from a `GetOrgPolicy` request as part of a
-          # read-modify-write loop for concurrency control. Not setting the `etag`in a
-          # `SetOrgPolicy` request will result in an unconditional write of the
-          # `Policy`.
-    },
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
         #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</code>
-  <pre>Updates the specified `Policy` on the resource. Creates a new `Policy` for
-that `Constraint` on the resource if one does not exist.
-
-Not supplying an `etag` on the request `Policy` results in an unconditional
-write of the `Policy`.
-
-Args:
-  resource: string, Resource name of the resource to attach the `Policy`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request sent to the SetOrgPolicyRequest method.
-    "policy": { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` # `Policy` to set on the resource.
-        # for configurations of Cloud Platform resources.
-      "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-          # server, not specified by the caller, and represents the last time a call to
-          # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-          # be ignored.
-      "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-          # `constraints/serviceuser.services`.
-          #
-          # Immutable after creation.
-      "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-          # `Constraint` type.
-          # `constraint_default` enforcement behavior of the specific `Constraint` at
-          # this resource.
-          #
-          # Suppose that `constraint_default` is set to `ALLOW` for the
-          # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-          # foo.com sets a `Policy` at their Organization resource node that restricts
-          # the allowed service activations to deny all service activations. They
-          # could then set a `Policy` with the `policy_type` `restore_default` on
-          # several experimental projects, restoring the `constraint_default`
-          # enforcement of the `Constraint` for only those projects, allowing those
-          # projects to have all services activated.
-      },
-      "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-          # resource.
-          #
-          # A `ListPolicy` can define specific values that are allowed or denied by
-          # setting either the `allowed_values` or `denied_values` fields. It can also
-          # be used to allow or deny all values, by setting the `all_values` field. If
-          # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-          # or `denied_values` must be set (attempting to set both or neither will
-          # result in a failed request). If `all_values` is set to either `ALLOW` or
-          # `DENY`, `allowed_values` and `denied_values` must be unset.
-        "allValues": "A String", # The policy all_values state.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-        "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-            #
-            # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-            # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-            # set to `true`, then the values from the effective `Policy` of the parent
-            # resource are inherited, meaning the values set in this `Policy` are
-            # added to the values inherited up the hierarchy.
-            #
-            # Setting `Policy` hierarchies that inherit both allowed values and denied
-            # values isn't recommended in most circumstances to keep the configuration
-            # simple and understandable. However, it is possible to set a `Policy` with
-            # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-            # In this case, the values that are allowed must be in `allowed_values` and
-            # not present in `denied_values`.
-            #
-            # For example, suppose you have a `Constraint`
-            # `constraints/serviceuser.services`, which has a `constraint_type` of
-            # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-            # Suppose that at the Organization level, a `Policy` is applied that
-            # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-            # `Policy` is applied to a project below the Organization that has
-            # `inherit_from_parent` set to `false` and field all_values set to DENY,
-            # then an attempt to activate any API will be denied.
-            #
-            # The following examples demonstrate different possible layerings:
-            #
-            # Example 1 (no inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-            #     {allowed_values: "E3" allowed_values: "E4"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E3`, and `E4`.
-            #
-            # Example 2 (inherited values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {value: “E3” value: ”E4” inherit_from_parent: true}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-            #
-            # Example 3 (inheriting both allowed and denied values):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: "E1" allowed_values: "E2"}
-            #   `projects/bar` has a `Policy` with:
-            #     {denied_values: "E1"}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The value accepted at `projects/bar` is `E2`.
-            #
-            # Example 4 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values:”E2”}
-            #   `projects/bar` has a `Policy` with values:
-            #     {RestoreDefault: {}}
-            # The accepted values at `organizations/foo` are `E1`, `E2`.
-            # The accepted values at `projects/bar` are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 5 (no policy inherits parent policy):
-            #   `organizations/foo` has no `Policy` set.
-            #   `projects/bar` has no `Policy` set.
-            # The accepted values at both levels are either all or none depending on
-            # the value of `constraint_default` (if `ALLOW`, all; if
-            # `DENY`, none).
-            #
-            # Example 6 (ListConstraint allowing all):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: ALLOW}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # Any value is accepted at `projects/bar`.
-            #
-            # Example 7 (ListConstraint allowing none):
-            #   `organizations/foo` has a `Policy` with values:
-            #     {allowed_values: “E1” allowed_values: ”E2”}
-            #   `projects/bar` has a `Policy` with:
-            #     {all: DENY}
-            # The accepted values at `organizations/foo` are `E1`, E2`.
-            # No value is accepted at `projects/bar`.
-        "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-            # that matches the value specified in this `Policy`. If `suggested_value`
-            # is not set, it will inherit the value specified higher in the hierarchy,
-            # unless `inherit_from_parent` is `false`.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
-            # `ALL_VALUES_UNSPECIFIED`.
-          "A String",
-        ],
-      },
-      "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-          # resource.
-        "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-            # configuration is acceptable.
-            #
-            # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-            # with `constraint_default` set to `ALLOW`. A `Policy` for that
-            # `Constraint` exhibits the following behavior:
-            #   - If the `Policy` at this resource has enforced set to `false`, serial
-            #     port connection attempts will be allowed.
-            #   - If the `Policy` at this resource has enforced set to `true`, serial
-            #     port connection attempts will be refused.
-            #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-            #     connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource or anywhere higher in the
-            #     resource hierarchy, serial port connection attempts will be allowed.
-            #   - If no `Policy` is set at this resource, but one exists higher in the
-            #     resource hierarchy, the behavior is as if the`Policy` were set at
-            #     this resource.
-            #
-            # The following examples demonstrate the different possible layerings:
-            #
-            # Example 1 (nearest `Constraint` wins):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has no `Policy` set.
-            # The constraint at `projects/bar` and `organizations/foo` will not be
-            # enforced.
-            #
-            # Example 2 (enforcement gets replaced):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: false}
-            #   `projects/bar` has a `Policy` with:
-            #     {enforced: true}
-            # The constraint at `organizations/foo` is not enforced.
-            # The constraint at `projects/bar` is enforced.
-            #
-            # Example 3 (RestoreDefault):
-            #   `organizations/foo` has a `Policy` with:
-            #     {enforced: true}
-            #   `projects/bar` has a `Policy` with:
-            #     {RestoreDefault: {}}
-            # The constraint at `organizations/foo` is enforced.
-            # The constraint at `projects/bar` is not enforced, because
-            # `constraint_default` for the `Constraint` is `ALLOW`.
-      },
-      "version": 42, # Version of the `Policy`. Default version is 0;
-      "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-          # concurrency control.
-          #
-          # When the `Policy` is returned from either a `GetPolicy` or a
-          # `ListOrgPolicy` request, this `etag` indicates the version of the current
-          # `Policy` to use when executing a read-modify-write loop.
-          #
-          # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-          # `etag` will be unset.
-          #
-          # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-          # that was returned from a `GetOrgPolicy` request as part of a
-          # read-modify-write loop for concurrency control. Not setting the `etag`in a
-          # `SetOrgPolicy` request will result in an unconditional write of the
-          # `Policy`.
-    },
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
-      # for configurations of Cloud Platform resources.
-    "updateTime": "A String", # The time stamp the `Policy` was previously updated. This is set by the
-        # server, not specified by the caller, and represents the last time a call to
-        # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
-        # be ignored.
-    "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
-        # `constraints/serviceuser.services`.
-        #
-        # Immutable after creation.
-    "restoreDefault": { # Ignores policies set above this resource and restores the # Restores the default behavior of the constraint; independent of
-        # `Constraint` type.
-        # `constraint_default` enforcement behavior of the specific `Constraint` at
-        # this resource.
-        #
-        # Suppose that `constraint_default` is set to `ALLOW` for the
-        # `Constraint` `constraints/serviceuser.services`. Suppose that organization
-        # foo.com sets a `Policy` at their Organization resource node that restricts
-        # the allowed service activations to deny all service activations. They
-        # could then set a `Policy` with the `policy_type` `restore_default` on
-        # several experimental projects, restoring the `constraint_default`
-        # enforcement of the `Constraint` for only those projects, allowing those
-        # projects to have all services activated.
-    },
-    "listPolicy": { # Used in `policy_type` to specify how `list_policy` behaves at this # List of values either allowed or disallowed.
-        # resource.
-        #
-        # A `ListPolicy` can define specific values that are allowed or denied by
-        # setting either the `allowed_values` or `denied_values` fields. It can also
-        # be used to allow or deny all values, by setting the `all_values` field. If
-        # `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
-        # or `denied_values` must be set (attempting to set both or neither will
-        # result in a failed request). If `all_values` is set to either `ALLOW` or
-        # `DENY`, `allowed_values` and `denied_values` must be unset.
-      "allValues": "A String", # The policy all_values state.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-      "inheritFromParent": True or False, # Determines the inheritance behavior for this `Policy`.
-          #
-          # By default, a `ListPolicy` set at a resource supercedes any `Policy` set
-          # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
-          # set to `true`, then the values from the effective `Policy` of the parent
-          # resource are inherited, meaning the values set in this `Policy` are
-          # added to the values inherited up the hierarchy.
-          #
-          # Setting `Policy` hierarchies that inherit both allowed values and denied
-          # values isn't recommended in most circumstances to keep the configuration
-          # simple and understandable. However, it is possible to set a `Policy` with
-          # `allowed_values` set that inherits a `Policy` with `denied_values` set.
-          # In this case, the values that are allowed must be in `allowed_values` and
-          # not present in `denied_values`.
-          #
-          # For example, suppose you have a `Constraint`
-          # `constraints/serviceuser.services`, which has a `constraint_type` of
-          # `list_constraint`, and with `constraint_default` set to `ALLOW`.
-          # Suppose that at the Organization level, a `Policy` is applied that
-          # restricts the allowed API activations to {`E1`, `E2`}. Then, if a
-          # `Policy` is applied to a project below the Organization that has
-          # `inherit_from_parent` set to `false` and field all_values set to DENY,
-          # then an attempt to activate any API will be denied.
-          #
-          # The following examples demonstrate different possible layerings:
-          #
-          # Example 1 (no inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   ``projects/bar`` has `inherit_from_parent` `false` and values:
-          #     {allowed_values: "E3" allowed_values: "E4"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E3`, and `E4`.
-          #
-          # Example 2 (inherited values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {value: “E3” value: ”E4” inherit_from_parent: true}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
-          #
-          # Example 3 (inheriting both allowed and denied values):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: "E1" allowed_values: "E2"}
-          #   `projects/bar` has a `Policy` with:
-          #     {denied_values: "E1"}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The value accepted at `projects/bar` is `E2`.
-          #
-          # Example 4 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values:”E2”}
-          #   `projects/bar` has a `Policy` with values:
-          #     {RestoreDefault: {}}
-          # The accepted values at `organizations/foo` are `E1`, `E2`.
-          # The accepted values at `projects/bar` are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 5 (no policy inherits parent policy):
-          #   `organizations/foo` has no `Policy` set.
-          #   `projects/bar` has no `Policy` set.
-          # The accepted values at both levels are either all or none depending on
-          # the value of `constraint_default` (if `ALLOW`, all; if
-          # `DENY`, none).
-          #
-          # Example 6 (ListConstraint allowing all):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: ALLOW}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # Any value is accepted at `projects/bar`.
-          #
-          # Example 7 (ListConstraint allowing none):
-          #   `organizations/foo` has a `Policy` with values:
-          #     {allowed_values: “E1” allowed_values: ”E2”}
-          #   `projects/bar` has a `Policy` with:
-          #     {all: DENY}
-          # The accepted values at `organizations/foo` are `E1`, E2`.
-          # No value is accepted at `projects/bar`.
-      "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
-          # that matches the value specified in this `Policy`. If `suggested_value`
-          # is not set, it will inherit the value specified higher in the hierarchy,
-          # unless `inherit_from_parent` is `false`.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
-          # `ALL_VALUES_UNSPECIFIED`.
-        "A String",
-      ],
-    },
-    "booleanPolicy": { # Used in `policy_type` to specify how `boolean_policy` will behave at this # For boolean `Constraints`, whether to enforce the `Constraint` or not.
-        # resource.
-      "enforced": True or False, # If `true`, then the `Policy` is enforced. If `false`, then any
-          # configuration is acceptable.
-          #
-          # Suppose you have a `Constraint` `constraints/compute.disableSerialPortAccess`
-          # with `constraint_default` set to `ALLOW`. A `Policy` for that
-          # `Constraint` exhibits the following behavior:
-          #   - If the `Policy` at this resource has enforced set to `false`, serial
-          #     port connection attempts will be allowed.
-          #   - If the `Policy` at this resource has enforced set to `true`, serial
-          #     port connection attempts will be refused.
-          #   - If the `Policy` at this resource is `RestoreDefault`, serial port
-          #     connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource or anywhere higher in the
-          #     resource hierarchy, serial port connection attempts will be allowed.
-          #   - If no `Policy` is set at this resource, but one exists higher in the
-          #     resource hierarchy, the behavior is as if the`Policy` were set at
-          #     this resource.
-          #
-          # The following examples demonstrate the different possible layerings:
-          #
-          # Example 1 (nearest `Constraint` wins):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has no `Policy` set.
-          # The constraint at `projects/bar` and `organizations/foo` will not be
-          # enforced.
-          #
-          # Example 2 (enforcement gets replaced):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: false}
-          #   `projects/bar` has a `Policy` with:
-          #     {enforced: true}
-          # The constraint at `organizations/foo` is not enforced.
-          # The constraint at `projects/bar` is enforced.
-          #
-          # Example 3 (RestoreDefault):
-          #   `organizations/foo` has a `Policy` with:
-          #     {enforced: true}
-          #   `projects/bar` has a `Policy` with:
-          #     {RestoreDefault: {}}
-          # The constraint at `organizations/foo` is enforced.
-          # The constraint at `projects/bar` is not enforced, because
-          # `constraint_default` for the `Constraint` is `ALLOW`.
-    },
-    "version": 42, # Version of the `Policy`. Default version is 0;
-    "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
-        # concurrency control.
-        #
-        # When the `Policy` is returned from either a `GetPolicy` or a
-        # `ListOrgPolicy` request, this `etag` indicates the version of the current
-        # `Policy` to use when executing a read-modify-write loop.
-        #
-        # When the `Policy` is returned from a `GetEffectivePolicy` request, the
-        # `etag` will be unset.
-        #
-        # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
-        # that was returned from a `GetOrgPolicy` request as part of a
-        # read-modify-write loop for concurrency control. Not setting the `etag`in a
-        # `SetOrgPolicy` request will result in an unconditional write of the
-        # `Policy`.
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudresourcemanager_v1beta1.projects.html b/docs/dyn/cloudresourcemanager_v1beta1.projects.html
index e6f0051..1795819 100644
--- a/docs/dyn/cloudresourcemanager_v1beta1.projects.html
+++ b/docs/dyn/cloudresourcemanager_v1beta1.projects.html
@@ -173,15 +173,15 @@
       # Read-write.
     "a_key": "A String",
   },
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "projectNumber": "A String", # The number uniquely identifying the project.
+  "createTime": "A String", # Creation time.
       # 
-      # Example: <code>415104041262</code>
       # Read-only.
 }
 
@@ -244,15 +244,15 @@
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
+    "createTime": "A String", # Creation time.
         #
-        # Example: <code>415104041262</code>
         # Read-only.
   }</pre>
 </div>
@@ -377,15 +377,15 @@
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
+    "createTime": "A String", # Creation time.
         #
-        # Example: <code>415104041262</code>
         # Read-only.
   }</pre>
 </div>
@@ -515,6 +515,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -522,63 +523,55 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -616,6 +609,17 @@
             # `allServices` is a special value that covers all services.
       },
     ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -642,13 +646,14 @@
 
 |Filter|Description|
 |------|-----------|
-|name:*|The project has a name.|
+|name:how*|The project's name starts with "how".|
 |name:Howl|The project's name is `Howl` or `howl`.|
 |name:HOWL|Equivalent to above.|
 |NAME:howl|Equivalent to above.|
 |labels.color:*|The project has the label `color`.|
 |labels.color:red|The project's label `color` has the value `red`.|
-|labels.color:red&nbsp;labels.size:big|The project's label `color` has the value `red` and its label `size` has the value `big`.
+|labels.color:red&nbsp;labels.size:big|The project's label `color` has the
+value `red` and its label `size` has the value `big`.
 
 Optional.
   pageToken: string, A pagination token returned from a previous call to ListProjects
@@ -733,15 +738,15 @@
             # Read-write.
           "a_key": "A String",
         },
-        "createTime": "A String", # Creation time.
+        "projectNumber": "A String", # The number uniquely identifying the project.
             #
+            # Example: <code>415104041262</code>
             # Read-only.
         "lifecycleState": "A String", # The Project lifecycle state.
             #
             # Read-only.
-        "projectNumber": "A String", # The number uniquely identifying the project.
+        "createTime": "A String", # Creation time.
             #
-            # Example: <code>415104041262</code>
             # Read-only.
       },
     ],
@@ -869,6 +874,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -876,63 +882,55 @@
           ],
         },
       ],
-      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-          # prevent simultaneous updates of a policy from overwriting each other.
-          # It is strongly suggested that systems make use of the `etag` in the
-          # read-modify-write cycle to perform policy updates in order to avoid race
-          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-          # systems are expected to put that etag in the request to `setIamPolicy` to
-          # ensure that their change will be applied to the same version of the policy.
-          #
-          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-          # policy is overwritten blindly.
-      "version": 42, # Version of the `Policy`. The default version is 0.
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -970,6 +968,17 @@
               # `allServices` is a special value that covers all services.
         },
       ],
+      "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+          # prevent simultaneous updates of a policy from overwriting each other.
+          # It is strongly suggested that systems make use of the `etag` in the
+          # read-modify-write cycle to perform policy updates in order to avoid race
+          # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+          # systems are expected to put that etag in the request to `setIamPolicy` to
+          # ensure that their change will be applied to the same version of the policy.
+          #
+          # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+          # policy is overwritten blindly.
+      "version": 42, # Version of the `Policy`. The default version is 0.
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
         # the fields in the mask will be modified. If no mask is provided, the
@@ -1043,6 +1052,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -1050,63 +1060,55 @@
         ],
       },
     ],
-    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
-        # prevent simultaneous updates of a policy from overwriting each other.
-        # It is strongly suggested that systems make use of the `etag` in the
-        # read-modify-write cycle to perform policy updates in order to avoid race
-        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
-        # systems are expected to put that etag in the request to `setIamPolicy` to
-        # ensure that their change will be applied to the same version of the policy.
-        #
-        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
-        # policy is overwritten blindly.
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -1144,6 +1146,17 @@
             # `allServices` is a special value that covers all services.
       },
     ],
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
+        # prevent simultaneous updates of a policy from overwriting each other.
+        # It is strongly suggested that systems make use of the `etag` in the
+        # read-modify-write cycle to perform policy updates in order to avoid race
+        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
+        # systems are expected to put that etag in the request to `setIamPolicy` to
+        # ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+        # policy is overwritten blindly.
+    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -1287,15 +1300,15 @@
       # Read-write.
     "a_key": "A String",
   },
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "projectNumber": "A String", # The number uniquely identifying the project.
+  "createTime": "A String", # Creation time.
       # 
-      # Example: <code>415104041262</code>
       # Read-only.
 }
 
@@ -1357,15 +1370,15 @@
         # Read-write.
       "a_key": "A String",
     },
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "projectNumber": "A String", # The number uniquely identifying the project.
+    "createTime": "A String", # Creation time.
         #
-        # Example: <code>415104041262</code>
         # Read-only.
   }</pre>
 </div>
diff --git a/docs/dyn/cloudtrace_v1.projects.html b/docs/dyn/cloudtrace_v1.projects.html
index 3c1086c..5b685d1 100644
--- a/docs/dyn/cloudtrace_v1.projects.html
+++ b/docs/dyn/cloudtrace_v1.projects.html
@@ -121,7 +121,38 @@
                 # to use a consistent name, which makes it easier to correlate
                 # cross-trace spans.
             "labels": { # Collection of labels associated with the span. Label keys must be less than
-                # 128 bytes. Label values must be less than 16 kilobytes.
+                # 128 bytes. Label values must be less than 16 kilobytes (10MB for
+                # `/stacktrace` values).
+                #
+                # Some predefined label keys exist, or you may create your own. When creating
+                # your own, we recommend the following formats:
+                #
+                # * `/category/product/key` for agents of well-known products (e.g.
+                #   `/db/mongodb/read_size`).
+                # * `short_host/path/key` for domain-specific keys (e.g.
+                #   `foo.com/myproduct/bar`)
+                #
+                # Predefined labels include:
+                #
+                # *   `/agent`
+                # *   `/component`
+                # *   `/error/message`
+                # *   `/error/name`
+                # *   `/http/client_city`
+                # *   `/http/client_country`
+                # *   `/http/client_protocol`
+                # *   `/http/client_region`
+                # *   `/http/host`
+                # *   `/http/method`
+                # *   `/http/redirected_url`
+                # *   `/http/request/size`
+                # *   `/http/response/size`
+                # *   `/http/status_code`
+                # *   `/http/url`
+                # *   `/http/user_agent`
+                # *   `/pid`
+                # *   `/stacktrace`
+                # *   `/tid`
               "a_key": "A String",
             },
             "parentSpanId": "A String", # ID of the parent span, if any. Optional.
diff --git a/docs/dyn/cloudtrace_v1.projects.traces.html b/docs/dyn/cloudtrace_v1.projects.traces.html
index db3d77a..4373981 100644
--- a/docs/dyn/cloudtrace_v1.projects.traces.html
+++ b/docs/dyn/cloudtrace_v1.projects.traces.html
@@ -122,7 +122,38 @@
             # to use a consistent name, which makes it easier to correlate
             # cross-trace spans.
         "labels": { # Collection of labels associated with the span. Label keys must be less than
-            # 128 bytes. Label values must be less than 16 kilobytes.
+            # 128 bytes. Label values must be less than 16 kilobytes (10MB for
+            # `/stacktrace` values).
+            #
+            # Some predefined label keys exist, or you may create your own. When creating
+            # your own, we recommend the following formats:
+            #
+            # * `/category/product/key` for agents of well-known products (e.g.
+            #   `/db/mongodb/read_size`).
+            # * `short_host/path/key` for domain-specific keys (e.g.
+            #   `foo.com/myproduct/bar`)
+            #
+            # Predefined labels include:
+            #
+            # *   `/agent`
+            # *   `/component`
+            # *   `/error/message`
+            # *   `/error/name`
+            # *   `/http/client_city`
+            # *   `/http/client_country`
+            # *   `/http/client_protocol`
+            # *   `/http/client_region`
+            # *   `/http/host`
+            # *   `/http/method`
+            # *   `/http/redirected_url`
+            # *   `/http/request/size`
+            # *   `/http/response/size`
+            # *   `/http/status_code`
+            # *   `/http/url`
+            # *   `/http/user_agent`
+            # *   `/pid`
+            # *   `/stacktrace`
+            # *   `/tid`
           "a_key": "A String",
         },
         "parentSpanId": "A String", # ID of the parent span, if any. Optional.
@@ -154,7 +185,7 @@
 (for example, `name desc`).
 
 Only one sort field is permitted.
-  startTime: string, End of the time interval (inclusive) during which the trace data was
+  startTime: string, Start of the time interval (inclusive) during which the trace data was
 collected from the application.
   pageSize: integer, Maximum number of traces to return. If not specified or <= 0, the
 implementation selects a reasonable value.  The implementation may
@@ -165,8 +196,37 @@
       2 - v2 error format
   pageToken: string, Token identifying the page of results to return. If provided, use the
 value of the `next_page_token` field from a previous request. Optional.
-  filter: string, An optional filter for the request.
-  endTime: string, Start of the time interval (inclusive) during which the trace data was
+  filter: string, An optional filter against labels for the request.
+
+By default, searches use prefix matching. To specify exact match, prepend
+a plus symbol (`+`) to the search term.
+Multiple terms are ANDed. Syntax:
+
+*   `root:NAME_PREFIX` or `NAME_PREFIX`: Return traces where any root
+    span starts with `NAME_PREFIX`.
+*   `+root:NAME` or `+NAME`: Return traces where any root span's name is
+    exactly `NAME`.
+*   `span:NAME_PREFIX`: Return traces where any span starts with
+    `NAME_PREFIX`.
+*   `+span:NAME`: Return traces where any span's name is exactly
+    `NAME`.
+*   `latency:DURATION`: Return traces whose overall latency is
+    greater or equal to than `DURATION`. Accepted units are nanoseconds
+    (`ns`), milliseconds (`ms`), and seconds (`s`). Default is `ms`. For
+    example, `latency:24ms` returns traces whose overall latency
+    is greater than or equal to 24 milliseconds.
+*   `label:LABEL_KEY`: Return all traces containing the specified
+    label key (exact match, case-sensitive) regardless of the key:value
+    pair's value (including empty values).
+*   `LABEL_KEY:VALUE_PREFIX`: Return all traces containing the specified
+    label key (exact match, case-sensitive) whose value starts with
+    `VALUE_PREFIX`. Both a key and a value must be specified.
+*   `+LABEL_KEY:VALUE`: Return all traces containing a key:value pair
+    exactly matching the specified text. Both a key and a value must be
+    specified.
+*   `method:VALUE`: Equivalent to `/http/method:VALUE`.
+*   `url:VALUE`: Equivalent to `/http/url:VALUE`.
+  endTime: string, End of the time interval (inclusive) during which the trace data was
 collected from the application.
   view: string, Type of data returned for traces in the list. Optional. Default is
 `MINIMAL`.
@@ -202,7 +262,38 @@
                 # to use a consistent name, which makes it easier to correlate
                 # cross-trace spans.
             "labels": { # Collection of labels associated with the span. Label keys must be less than
-                # 128 bytes. Label values must be less than 16 kilobytes.
+                # 128 bytes. Label values must be less than 16 kilobytes (10MB for
+                # `/stacktrace` values).
+                #
+                # Some predefined label keys exist, or you may create your own. When creating
+                # your own, we recommend the following formats:
+                #
+                # * `/category/product/key` for agents of well-known products (e.g.
+                #   `/db/mongodb/read_size`).
+                # * `short_host/path/key` for domain-specific keys (e.g.
+                #   `foo.com/myproduct/bar`)
+                #
+                # Predefined labels include:
+                #
+                # *   `/agent`
+                # *   `/component`
+                # *   `/error/message`
+                # *   `/error/name`
+                # *   `/http/client_city`
+                # *   `/http/client_country`
+                # *   `/http/client_protocol`
+                # *   `/http/client_region`
+                # *   `/http/host`
+                # *   `/http/method`
+                # *   `/http/redirected_url`
+                # *   `/http/request/size`
+                # *   `/http/response/size`
+                # *   `/http/status_code`
+                # *   `/http/url`
+                # *   `/http/user_agent`
+                # *   `/pid`
+                # *   `/stacktrace`
+                # *   `/tid`
               "a_key": "A String",
             },
             "parentSpanId": "A String", # ID of the parent span, if any. Optional.
diff --git a/docs/dyn/compute_alpha.addresses.html b/docs/dyn/compute_alpha.addresses.html
index 6013e29..026532e 100644
--- a/docs/dyn/compute_alpha.addresses.html
+++ b/docs/dyn/compute_alpha.addresses.html
@@ -147,6 +147,7 @@
           { # A reserved address resource.
               "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
               "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+              "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
                   #
@@ -156,11 +157,14 @@
               },
               "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
               "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-              "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-              "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
               "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
               ],
+              "address": "A String", # The static external IP address represented by this resource.
+              "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+              "subnetwork": "A String", # For external addresses, this field should not be used.
+                  #
+                  # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -264,6 +268,7 @@
     { # A reserved address resource.
       "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+      "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
@@ -273,11 +278,14 @@
       },
       "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
       "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-      "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
+      "address": "A String", # The static external IP address represented by this resource.
+      "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+      "subnetwork": "A String", # For external addresses, this field should not be used.
+          #
+          # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -298,6 +306,7 @@
 { # A reserved address resource.
     "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+    "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
@@ -307,11 +316,14 @@
     },
     "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
     "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-    "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
+    "address": "A String", # The static external IP address represented by this resource.
+    "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+    "subnetwork": "A String", # For external addresses, this field should not be used.
+        # 
+        # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -403,6 +415,7 @@
       { # A reserved address resource.
           "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+          "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
@@ -412,11 +425,14 @@
           },
           "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
           "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-          "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
+          "address": "A String", # The static external IP address represented by this resource.
+          "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+          "subnetwork": "A String", # For external addresses, this field should not be used.
+              #
+              # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
diff --git a/docs/dyn/compute_alpha.autoscalers.html b/docs/dyn/compute_alpha.autoscalers.html
index 33698a1..be6c756 100644
--- a/docs/dyn/compute_alpha.autoscalers.html
+++ b/docs/dyn/compute_alpha.autoscalers.html
@@ -173,14 +173,13 @@
                 },
                 "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
                   { # Custom utilization metric policy.
-                    "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                    "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                         #
-                        # For example, the following is a valid metric:
-                        # compute.googleapis.com/instance/network/received_bytes_count
-                        # The following is not a valid metric because it does not increase or decrease based on usage:
-                        # compute.googleapis.com/instance/cpu/reserved_cores
+                        # The metric must have a value type of INT64 or DOUBLE.
                     "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                    "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                    "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                        #
+                        # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
                   },
                 ],
                 "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -325,14 +324,13 @@
         },
         "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
           { # Custom utilization metric policy.
-            "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+            "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                 #
-                # For example, the following is a valid metric:
-                # compute.googleapis.com/instance/network/received_bytes_count
-                # The following is not a valid metric because it does not increase or decrease based on usage:
-                # compute.googleapis.com/instance/cpu/reserved_cores
+                # The metric must have a value type of INT64 or DOUBLE.
             "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-            "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+            "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                #
+                # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
           },
         ],
         "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -394,14 +392,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -534,14 +531,13 @@
             },
             "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
               { # Custom utilization metric policy.
-                "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                     #
-                    # For example, the following is a valid metric:
-                    # compute.googleapis.com/instance/network/received_bytes_count
-                    # The following is not a valid metric because it does not increase or decrease based on usage:
-                    # compute.googleapis.com/instance/cpu/reserved_cores
+                    # The metric must have a value type of INT64 or DOUBLE.
                 "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                    #
+                    # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
               },
             ],
             "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -622,14 +618,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -771,14 +766,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
diff --git a/docs/dyn/compute_alpha.backendBuckets.html b/docs/dyn/compute_alpha.backendBuckets.html
index d1717d1..971bb3c 100644
--- a/docs/dyn/compute_alpha.backendBuckets.html
+++ b/docs/dyn/compute_alpha.backendBuckets.html
@@ -75,9 +75,15 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.backendBuckets.html">backendBuckets</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#addSignedUrlKey">addSignedUrlKey(project, backendBucket, body, requestId=None)</a></code></p>
+<p class="firstline">Adds the given Signed URL Key to the backend bucket.</p>
+<p class="toc_element">
   <code><a href="#delete">delete(project, backendBucket, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified BackendBucket resource.</p>
 <p class="toc_element">
+  <code><a href="#deleteSignedUrlKey">deleteSignedUrlKey(project, backendBucket, keyName, requestId=None)</a></code></p>
+<p class="firstline">Deletes the given Signed URL Key from the backend bucket.</p>
+<p class="toc_element">
   <code><a href="#get">get(project, backendBucket)</a></code></p>
 <p class="firstline">Returns the specified BackendBucket resource. Get a list of available backend buckets by making a list() request.</p>
 <p class="toc_element">
@@ -106,6 +112,73 @@
 <p class="firstline">Updates the specified BackendBucket resource with the data included in the request.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="addSignedUrlKey">addSignedUrlKey(project, backendBucket, body, requestId=None)</code>
+  <pre>Adds the given Signed URL Key to the backend bucket.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendBucket: string, Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs
+    "keyName": "A String", # Name of the key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "keyValue": "A String", # 128-bit key value used for signing the URL. The key value must be a valid RFC 4648 Section 5 base64url encoded string.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="delete">delete(project, backendBucket, requestId=None)</code>
   <pre>Deletes the specified BackendBucket resource.
 
@@ -165,6 +238,66 @@
 </div>
 
 <div class="method">
+    <code class="details" id="deleteSignedUrlKey">deleteSignedUrlKey(project, backendBucket, keyName, requestId=None)</code>
+  <pre>Deletes the given Signed URL Key from the backend bucket.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendBucket: string, Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035. (required)
+  keyName: string, The name of the Signed URL Key to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(project, backendBucket)</code>
   <pre>Returns the specified BackendBucket resource. Get a list of available backend buckets by making a list() request.
 
@@ -182,7 +315,7 @@
         "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
           "A String",
         ],
-        "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+        "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       },
       "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
       "bucketName": "A String", # Cloud Storage bucket name.
@@ -216,9 +349,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -234,7 +373,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -245,6 +384,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -293,6 +435,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -318,7 +462,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     },
     "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
     "bucketName": "A String", # Cloud Storage bucket name.
@@ -416,7 +560,7 @@
             "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
               "A String",
             ],
-            "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+            "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
           },
           "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
           "bucketName": "A String", # Cloud Storage bucket name.
@@ -463,7 +607,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     },
     "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
     "bucketName": "A String", # Cloud Storage bucket name.
@@ -547,9 +691,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -565,7 +715,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -576,6 +726,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -624,6 +777,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -648,9 +803,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -666,7 +827,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -677,6 +838,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -725,6 +889,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -778,7 +944,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend bucket.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this bucket had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     },
     "enableCdn": True or False, # If true, enable Cloud CDN for this BackendBucket.
     "bucketName": "A String", # Cloud Storage bucket name.
diff --git a/docs/dyn/compute_alpha.backendServices.html b/docs/dyn/compute_alpha.backendServices.html
index 259859a..3065a16 100644
--- a/docs/dyn/compute_alpha.backendServices.html
+++ b/docs/dyn/compute_alpha.backendServices.html
@@ -75,6 +75,9 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.backendServices.html">backendServices</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#addSignedUrlKey">addSignedUrlKey(project, backendService, body, requestId=None)</a></code></p>
+<p class="firstline">Adds the given Signed URL Key to the specified backend service.</p>
+<p class="toc_element">
   <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Retrieves the list of all BackendService resources, regional and global, available to the specified project.</p>
 <p class="toc_element">
@@ -84,6 +87,9 @@
   <code><a href="#delete">delete(project, backendService, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified BackendService resource.</p>
 <p class="toc_element">
+  <code><a href="#deleteSignedUrlKey">deleteSignedUrlKey(project, backendService, keyName, requestId=None)</a></code></p>
+<p class="firstline">Deletes the given Signed URL Key from the specified backend service.</p>
+<p class="toc_element">
   <code><a href="#get">get(project, backendService)</a></code></p>
 <p class="firstline">Returns the specified BackendService resource. Get a list of available backend services by making a list() request.</p>
 <p class="toc_element">
@@ -102,6 +108,9 @@
   <code><a href="#patch">patch(project, backendService, body, requestId=None)</a></code></p>
 <p class="firstline">Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
 <p class="toc_element">
+  <code><a href="#setSecurityPolicy">setSecurityPolicy(project, backendService, body, requestId=None)</a></code></p>
+<p class="firstline">Sets the security policy for the specified backend service.</p>
+<p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
@@ -109,6 +118,73 @@
 <p class="firstline">Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="addSignedUrlKey">addSignedUrlKey(project, backendService, body, requestId=None)</code>
+  <pre>Adds the given Signed URL Key to the specified backend service.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendService: string, Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs
+    "keyName": "A String", # Name of the key. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "keyValue": "A String", # 128-bit key value used for signing the URL. The key value must be a valid RFC 4648 Section 5 base64url encoded string.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
   <pre>Retrieves the list of all BackendService resources, regional and global, available to the specified project.
 
@@ -154,6 +230,11 @@
               "connectionDraining": { # Message containing connection draining configuration.
                 "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
               },
+              "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+                  #
+                  # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+                  #
+                  # This field is only used with l4 load balancing.
               "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
                   #
                   # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -178,7 +259,7 @@
                 "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
                   "A String",
                 ],
-                "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+                "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
                 "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
                   "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
                   "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -212,7 +293,7 @@
                       #
                       # This cannot be used for internal load balancing.
                   "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-                  "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+                  "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                       #
                       # This cannot be used for internal load balancing.
                   "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -236,7 +317,7 @@
                 "oauth2ClientId": "A String",
                 "enabled": True or False,
                 "oauth2ClientSecret": "A String",
-                "oauth2ClientSecretSha256": "A String",
+                "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
               },
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -336,6 +417,66 @@
 </div>
 
 <div class="method">
+    <code class="details" id="deleteSignedUrlKey">deleteSignedUrlKey(project, backendService, keyName, requestId=None)</code>
+  <pre>Deletes the given Signed URL Key from the specified backend service.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendService: string, Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035. (required)
+  keyName: string, The name of the Signed URL Key to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(project, backendService)</code>
   <pre>Returns the specified BackendService resource. Get a list of available backend services by making a list() request.
 
@@ -350,6 +491,11 @@
       "connectionDraining": { # Message containing connection draining configuration.
         "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
       },
+      "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+          #
+          # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+          #
+          # This field is only used with l4 load balancing.
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
           # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -374,7 +520,7 @@
         "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
           "A String",
         ],
-        "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+        "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
           "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
           "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -408,7 +554,7 @@
               #
               # This cannot be used for internal load balancing.
           "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
               #
               # This cannot be used for internal load balancing.
           "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -432,7 +578,7 @@
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
-        "oauth2ClientSecretSha256": "A String",
+        "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
       },
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -495,6 +641,11 @@
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
+    "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+        # 
+        # This field is only used with l4 load balancing.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
         # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -519,7 +670,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -553,7 +704,7 @@
             #
             # This cannot be used for internal load balancing.
         "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -577,7 +728,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -680,6 +831,11 @@
           "connectionDraining": { # Message containing connection draining configuration.
             "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
           },
+          "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+              #
+              # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+              #
+              # This field is only used with l4 load balancing.
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
               # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -704,7 +860,7 @@
             "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
               "A String",
             ],
-            "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+            "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
             "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
               "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
               "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -738,7 +894,7 @@
                   #
                   # This cannot be used for internal load balancing.
               "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                   #
                   # This cannot be used for internal load balancing.
               "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -762,7 +918,7 @@
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
-            "oauth2ClientSecretSha256": "A String",
+            "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
           },
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -814,6 +970,11 @@
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
+    "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+        # 
+        # This field is only used with l4 load balancing.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
         # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -838,7 +999,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -872,7 +1033,7 @@
             #
             # This cannot be used for internal load balancing.
         "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -896,7 +1057,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -967,6 +1128,72 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setSecurityPolicy">setSecurityPolicy(project, backendService, body, requestId=None)</code>
+  <pre>Sets the security policy for the specified backend service.
+
+Args:
+  project: string, Project ID for this request. (required)
+  backendService: string, Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "securityPolicy": "A String",
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(project, resource, body)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 
@@ -1007,6 +1234,11 @@
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
+    "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+        # 
+        # This field is only used with l4 load balancing.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
         # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -1031,7 +1263,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -1065,7 +1297,7 @@
             #
             # This cannot be used for internal load balancing.
         "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -1089,7 +1321,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
diff --git a/docs/dyn/compute_alpha.commitments.html b/docs/dyn/compute_alpha.commitments.html
deleted file mode 100644
index ab657a8..0000000
--- a/docs/dyn/compute_alpha.commitments.html
+++ /dev/null
@@ -1,404 +0,0 @@
-<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="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.commitments.html">commitments</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves an aggregated list of commitments.</p>
-<p class="toc_element">
-  <code><a href="#aggregatedList_next">aggregatedList_next(previous_request, previous_response)</a></code></p>
-<p class="firstline">Retrieves the next page of results.</p>
-<p class="toc_element">
-  <code><a href="#get">get(project, zone, commitment)</a></code></p>
-<p class="firstline">Returns the specified commitment resource. Get a list of available commitments by making a list() request.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(project, zone, body, requestId=None)</a></code></p>
-<p class="firstline">Creates an commitment in the specified project using the data included in the request.</p>
-<p class="toc_element">
-  <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves a list of commitments contained within the specified zone.</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>
-<p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
-<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves an aggregated list of commitments.
-
-Args:
-  project: string, Project ID for this request. (required)
-  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
-
-You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
-
-Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
-  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
-  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
-
-The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
-
-For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
-
-You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
-
-To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": { # Commitments by scope.
-      "a_key": { # [Output Only] Name of the scope containing this set of commitments.
-        "warning": { # [Output Only] Informational warning which replaces the list of commitments when the list is empty.
-          "message": "A String", # [Output Only] A human-readable description of the warning code.
-          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
-          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
-              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
-            {
-              "value": "A String", # [Output Only] A warning data value corresponding to the key.
-              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
-            },
-          ],
-        },
-        "commitments": [ # [Output Only] List of commitments contained in this scope.
-          { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-              "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-              "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-              "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-              "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-              "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-              "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-              "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-              "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
-              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-              "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-                { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-                  "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-                  "type": "A String", # Type of resource for which this commitment applies.
-                },
-              ],
-              "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-            },
-        ],
-      },
-    },
-    "kind": "compute#commitmentAggregatedList", # [Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="aggregatedList_next">aggregatedList_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>
-
-<div class="method">
-    <code class="details" id="get">get(project, zone, commitment)</code>
-  <pre>Returns the specified commitment resource. Get a list of available commitments by making a list() request.
-
-Args:
-  project: string, Project ID for this request. (required)
-  zone: string, Name of the zone for this request. (required)
-  commitment: string, Name of the commitment to return. (required)
-
-Returns:
-  An object of the form:
-
-    { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-      "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-      "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-      "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-      "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-      "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-      "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-      "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
-      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-      "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-        { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-          "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-          "type": "A String", # Type of resource for which this commitment applies.
-        },
-      ],
-      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
-  <pre>Creates an commitment in the specified project using the data included in the request.
-
-Args:
-  project: string, Project ID for this request. (required)
-  zone: string, Name of the zone for this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-    "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-    "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-    "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-    "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-    "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-      { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-        "type": "A String", # Type of resource for which this commitment applies.
-      },
-    ],
-    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  }
-
-  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
-
-Returns:
-  An object of the form:
-
-    { # An Operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
-    "clientOperationId": "A String", # [Output Only] Reserved for future use.
-    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
-    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
-    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
-    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
-    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
-    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
-    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
-    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
-    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
-    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
-      {
-        "message": "A String", # [Output Only] A human-readable description of the warning code.
-        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
-        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
-            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
-          {
-            "value": "A String", # [Output Only] A warning data value corresponding to the key.
-            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
-          },
-        ],
-      },
-    ],
-    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
-    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
-    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
-    "name": "A String", # [Output Only] Name of the resource.
-    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
-    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
-      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
-        {
-          "message": "A String", # [Output Only] An optional, human-readable error message.
-          "code": "A String", # [Output Only] The error type identifier for this error.
-          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
-        },
-      ],
-    },
-    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
-    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves a list of commitments contained within the specified zone.
-
-Args:
-  project: string, Project ID for this request. (required)
-  zone: string, Name of the zone for this request. (required)
-  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
-
-You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
-
-Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
-  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
-  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
-
-The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
-
-For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
-
-You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
-
-To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
-
-Returns:
-  An object of the form:
-
-    { # Contains a list of Commitment resources.
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": [ # A list of Commitment resources.
-      { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-          "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-          "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-          "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-          "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-          "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-          "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-          "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
-          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-          "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-            { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-              "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-              "type": "A String", # Type of resource for which this commitment applies.
-            },
-          ],
-          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-        },
-    ],
-    "kind": "compute#commitmentList", # [Output Only] Type of resource. Always compute#commitmentList for lists of commitments.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-  }</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>
-
-<div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(project, zone, resource, body)</code>
-  <pre>Returns permissions that a caller has on the specified resource.
-
-Args:
-  project: string, Project ID for this request. (required)
-  zone: string, The name of the zone for this request. (required)
-  resource: string, Name of the resource for this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
-      "A String",
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.disks.html b/docs/dyn/compute_alpha.disks.html
index c75b0a6..00e79a5 100644
--- a/docs/dyn/compute_alpha.disks.html
+++ b/docs/dyn/compute_alpha.disks.html
@@ -155,6 +155,7 @@
                     # - The key is wrapped using a RSA public key certificate provided by Google.
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
               },
               "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
                 "a_key": "A String",
@@ -182,6 +183,7 @@
                     # - The key is wrapped using a RSA public key certificate provided by Google.
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
               },
               "zone": "A String", # [Output Only] URL of the zone where the disk resides.
               "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -217,6 +219,7 @@
                     # - The key is wrapped using a RSA public key certificate provided by Google.
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
               },
               "options": "A String", # Internal use only.
               "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -295,6 +298,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "storageBytes": "A String", # [Output Only] A size of the the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -314,6 +318,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
@@ -468,6 +473,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
         "a_key": "A String",
@@ -495,6 +501,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "zone": "A String", # [Output Only] URL of the zone where the disk resides.
       "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -530,6 +537,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "options": "A String", # Internal use only.
       "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -577,9 +585,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -595,7 +609,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -606,6 +620,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -654,6 +671,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -683,6 +702,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
       "a_key": "A String",
@@ -710,6 +730,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "zone": "A String", # [Output Only] URL of the zone where the disk resides.
     "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -745,6 +766,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "options": "A String", # Internal use only.
     "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -860,6 +882,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
             "a_key": "A String",
@@ -887,6 +910,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "zone": "A String", # [Output Only] URL of the zone where the disk resides.
           "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -922,6 +946,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "options": "A String", # Internal use only.
           "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -1054,9 +1079,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -1072,7 +1103,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -1083,6 +1114,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -1131,6 +1165,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -1155,9 +1191,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -1173,7 +1215,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -1184,6 +1226,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -1232,6 +1277,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
diff --git a/docs/dyn/compute_alpha.firewalls.html b/docs/dyn/compute_alpha.firewalls.html
index dd42670..5eb61f3 100644
--- a/docs/dyn/compute_alpha.firewalls.html
+++ b/docs/dyn/compute_alpha.firewalls.html
@@ -97,7 +97,7 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, firewall, body, requestId=None)</a></code></p>
-<p class="firstline">Updates the specified firewall rule with the data included in the request.</p>
+<p class="firstline">Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, firewall, requestId=None)</code>
@@ -191,7 +191,7 @@
           ],
         },
       ],
-      "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+      "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
       "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
         "A String",
       ],
@@ -256,7 +256,7 @@
         ],
       },
     ],
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
@@ -392,7 +392,7 @@
               ],
             },
           ],
-          "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+          "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
           "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
             "A String",
           ],
@@ -477,7 +477,7 @@
         ],
       },
     ],
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
@@ -591,7 +591,7 @@
 
 <div class="method">
     <code class="details" id="update">update(project, firewall, body, requestId=None)</code>
-  <pre>Updates the specified firewall rule with the data included in the request.
+  <pre>Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -621,7 +621,7 @@
         ],
       },
     ],
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
diff --git a/docs/dyn/compute_alpha.forwardingRules.html b/docs/dyn/compute_alpha.forwardingRules.html
index c7049f8..b15bfe1 100644
--- a/docs/dyn/compute_alpha.forwardingRules.html
+++ b/docs/dyn/compute_alpha.forwardingRules.html
@@ -96,6 +96,9 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
+  <code><a href="#patch">patch(project, region, forwardingRule, body, requestId=None)</a></code></p>
+<p class="firstline">Updates the specified forwarding rule with the data included in the request. This method supports patch semantics. Currently it only allow to patch network_tier field.</p>
+<p class="toc_element">
   <code><a href="#setLabels">setLabels(project, region, resource, body, requestId=None)</a></code></p>
 <p class="firstline">Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
@@ -136,7 +139,7 @@
     "items": { # A map of scoped forwarding rule lists.
       "a_key": { # Name of the scope containing this set of addresses.
         "forwardingRules": [ # List of forwarding rules contained in this scope.
-          { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+          { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
               "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
                 "a_key": "A String",
               },
@@ -150,9 +153,16 @@
               "network": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-              "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
                   #
-                  # This field is not used for internal load balancing.
+                  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+                  #
+                  # Some types of forwarding target have constraints on the acceptable ports:
+                  # - TargetHttpProxy: 80, 8080
+                  # - TargetHttpsProxy: 443
+                  # - TargetSslProxy: 443
+                  # - TargetVpnGateway: 500, 4500
+                  # -
               "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
               "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
                   #
@@ -162,9 +172,9 @@
                   # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
               "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
                   #
-                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
                   #
-                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
                   #
@@ -175,7 +185,7 @@
                   #
                   # This field is only used for internal load balancing.
               "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
                   #
                   # This field is not used for internal load balancing.
               "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -185,9 +195,9 @@
                   # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
                   #
                   # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-              "ports": [ # This field is not used for external load balancing.
+              "ports": [ # This field is used along with the backend_service field for internal load balancing.
                   #
-                  # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+                  # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
                   #
                   # You may specify a maximum of up to 5 ports.
                 "A String",
@@ -300,7 +310,7 @@
 Returns:
   An object of the form:
 
-    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
       "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
         "a_key": "A String",
       },
@@ -314,9 +324,16 @@
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+      "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
           #
-          # This field is not used for internal load balancing.
+          # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # Some types of forwarding target have constraints on the acceptable ports:
+          # - TargetHttpProxy: 80, 8080
+          # - TargetHttpsProxy: 443
+          # - TargetSslProxy: 443
+          # - TargetVpnGateway: 500, 4500
+          # -
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
       "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
           #
@@ -326,9 +343,9 @@
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
@@ -339,7 +356,7 @@
           #
           # This field is only used for internal load balancing.
       "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
           #
           # This field is not used for internal load balancing.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -349,9 +366,9 @@
           # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
           #
           # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-      "ports": [ # This field is not used for external load balancing.
+      "ports": [ # This field is used along with the backend_service field for internal load balancing.
           #
-          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
           #
           # You may specify a maximum of up to 5 ports.
         "A String",
@@ -370,7 +387,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
     "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
       "a_key": "A String",
     },
@@ -384,9 +401,16 @@
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
         # 
-        # This field is not used for internal load balancing.
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
         # 
@@ -396,9 +420,9 @@
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
@@ -409,7 +433,7 @@
         # 
         # This field is only used for internal load balancing.
     "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
         # 
         # This field is not used for internal load balancing.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -419,9 +443,9 @@
         # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
         # 
         # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-    "ports": [ # This field is not used for external load balancing.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
         # 
-        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
         # 
         # You may specify a maximum of up to 5 ports.
       "A String",
@@ -511,7 +535,7 @@
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
-      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
           "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
             "a_key": "A String",
           },
@@ -525,9 +549,16 @@
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
               #
-              # This field is not used for internal load balancing.
+              # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # Some types of forwarding target have constraints on the acceptable ports:
+              # - TargetHttpProxy: 80, 8080
+              # - TargetHttpsProxy: 443
+              # - TargetSslProxy: 443
+              # - TargetVpnGateway: 500, 4500
+              # -
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
           "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
               #
@@ -537,9 +568,9 @@
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
@@ -550,7 +581,7 @@
               #
               # This field is only used for internal load balancing.
           "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
               #
               # This field is not used for internal load balancing.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -560,9 +591,9 @@
               # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
               #
               # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-          "ports": [ # This field is not used for external load balancing.
+          "ports": [ # This field is used along with the backend_service field for internal load balancing.
               #
-              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
               #
               # You may specify a maximum of up to 5 ports.
             "A String",
@@ -591,6 +622,135 @@
 </div>
 
 <div class="method">
+    <code class="details" id="patch">patch(project, region, forwardingRule, body, requestId=None)</code>
+  <pre>Updates the specified forwarding rule with the data included in the request. This method supports patch semantics. Currently it only allow to patch network_tier field.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  forwardingRule: string, Name of the ForwardingRule resource to patch. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
+    "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "a_key": "A String",
+    },
+    "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+        # 
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "network": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
+        # 
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+        # 
+        # This field is only used for internal load balancing.
+    "backendService": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+    "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+        # 
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
+        # 
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+        # 
+        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        # 
+        # This field is only used for internal load balancing.
+    "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
+        # 
+        # This field is not used for internal load balancing.
+    "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+    "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+    "subnetwork": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+        # 
+        # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
+        # 
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
+        # 
+        # You may specify a maximum of up to 5 ports.
+      "A String",
+    ],
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setLabels">setLabels(project, region, resource, body, requestId=None)</code>
   <pre>Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.
 
diff --git a/docs/dyn/compute_alpha.globalAddresses.html b/docs/dyn/compute_alpha.globalAddresses.html
index ea840dc..76f570b 100644
--- a/docs/dyn/compute_alpha.globalAddresses.html
+++ b/docs/dyn/compute_alpha.globalAddresses.html
@@ -169,6 +169,7 @@
     { # A reserved address resource.
       "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+      "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
@@ -178,11 +179,14 @@
       },
       "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
       "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-      "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
+      "address": "A String", # The static external IP address represented by this resource.
+      "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+      "subnetwork": "A String", # For external addresses, this field should not be used.
+          #
+          # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -202,6 +206,7 @@
 { # A reserved address resource.
     "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+    "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
@@ -211,11 +216,14 @@
     },
     "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
     "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-    "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
+    "address": "A String", # The static external IP address represented by this resource.
+    "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+    "subnetwork": "A String", # For external addresses, this field should not be used.
+        # 
+        # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -306,6 +314,7 @@
       { # A reserved address resource.
           "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
+          "addressType": "A String", # The type of address to reserve. If unspecified, defaults to EXTERNAL.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
@@ -315,11 +324,14 @@
           },
           "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
           "networkTier": "A String", # This signifies the networking tier used for configuring this Address and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
-          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
-          "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
+          "address": "A String", # The static external IP address represented by this resource.
+          "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+          "subnetwork": "A String", # For external addresses, this field should not be used.
+              #
+              # The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
diff --git a/docs/dyn/compute_alpha.globalForwardingRules.html b/docs/dyn/compute_alpha.globalForwardingRules.html
index 35cc366..231e9e2 100644
--- a/docs/dyn/compute_alpha.globalForwardingRules.html
+++ b/docs/dyn/compute_alpha.globalForwardingRules.html
@@ -76,32 +76,35 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(project, forwardingRule, requestId=None)</a></code></p>
-<p class="firstline">Deletes the specified ForwardingRule resource.</p>
+<p class="firstline">Deletes the specified GlobalForwardingRule resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, forwardingRule)</a></code></p>
-<p class="firstline">Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
+<p class="firstline">Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
-<p class="firstline">Creates a ForwardingRule resource in the specified project and region using the data included in the request.</p>
+<p class="firstline">Creates a GlobalForwardingRule resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves a list of ForwardingRule resources available to the specified project.</p>
+<p class="firstline">Retrieves a list of GlobalForwardingRule resources available to the specified project.</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>
 <p class="toc_element">
+  <code><a href="#patch">patch(project, forwardingRule, body, requestId=None)</a></code></p>
+<p class="firstline">Updates the specified forwarding rule with the data included in the request. This method supports patch semantics. Currently it only allow to patch network_tier field.</p>
+<p class="toc_element">
   <code><a href="#setLabels">setLabels(project, resource, body)</a></code></p>
 <p class="firstline">Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <p class="toc_element">
   <code><a href="#setTarget">setTarget(project, forwardingRule, body, requestId=None)</a></code></p>
-<p class="firstline">Changes target URL for forwarding rule. The new target should be of the same type as the old target.</p>
+<p class="firstline">Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, forwardingRule, requestId=None)</code>
-  <pre>Deletes the specified ForwardingRule resource.
+  <pre>Deletes the specified GlobalForwardingRule resource.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -160,7 +163,7 @@
 
 <div class="method">
     <code class="details" id="get">get(project, forwardingRule)</code>
-  <pre>Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.
+  <pre>Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -169,7 +172,7 @@
 Returns:
   An object of the form:
 
-    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
       "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
         "a_key": "A String",
       },
@@ -183,9 +186,16 @@
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-      "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+      "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
           #
-          # This field is not used for internal load balancing.
+          # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # Some types of forwarding target have constraints on the acceptable ports:
+          # - TargetHttpProxy: 80, 8080
+          # - TargetHttpsProxy: 443
+          # - TargetSslProxy: 443
+          # - TargetVpnGateway: 500, 4500
+          # -
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
       "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
           #
@@ -195,9 +205,9 @@
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
           #
@@ -208,7 +218,7 @@
           #
           # This field is only used for internal load balancing.
       "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
           #
           # This field is not used for internal load balancing.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -218,9 +228,9 @@
           # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
           #
           # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-      "ports": [ # This field is not used for external load balancing.
+      "ports": [ # This field is used along with the backend_service field for internal load balancing.
           #
-          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
           #
           # You may specify a maximum of up to 5 ports.
         "A String",
@@ -231,14 +241,14 @@
 
 <div class="method">
     <code class="details" id="insert">insert(project, body, requestId=None)</code>
-  <pre>Creates a ForwardingRule resource in the specified project and region using the data included in the request.
+  <pre>Creates a GlobalForwardingRule resource in the specified project using the data included in the request.
 
 Args:
   project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
     "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
       "a_key": "A String",
     },
@@ -252,9 +262,16 @@
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-    "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
         # 
-        # This field is not used for internal load balancing.
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
         # 
@@ -264,9 +281,9 @@
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
         # 
@@ -277,7 +294,7 @@
         # 
         # This field is only used for internal load balancing.
     "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
         # 
         # This field is not used for internal load balancing.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -287,9 +304,9 @@
         # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
         # 
         # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-    "ports": [ # This field is not used for external load balancing.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
         # 
-        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
         # 
         # You may specify a maximum of up to 5 ports.
       "A String",
@@ -351,7 +368,7 @@
 
 <div class="method">
     <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves a list of ForwardingRule resources available to the specified project.
+  <pre>Retrieves a list of GlobalForwardingRule resources available to the specified project.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -378,7 +395,7 @@
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
-      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
           "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
             "a_key": "A String",
           },
@@ -392,9 +409,16 @@
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
-          "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
               #
-              # This field is not used for internal load balancing.
+              # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # Some types of forwarding target have constraints on the acceptable ports:
+              # - TargetHttpProxy: 80, 8080
+              # - TargetHttpsProxy: 443
+              # - TargetSslProxy: 443
+              # - TargetVpnGateway: 500, 4500
+              # -
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
           "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
               #
@@ -404,9 +428,9 @@
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
               #
@@ -417,7 +441,7 @@
               #
               # This field is only used for internal load balancing.
           "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
               #
               # This field is not used for internal load balancing.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
@@ -427,9 +451,9 @@
               # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
               #
               # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
-          "ports": [ # This field is not used for external load balancing.
+          "ports": [ # This field is used along with the backend_service field for internal load balancing.
               #
-              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
               #
               # You may specify a maximum of up to 5 ports.
             "A String",
@@ -458,6 +482,134 @@
 </div>
 
 <div class="method">
+    <code class="details" id="patch">patch(project, forwardingRule, body, requestId=None)</code>
+  <pre>Updates the specified forwarding rule with the data included in the request. This method supports patch semantics. Currently it only allow to patch network_tier field.
+
+Args:
+  project: string, Project ID for this request. (required)
+  forwardingRule: string, Name of the ForwardingRule resource to patch. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
+    "labels": { # Labels to apply to this resource. These can be later modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.
+      "a_key": "A String",
+    },
+    "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
+    "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
+    "IPProtocol": "A String", # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
+        # 
+        # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "network": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
+        # 
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+        # 
+        # This field is only used for internal load balancing.
+    "backendService": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
+    "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
+        # 
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
+        # 
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.
+    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+        # 
+        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        # 
+        # This field is only used for internal load balancing.
+    "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
+        # 
+        # This field is not used for internal load balancing.
+    "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
+    "networkTier": "A String", # This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+    "subnetwork": "A String", # This field is not used for external load balancing.
+        # 
+        # For internal load balancing, this field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule.
+        # 
+        # If the network specified is in auto subnet mode, this field is optional. However, if the network is in custom subnet mode, a subnetwork must be specified.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
+        # 
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
+        # 
+        # You may specify a maximum of up to 5 ports.
+      "A String",
+    ],
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setLabels">setLabels(project, resource, body)</code>
   <pre>Sets the labels on the specified resource. To learn more about labels, read the Labeling or Tagging Resources documentation.
 
@@ -527,7 +679,7 @@
 
 <div class="method">
     <code class="details" id="setTarget">setTarget(project, forwardingRule, body, requestId=None)</code>
-  <pre>Changes target URL for forwarding rule. The new target should be of the same type as the old target.
+  <pre>Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.
 
 Args:
   project: string, Project ID for this request. (required)
diff --git a/docs/dyn/compute_alpha.hosts.html b/docs/dyn/compute_alpha.hosts.html
index 8c5c0c7..3483752 100644
--- a/docs/dyn/compute_alpha.hosts.html
+++ b/docs/dyn/compute_alpha.hosts.html
@@ -314,9 +314,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -332,7 +338,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -343,6 +349,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -391,6 +400,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -583,9 +594,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -601,7 +618,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -612,6 +629,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -660,6 +680,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -684,9 +706,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -702,7 +730,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -713,6 +741,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -761,6 +792,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
diff --git a/docs/dyn/compute_alpha.html b/docs/dyn/compute_alpha.html
index 4edc8fa..73be8cd 100644
--- a/docs/dyn/compute_alpha.html
+++ b/docs/dyn/compute_alpha.html
@@ -105,11 +105,6 @@
 <p class="firstline">Returns the clientSslPolicies Resource.</p>
 
 <p class="toc_element">
-  <code><a href="compute_alpha.commitments.html">commitments()</a></code>
-</p>
-<p class="firstline">Returns the commitments Resource.</p>
-
-<p class="toc_element">
   <code><a href="compute_alpha.diskTypes.html">diskTypes()</a></code>
 </p>
 <p class="firstline">Returns the diskTypes Resource.</p>
@@ -195,6 +190,21 @@
 <p class="firstline">Returns the instances Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_alpha.interconnectAttachments.html">interconnectAttachments()</a></code>
+</p>
+<p class="firstline">Returns the interconnectAttachments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_alpha.interconnectLocations.html">interconnectLocations()</a></code>
+</p>
+<p class="firstline">Returns the interconnectLocations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="compute_alpha.interconnects.html">interconnects()</a></code>
+</p>
+<p class="firstline">Returns the interconnects Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_alpha.licenses.html">licenses()</a></code>
 </p>
 <p class="firstline">Returns the licenses Resource.</p>
@@ -270,6 +280,11 @@
 <p class="firstline">Returns the routes Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_alpha.securityPolicies.html">securityPolicies()</a></code>
+</p>
+<p class="firstline">Returns the securityPolicies Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_alpha.snapshots.html">snapshots()</a></code>
 </p>
 <p class="firstline">Returns the snapshots Resource.</p>
diff --git a/docs/dyn/compute_alpha.images.html b/docs/dyn/compute_alpha.images.html
index de1e2ed..5a75fdc 100644
--- a/docs/dyn/compute_alpha.images.html
+++ b/docs/dyn/compute_alpha.images.html
@@ -90,7 +90,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(project, resource)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body, forceCreation=None, requestId=None)</a></code></p>
+  <code><a href="#insert">insert(project, body, requestId=None, forceCreate=None)</a></code></p>
 <p class="firstline">Creates an image in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
@@ -251,6 +251,17 @@
   An object of the form:
 
     { # An Image resource.
+      "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
+        "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+        "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+        "rsaEncryptedKey": "A String", # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+            #
+            # The key must meet the following requirements before you can provide it to Compute Engine:
+            # - The key is wrapped using a RSA public key certificate provided by Google.
+            # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
+            # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
+      },
       "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -260,13 +271,14 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
       "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         { # Guest OS features.
@@ -298,6 +310,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -310,6 +323,7 @@
           #
           # To see the latest fingerprint, make a get() request to retrieve an image.
       "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+      "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.
       "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
           # - this property, or
           # - the rawDisk.source property, or
@@ -340,6 +354,17 @@
   An object of the form:
 
     { # An Image resource.
+      "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
+        "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+        "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+        "rsaEncryptedKey": "A String", # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+            #
+            # The key must meet the following requirements before you can provide it to Compute Engine:
+            # - The key is wrapped using a RSA public key certificate provided by Google.
+            # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
+            # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
+      },
       "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -349,13 +374,14 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
       "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
         "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         { # Guest OS features.
@@ -387,6 +413,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -399,6 +426,7 @@
           #
           # To see the latest fingerprint, make a get() request to retrieve an image.
       "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+      "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.
       "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
           # - this property, or
           # - the rawDisk.source property, or
@@ -440,9 +468,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -458,7 +492,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -469,6 +503,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -517,6 +554,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -527,7 +566,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body, forceCreation=None, requestId=None)</code>
+    <code class="details" id="insert">insert(project, body, requestId=None, forceCreate=None)</code>
   <pre>Creates an image in the specified project using the data included in the request.
 
 Args:
@@ -536,6 +575,17 @@
     The object takes the form of:
 
 { # An Image resource.
+    "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
+      "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+      "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+      "rsaEncryptedKey": "A String", # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+          #
+          # The key must meet the following requirements before you can provide it to Compute Engine:
+          # - The key is wrapped using a RSA public key certificate provided by Google.
+          # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
+          # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
+    },
     "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
       "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
       "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -545,13 +595,14 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
     "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
     "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-    "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+    "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
         # 
         # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
       { # Guest OS features.
@@ -583,6 +634,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -595,6 +647,7 @@
         # 
         # To see the latest fingerprint, make a get() request to retrieve an image.
     "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+    "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.
     "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
         # - this property, or
         # - the rawDisk.source property, or
@@ -612,8 +665,8 @@
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
   }
 
-  forceCreation: boolean, Force image creation if true.
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+  forceCreate: boolean, Force image creation if true.
 
 Returns:
   An object of the form:
@@ -695,6 +748,17 @@
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # [Output Only] A list of Image resources.
       { # An Image resource.
+          "sourceImageEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
+            "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+            "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+            "rsaEncryptedKey": "A String", # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+                #
+                # The key must meet the following requirements before you can provide it to Compute Engine:
+                # - The key is wrapped using a RSA public key certificate provided by Google.
+                # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
+                # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
+          },
           "sourceDiskEncryptionKey": { # Represents a customer-supplied encryption key # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
             "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
@@ -704,13 +768,14 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "family": "A String", # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
           "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
             "a_key": "A String",
           },
           "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-          "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+          "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
               #
               # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
             { # Guest OS features.
@@ -742,6 +807,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -754,6 +820,7 @@
               #
               # To see the latest fingerprint, make a get() request to retrieve an image.
           "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+          "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.
           "sourceImage": "A String", # URL of the source image used to create this image. This can be a full or valid partial URL. You must provide exactly one of:
               # - this property, or
               # - the rawDisk.source property, or
@@ -813,9 +880,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -831,7 +904,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -842,6 +915,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -890,6 +966,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -914,9 +992,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -932,7 +1016,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -943,6 +1027,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -991,6 +1078,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
diff --git a/docs/dyn/compute_alpha.instanceGroupManagers.html b/docs/dyn/compute_alpha.instanceGroupManagers.html
index e8181c7..4f2bcdd 100644
--- a/docs/dyn/compute_alpha.instanceGroupManagers.html
+++ b/docs/dyn/compute_alpha.instanceGroupManagers.html
@@ -109,7 +109,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
-<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
@@ -133,12 +133,16 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, zone, instanceGroupManager, body, requestId=None)</a></code></p>
-<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -147,7 +151,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to abandon from the managed instance group.
+    "instances": [ # The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -334,14 +338,14 @@
                   },
                 ],
               },
-              "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-              "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-                "zones": [
+              "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+                "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
                   {
-                    "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+                    "deviceName": "A String", # Device name of the disk to be preserved
                   },
                 ],
               },
+              "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
             },
         ],
       },
@@ -430,6 +434,10 @@
     <code class="details" id="deleteInstances">deleteInstances(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -438,7 +446,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The list of instances to delete from this managed instance group. Specify one or more instance URLs.
+    "instances": [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -595,14 +603,14 @@
           },
         ],
       },
-      "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-      "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-        "zones": [
+      "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+        "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
           {
-            "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+            "deviceName": "A String", # Device name of the disk to be preserved
           },
         ],
       },
+      "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
     }</pre>
 </div>
 
@@ -610,6 +618,8 @@
     <code class="details" id="insert">insert(project, zone, body, requestId=None)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
+A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where you want to create the managed instance group. (required)
@@ -704,14 +714,14 @@
         },
       ],
     },
-    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-      "zones": [
+    "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+      "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
         {
-          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          "deviceName": "A String", # Device name of the disk to be preserved
         },
       ],
     },
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
   }
 
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
@@ -884,14 +894,14 @@
               },
             ],
           },
-          "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-          "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-            "zones": [
+          "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+            "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
               {
-                "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+                "deviceName": "A String", # Device name of the disk to be preserved
               },
             ],
           },
+          "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
         },
     ],
     "kind": "compute#instanceGroupManagerList", # [Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.
@@ -940,6 +950,16 @@
         "instance": "A String", # [Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.
         "instanceTemplate": "A String", # [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.
         "standbyMode": "A String", # [Output Only] Standby mode of the instance. This field is non-empty iff the instance is a standby.
+        "override": { # Overrides of stateful properties for a given instance # [Output Only] Override defined for this instance.
+          "instance": "A String", # The URL of the instance.
+          "disks": [ # The disk overrides defined for this instance
+            {
+              "deviceName": "A String", # The name of the device on the VM
+              "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+              "source": "A String", # The disk that is/will be mounted
+            },
+          ],
+        },
         "currentAction": "A String", # [Output Only] The current action that the managed instance group has scheduled for the instance. Possible values:
             # - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance.
             # - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.
@@ -985,7 +1005,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, zone, instanceGroupManager, body, requestId=None)</code>
-  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1082,14 +1102,14 @@
         },
       ],
     },
-    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-      "zones": [
+    "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+      "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
         {
-          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          "deviceName": "A String", # Device name of the disk to be preserved
         },
       ],
     },
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
   }
 
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
@@ -1148,6 +1168,10 @@
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -1156,7 +1180,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to recreate.
+    "instances": [ # The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -1217,6 +1241,8 @@
     <code class="details" id="resize">resize(project, zone, instanceGroupManager, size, requestId=None)</code>
   <pre>Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -1280,6 +1306,8 @@
 
 If you increase the size of the instance group, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating, creatingWithoutRetries, or deleting actions with the get or listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -1594,7 +1622,7 @@
 
 <div class="method">
     <code class="details" id="update">update(project, zone, instanceGroupManager, body, requestId=None)</code>
-  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1691,14 +1719,14 @@
         },
       ],
     },
-    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-      "zones": [
+    "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+      "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
         {
-          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          "deviceName": "A String", # Device name of the disk to be preserved
         },
       ],
     },
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
   }
 
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
diff --git a/docs/dyn/compute_alpha.instanceGroups.html b/docs/dyn/compute_alpha.instanceGroups.html
index 723054a..27db554 100644
--- a/docs/dyn/compute_alpha.instanceGroups.html
+++ b/docs/dyn/compute_alpha.instanceGroups.html
@@ -607,6 +607,8 @@
     <code class="details" id="removeInstances">removeInstances(project, zone, instanceGroup, body, requestId=None)</code>
   <pre>Removes one or more instances from the specified instance group, but does not delete those instances.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the instance group is located. (required)
diff --git a/docs/dyn/compute_alpha.instanceTemplates.html b/docs/dyn/compute_alpha.instanceTemplates.html
index d6cf398..b59b960 100644
--- a/docs/dyn/compute_alpha.instanceTemplates.html
+++ b/docs/dyn/compute_alpha.instanceTemplates.html
@@ -191,6 +191,7 @@
                   # - The key is wrapped using a RSA public key certificate provided by Google.
                   # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                   # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+              "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
             },
             "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
                 #
@@ -212,6 +213,7 @@
                     # - The key is wrapped using a RSA public key certificate provided by Google.
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
               },
               "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
               "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -274,20 +276,6 @@
         "labels": { # Labels to apply to instances that are created from this template.
           "a_key": "A String",
         },
-        "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
-          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
-          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-        },
-        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
-        "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
-          { # A service account.
-            "scopes": [ # The list of scopes to be made available for this service account.
-              "A String",
-            ],
-            "email": "A String", # Email address of the service account.
-          },
-        ],
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
             "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -308,7 +296,7 @@
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
               { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                "name": "A String", # Name of this access configuration.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                 "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
                 "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
                 "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -319,12 +307,30 @@
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+            "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
             "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
+        "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. The instance may be scheduled on the specified or later cpu/platform.
+        "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
+          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+        },
+        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
+        "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
+          { # A service account.
+            "scopes": [ # The list of scopes to be made available for this service account.
+              "A String",
+            ],
+            "email": "A String", # Email address of the service account.
+          },
+        ],
         "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
           "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
             {
@@ -335,6 +341,12 @@
           "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
           "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
         },
+        "guestAccelerators": [ # A list of guest accelerator cards' type and count to use for instances created from the instance template.
+          { # A specification of the type and number of accelerator cards attached to the instance.
+            "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+            "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+          },
+        ],
       },
       "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -378,6 +390,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
               #
@@ -399,6 +412,7 @@
                   # - The key is wrapped using a RSA public key certificate provided by Google.
                   # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                   # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+              "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
             },
             "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
             "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -461,20 +475,6 @@
       "labels": { # Labels to apply to instances that are created from this template.
         "a_key": "A String",
       },
-      "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
-        "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-        "preemptible": True or False, # Whether the instance is preemptible.
-        "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-      },
-      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
-      "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
-        { # A service account.
-          "scopes": [ # The list of scopes to be made available for this service account.
-            "A String",
-          ],
-          "email": "A String", # Email address of the service account.
-        },
-      ],
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
           "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -495,7 +495,7 @@
           "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
             { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-              "name": "A String", # Name of this access configuration.
+              "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
               "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
               "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
               "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -506,12 +506,30 @@
             },
           ],
           "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+          "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
           "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
               # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
               # - regions/region/subnetworks/subnetwork
           "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
+      "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. The instance may be scheduled on the specified or later cpu/platform.
+      "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
+        "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+            #
+            # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+        "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+        "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+      },
+      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
+      "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
+        { # A service account.
+          "scopes": [ # The list of scopes to be made available for this service account.
+            "A String",
+          ],
+          "email": "A String", # Email address of the service account.
+        },
+      ],
       "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
         "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
           {
@@ -522,6 +540,12 @@
         "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
         "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
       },
+      "guestAccelerators": [ # A list of guest accelerator cards' type and count to use for instances created from the instance template.
+        { # A specification of the type and number of accelerator cards attached to the instance.
+          "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+          "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+        },
+      ],
     },
     "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -636,6 +660,7 @@
                       # - The key is wrapped using a RSA public key certificate provided by Google.
                       # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                       # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                  "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
                 },
                 "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
                     #
@@ -657,6 +682,7 @@
                         # - The key is wrapped using a RSA public key certificate provided by Google.
                         # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                         # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                    "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
                   },
                   "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
                   "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -719,20 +745,6 @@
             "labels": { # Labels to apply to instances that are created from this template.
               "a_key": "A String",
             },
-            "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
-              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
-              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-            },
-            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
-            "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
-              { # A service account.
-                "scopes": [ # The list of scopes to be made available for this service account.
-                  "A String",
-                ],
-                "email": "A String", # Email address of the service account.
-              },
-            ],
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
                 "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -753,7 +765,7 @@
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
                   { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                    "name": "A String", # Name of this access configuration.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                     "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
                     "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
                     "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -764,12 +776,30 @@
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+                "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
                 "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
+            "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. The instance may be scheduled on the specified or later cpu/platform.
+            "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
+              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+            },
+            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
+            "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
+              { # A service account.
+                "scopes": [ # The list of scopes to be made available for this service account.
+                  "A String",
+                ],
+                "email": "A String", # Email address of the service account.
+              },
+            ],
             "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
               "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
                 {
@@ -780,6 +810,12 @@
               "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
               "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
             },
+            "guestAccelerators": [ # A list of guest accelerator cards' type and count to use for instances created from the instance template.
+              { # A specification of the type and number of accelerator cards attached to the instance.
+                "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+                "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+              },
+            ],
           },
           "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
diff --git a/docs/dyn/compute_alpha.instances.html b/docs/dyn/compute_alpha.instances.html
index 82294ae..fae4b99 100644
--- a/docs/dyn/compute_alpha.instances.html
+++ b/docs/dyn/compute_alpha.instances.html
@@ -85,7 +85,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#attachDisk">attachDisk(project, zone, instance, body, forceAttach=None, requestId=None)</a></code></p>
-<p class="firstline">Attaches a Disk resource to an instance.</p>
+<p class="firstline">Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance, requestId=None)</a></code></p>
 <p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
@@ -111,11 +111,17 @@
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Retrieves the list of instances contained within the specified zone.</p>
 <p class="toc_element">
+  <code><a href="#listReferrers">listReferrers(project, zone, instance, orderBy=None, filter=None, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Retrieves the list of referrers to instances contained within the specified zone.</p>
+<p class="toc_element">
+  <code><a href="#listReferrers_next">listReferrers_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</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>
 <p class="toc_element">
   <code><a href="#reset">reset(project, zone, instance, requestId=None)</a></code></p>
-<p class="firstline">Performs a hard reset on the instance.</p>
+<p class="firstline">Performs a reset on the instance. For more information, see Resetting an instance.</p>
 <p class="toc_element">
   <code><a href="#setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName, requestId=None)</a></code></p>
 <p class="firstline">Sets the auto-delete flag for a disk attached to an instance.</p>
@@ -167,6 +173,9 @@
 <p class="toc_element">
   <code><a href="#updateAccessConfig">updateAccessConfig(project, zone, instance, networkInterface, body, requestId=None)</a></code></p>
 <p class="firstline">Updates the specified access config from an instance's network interface with the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#updateNetworkInterface">updateNetworkInterface(project, zone, instance, networkInterface, body, requestId=None)</a></code></p>
+<p class="firstline">Updates an instance's network interface. This method follows PATCH semantics.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="addAccessConfig">addAccessConfig(project, zone, instance, networkInterface, body, requestId=None)</code>
@@ -182,7 +191,7 @@
 
 { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
   "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-  "name": "A String", # Name of this access configuration.
+  "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
   "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
   "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
   "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -277,7 +286,7 @@
         "instances": [ # [Output Only] List of instances contained in this scope.
           { # An Instance resource.
             "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-            "guestAccelerators": [
+            "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
               { # A specification of the type and number of accelerator cards attached to the instance.
                 "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
                 "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
@@ -286,9 +295,11 @@
             "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
               "a_key": "A String",
             },
-            "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+            "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
               "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
               "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
             },
             "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
@@ -324,7 +335,7 @@
                 "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
                   { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                    "name": "A String", # Name of this access configuration.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                     "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
                     "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
                     "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -335,12 +346,14 @@
                   },
                 ],
                 "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+                "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
                 "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                     # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                     # - regions/region/subnetworks/subnetwork
                 "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
+            "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
             "zone": "A String", # [Output Only] URL of the zone where the instance resides.
             "instanceEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts data for an instance with a customer-supplied encryption key.
                 #
@@ -359,6 +372,7 @@
                   # - The key is wrapped using a RSA public key certificate provided by Google.
                   # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                   # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+              "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
             },
             "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
             "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
@@ -422,6 +436,7 @@
                       # - The key is wrapped using a RSA public key certificate provided by Google.
                       # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                       # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                  "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
                 },
                 "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
                     #
@@ -443,6 +458,7 @@
                         # - The key is wrapped using a RSA public key certificate provided by Google.
                         # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                         # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                    "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
                   },
                   "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
                   "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -530,7 +546,7 @@
 
 <div class="method">
     <code class="details" id="attachDisk">attachDisk(project, zone, instance, body, forceAttach=None, requestId=None)</code>
-  <pre>Attaches a Disk resource to an instance.
+  <pre>Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -557,6 +573,7 @@
         # - The key is wrapped using a RSA public key certificate provided by Google.
         # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
         # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+    "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
   },
   "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
       # 
@@ -578,6 +595,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
     "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -877,7 +895,7 @@
 
     { # An Instance resource.
     "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-    "guestAccelerators": [
+    "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
       { # A specification of the type and number of accelerator cards attached to the instance.
         "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
         "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
@@ -886,9 +904,11 @@
     "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
-    "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+    "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
       "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-      "preemptible": True or False, # Whether the instance is preemptible.
+          #
+          # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+      "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
       "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
     },
     "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
@@ -924,7 +944,7 @@
         "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
           { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
             "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-            "name": "A String", # Name of this access configuration.
+            "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
             "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
             "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
             "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -935,12 +955,14 @@
           },
         ],
         "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+        "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
         "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
             # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
             # - regions/region/subnetworks/subnetwork
         "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
       },
     ],
+    "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
     "zone": "A String", # [Output Only] URL of the zone where the instance resides.
     "instanceEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts data for an instance with a customer-supplied encryption key.
         #
@@ -959,6 +981,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
     "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
@@ -1022,6 +1045,7 @@
               # - The key is wrapped using a RSA public key certificate provided by Google.
               # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
               # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+          "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
         },
         "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
             #
@@ -1043,6 +1067,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
           "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -1120,9 +1145,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -1138,7 +1169,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -1149,6 +1180,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -1197,6 +1231,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -1241,7 +1277,7 @@
 
 { # An Instance resource.
   "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-  "guestAccelerators": [
+  "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
     { # A specification of the type and number of accelerator cards attached to the instance.
       "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
       "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
@@ -1250,9 +1286,11 @@
   "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
     "a_key": "A String",
   },
-  "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+  "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
     "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-    "preemptible": True or False, # Whether the instance is preemptible.
+        #
+        # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+    "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
     "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
   },
   "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
@@ -1288,7 +1326,7 @@
       "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
         { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
           "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-          "name": "A String", # Name of this access configuration.
+          "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
           "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
           "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
           "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -1299,12 +1337,14 @@
         },
       ],
       "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+      "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
       "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
           # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
           # - regions/region/subnetworks/subnetwork
       "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
     },
   ],
+  "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
   "zone": "A String", # [Output Only] URL of the zone where the instance resides.
   "instanceEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts data for an instance with a customer-supplied encryption key.
       # 
@@ -1323,6 +1363,7 @@
         # - The key is wrapped using a RSA public key certificate provided by Google.
         # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
         # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+    "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
   },
   "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
   "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
@@ -1386,6 +1427,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
           #
@@ -1407,6 +1449,7 @@
               # - The key is wrapped using a RSA public key certificate provided by Google.
               # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
               # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+          "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
         },
         "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
         "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -1543,7 +1586,7 @@
     "items": [ # [Output Only] A list of instances.
       { # An Instance resource.
         "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-        "guestAccelerators": [
+        "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
           { # A specification of the type and number of accelerator cards attached to the instance.
             "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
             "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
@@ -1552,9 +1595,11 @@
         "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
           "a_key": "A String",
         },
-        "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+        "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
           "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
           "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
         },
         "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
@@ -1590,7 +1635,7 @@
             "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
               { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                "name": "A String", # Name of this access configuration.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                 "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
                 "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
                 "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -1601,12 +1646,14 @@
               },
             ],
             "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+            "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
             "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
                 # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
                 # - regions/region/subnetworks/subnetwork
             "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
+        "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
         "zone": "A String", # [Output Only] URL of the zone where the instance resides.
         "instanceEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts data for an instance with a customer-supplied encryption key.
             #
@@ -1625,6 +1672,7 @@
               # - The key is wrapped using a RSA public key certificate provided by Google.
               # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
               # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+          "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
         },
         "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
         "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
@@ -1688,6 +1736,7 @@
                   # - The key is wrapped using a RSA public key certificate provided by Google.
                   # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                   # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+              "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
             },
             "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
                 #
@@ -1709,6 +1758,7 @@
                     # - The key is wrapped using a RSA public key certificate provided by Google.
                     # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                     # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+                "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
               },
               "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
               "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
@@ -1768,6 +1818,65 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listReferrers">listReferrers(project, zone, instance, orderBy=None, filter=None, maxResults=None, pageToken=None)</code>
+  <pre>Retrieves the list of referrers to instances contained within the specified zone.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the target instance scoping this request, or '-' if the request should span over all instances in the container. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of instance referrers.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of referrers.
+      { # Represents a reference to a resource.
+        "referrer": "A String", # URL of the resource which refers to the target.
+        "kind": "compute#reference", # [Output Only] Type of the resource. Always compute#reference for references.
+        "referenceType": "A String", # A description of the reference type with no implied semantics. Possible values include:
+            # - MEMBER_OF
+        "target": "A String", # URL of the resource to which this reference points.
+      },
+    ],
+    "kind": "compute#instanceListReferrers", # [Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listReferrers_next">listReferrers_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>
+
+<div class="method">
     <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
   <pre>Retrieves the next page of results.
 
@@ -1783,7 +1892,7 @@
 
 <div class="method">
     <code class="details" id="reset">reset(project, zone, instance, requestId=None)</code>
-  <pre>Performs a hard reset on the instance.
+  <pre>Performs a reset on the instance. For more information, see Resetting an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1926,9 +2035,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -1944,7 +2059,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -1955,6 +2070,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -2003,6 +2121,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -2027,9 +2147,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -2045,7 +2171,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -2056,6 +2182,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -2104,6 +2233,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -2195,7 +2326,7 @@
     The object takes the form of:
 
 {
-    "guestAccelerators": [
+    "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
       { # A specification of the type and number of accelerator cards attached to the instance.
         "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
         "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
@@ -2476,7 +2607,9 @@
 
 { # Sets the scheduling options for an Instance.
   "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-  "preemptible": True or False, # Whether the instance is preemptible.
+      # 
+      # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+  "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
   "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
 }
 
@@ -2816,6 +2949,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "disks": [ # Array of disks associated with this instance that are protected with a customer-supplied encryption key.
         # 
@@ -2832,6 +2966,7 @@
               # - The key is wrapped using a RSA public key certificate provided by Google.
               # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
               # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+          "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
         },
         "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
       },
@@ -3054,7 +3189,7 @@
 
 { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
   "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-  "name": "A String", # Name of this access configuration.
+  "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
   "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
   "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
   "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
@@ -3116,4 +3251,105 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="updateNetworkInterface">updateNetworkInterface(project, zone, instance, networkInterface, body, requestId=None)</code>
+  <pre>Updates an instance's network interface. This method follows PATCH semantics.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, The instance name for this request. (required)
+  networkInterface: string, The name of the network interface to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A network interface resource attached to an instance.
+  "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+  "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+    { # An alias IP range attached to an instance's network interface.
+      "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+      "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+    },
+  ],
+  "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+      # 
+      # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+      # 
+      # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+      # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+      # - projects/project/global/networks/network
+      # - global/networks/default
+  "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+    { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
+      "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+      "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
+      "setPublicDns": True or False, # Specifies whether a public DNS ?A? record should be created for the external IP address of this access configuration.
+      "publicDnsName": "A String", # [Output Only] The public DNS domain name for the instance.
+      "networkTier": "A String", # This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM , SELECT. If this field is not specified, it is assumed to be PREMIUM.
+      "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+      "setPublicPtr": True or False, # Specifies whether a public DNS ?PTR? record should be created to map the external IP address of the instance to a DNS domain name.
+      "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+      "publicPtrDomainName": "A String", # The DNS domain name for the public PTR record. This field can only be set when the set_public_ptr field is enabled.
+    },
+  ],
+  "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+  "fingerprint": "A String", # Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface.
+  "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+      # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+      # - regions/region/subnetworks/subnetwork
+  "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+}
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.interconnectAttachments.html b/docs/dyn/compute_alpha.interconnectAttachments.html
new file mode 100644
index 0000000..5670c2c
--- /dev/null
+++ b/docs/dyn/compute_alpha.interconnectAttachments.html
@@ -0,0 +1,579 @@
+<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="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.interconnectAttachments.html">interconnectAttachments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of interconnect attachments.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, region, interconnectAttachment, requestId=None)</a></code></p>
+<p class="firstline">Deletes the specified interconnect attachment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, region, interconnectAttachment)</a></code></p>
+<p class="firstline">Returns the specified interconnect attachment.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(project, region, resource)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. May be empty if no such policy or resource exists.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
+<p class="firstline">Creates an InterconnectAttachment in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of interconnect attachments contained within the specified region.</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>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of interconnect attachments.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # [Output Only] A map of scoped InterconnectAttachment lists.
+      "a_key": { # Name of the scope containing this set of interconnect attachments.
+        "interconnectAttachments": [ # List of interconnect attachments contained in this scope.
+          { # Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 14
+              "cloudRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.
+              "kind": "compute#interconnectAttachment", # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
+              "customerRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.
+              "interconnect": "A String", # URL of the underlying Interconnect object that this attachment's traffic will traverse through.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "privateInterconnectInfo": { # Private information for an interconnect attachment when this belongs to an interconnect of type IT_PRIVATE. # [Output Only] Information specific to a Private InterconnectAttachment. Only populated if the interconnect that this is attached is of type IT_PRIVATE.
+                "tag8021q": 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.
+              },
+              "googleReferenceId": "A String", # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+              "operationalStatus": "A String", # [Output Only] The current status of whether or not this interconnect attachment is functional.
+              "router": "A String", # URL of the cloud router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.
+              "region": "A String", # [Output Only] URL of the region where the regional interconnect attachment resides.
+              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+              "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+              "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+            },
+        ],
+        "warning": { # Informational warning which replaces the list of addresses when the list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+      },
+    },
+    "kind": "compute#interconnectAttachmentAggregatedList", # [Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, region, interconnectAttachment, requestId=None)</code>
+  <pre>Deletes the specified interconnect attachment.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  interconnectAttachment: string, Name of the interconnect attachment to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, region, interconnectAttachment)</code>
+  <pre>Returns the specified interconnect attachment.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  interconnectAttachment: string, Name of the interconnect attachment to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 14
+      "cloudRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.
+      "kind": "compute#interconnectAttachment", # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
+      "customerRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.
+      "interconnect": "A String", # URL of the underlying Interconnect object that this attachment's traffic will traverse through.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "privateInterconnectInfo": { # Private information for an interconnect attachment when this belongs to an interconnect of type IT_PRIVATE. # [Output Only] Information specific to a Private InterconnectAttachment. Only populated if the interconnect that this is attached is of type IT_PRIVATE.
+        "tag8021q": 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.
+      },
+      "googleReferenceId": "A String", # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+      "operationalStatus": "A String", # [Output Only] The current status of whether or not this interconnect attachment is functional.
+      "router": "A String", # URL of the cloud router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.
+      "region": "A String", # [Output Only] URL of the region where the regional interconnect attachment resides.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(project, region, resource)</code>
+  <pre>Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.
+      #
+      #
+      #
+      # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM.
+      #
+      # **Example**
+      #
+      # { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] }
+      #
+      # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
+    "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
+          "A String",
+        ],
+        "auditLogConfigs": [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example:
+              #
+              # { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", } ] }
+              #
+              # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting foo@gmail.com from DATA_READ logging.
+            "exemptedMembers": [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of [Binding.members][].
+              "A String",
+            ],
+            "logType": "A String", # The log type that this config enables.
+          },
+        ],
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
+      { # A rule to be applied in a Policy.
+        "logConfigs": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
+          { # Specifies what kind of log the caller must write
+            "counter": { # Options for counters # Counter options.
+              "field": "A String", # The field value to attribute.
+              "metric": "A String", # The metric to update.
+            },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
+          },
+        ],
+        "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+          "A String",
+        ],
+        "ins": [ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+          "A String",
+        ],
+        "action": "A String", # Required
+        "permissions": [ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+          "A String",
+        ],
+        "conditions": [ # Additional restrictions that must be met
+          { # A condition to be met.
+            "iam": "A String", # Trusted attributes supplied by the IAM system.
+            "svc": "A String", # Trusted attributes discharged by the service.
+            "value": "A String", # DEPRECATED. Use 'values' instead.
+            "sys": "A String", # Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.
+            "values": [ # The objects of the condition. This is mutually exclusive with 'value'.
+              "A String",
+            ],
+            "op": "A String", # An operator to apply the subject with.
+          },
+        ],
+        "description": "A String", # Human-readable description of the rule.
+      },
+    ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
+    "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
+        #
+        # If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly.
+    "bindings": [ # Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error.
+      { # Associates `members` with a `role`.
+        "role": "A String", # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+        "members": [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
+            #
+            # * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account.
+            #
+            # * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account.
+            #
+            # * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`.
+            #
+            #
+            #
+            # * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
+            #
+            # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
+            #
+            #
+            #
+            # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
+          "A String",
+        ],
+      },
+    ],
+    "iamOwned": True or False,
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
+  <pre>Creates an InterconnectAttachment in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 14
+    "cloudRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.
+    "kind": "compute#interconnectAttachment", # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
+    "customerRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.
+    "interconnect": "A String", # URL of the underlying Interconnect object that this attachment's traffic will traverse through.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "privateInterconnectInfo": { # Private information for an interconnect attachment when this belongs to an interconnect of type IT_PRIVATE. # [Output Only] Information specific to a Private InterconnectAttachment. Only populated if the interconnect that this is attached is of type IT_PRIVATE.
+      "tag8021q": 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.
+    },
+    "googleReferenceId": "A String", # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+    "operationalStatus": "A String", # [Output Only] The current status of whether or not this interconnect attachment is functional.
+    "router": "A String", # URL of the cloud router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.
+    "region": "A String", # [Output Only] URL of the region where the regional interconnect attachment resides.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of interconnect attachments contained within the specified region.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Response to the list request, and contains a list of interconnect attachments.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of InterconnectAttachment resources.
+      { # Protocol definitions for Mixer API to support InterconnectAttachment. Next available tag: 14
+          "cloudRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.
+          "kind": "compute#interconnectAttachment", # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
+          "customerRouterIpAddress": "A String", # [Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.
+          "interconnect": "A String", # URL of the underlying Interconnect object that this attachment's traffic will traverse through.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "privateInterconnectInfo": { # Private information for an interconnect attachment when this belongs to an interconnect of type IT_PRIVATE. # [Output Only] Information specific to a Private InterconnectAttachment. Only populated if the interconnect that this is attached is of type IT_PRIVATE.
+            "tag8021q": 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.
+          },
+          "googleReferenceId": "A String", # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+          "operationalStatus": "A String", # [Output Only] The current status of whether or not this interconnect attachment is functional.
+          "router": "A String", # URL of the cloud router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network & region within which the Cloud Router is configured.
+          "region": "A String", # [Output Only] URL of the region where the regional interconnect attachment resides.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+    "kind": "compute#interconnectAttachmentList", # [Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(project, region, resource, body)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.interconnectLocations.html b/docs/dyn/compute_alpha.interconnectLocations.html
new file mode 100644
index 0000000..09210b3
--- /dev/null
+++ b/docs/dyn/compute_alpha.interconnectLocations.html
@@ -0,0 +1,224 @@
+<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="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.interconnectLocations.html">interconnectLocations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, interconnectLocation)</a></code></p>
+<p class="firstline">Returns the details for the specified interconnect location. Get a list of available interconnect locations by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of interconnect locations available to the specified project.</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>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, interconnectLocation)</code>
+  <pre>Returns the details for the specified interconnect location. Get a list of available interconnect locations by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  interconnectLocation: string, Name of the interconnect location to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # Protocol definitions for Mixer API to support InterconnectLocation.
+    "city": "A String", # City designator used by the Interconnect UI to locate this InterconnectLocation within the Continent. For example: "Chicago, IL", "Amsterdam, Netherlands".
+    "kind": "compute#interconnectLocation", # [Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.
+    "availabilityZone": "A String", # Availability zone for this location. Within a city, maintenance will not be simultaneously scheduled in more than one availability zone. Example: "zone1" or "zone2".
+    "description": "A String", # [Output Only] An optional description of the resource.
+    "peeringdbFacilityId": "A String", # [Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).
+    "facilityProvider": "A String", # [Output Only] The name of the provider for this facility (e.g., EQUINIX).
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "regionInfos": [ # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions.
+      { # Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.
+        "regionKey": "A String", # Scope key for the region of this location.
+        "locationPresence": "A String", # Identifies the network presence of this location.
+        "expectedRttMs": "A String", # Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.
+      },
+    ],
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "address": "A String", # [Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "continent": "A String", # Continent for this location. Used by the location picker in the Interconnect UI.
+    "facilityProviderFacilityId": "A String", # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).
+    "name": "A String", # [Output Only] Name of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of interconnect locations available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Response to the list request, and contains a list of interconnect locations.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of InterconnectLocation resources.
+      { # Protocol definitions for Mixer API to support InterconnectLocation.
+        "city": "A String", # City designator used by the Interconnect UI to locate this InterconnectLocation within the Continent. For example: "Chicago, IL", "Amsterdam, Netherlands".
+        "kind": "compute#interconnectLocation", # [Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.
+        "availabilityZone": "A String", # Availability zone for this location. Within a city, maintenance will not be simultaneously scheduled in more than one availability zone. Example: "zone1" or "zone2".
+        "description": "A String", # [Output Only] An optional description of the resource.
+        "peeringdbFacilityId": "A String", # [Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).
+        "facilityProvider": "A String", # [Output Only] The name of the provider for this facility (e.g., EQUINIX).
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "regionInfos": [ # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions.
+          { # Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.
+            "regionKey": "A String", # Scope key for the region of this location.
+            "locationPresence": "A String", # Identifies the network presence of this location.
+            "expectedRttMs": "A String", # Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.
+          },
+        ],
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "address": "A String", # [Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "continent": "A String", # Continent for this location. Used by the location picker in the Interconnect UI.
+        "facilityProviderFacilityId": "A String", # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).
+        "name": "A String", # [Output Only] Name of the resource.
+      },
+    ],
+    "kind": "compute#interconnectLocationList", # [Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(project, resource, body)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.interconnects.html b/docs/dyn/compute_alpha.interconnects.html
new file mode 100644
index 0000000..f096ba0
--- /dev/null
+++ b/docs/dyn/compute_alpha.interconnects.html
@@ -0,0 +1,465 @@
+<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="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.interconnects.html">interconnects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, interconnect, requestId=None)</a></code></p>
+<p class="firstline">Deletes the specified interconnect.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, interconnect)</a></code></p>
+<p class="firstline">Returns the specified interconnect. Get a list of available interconnects by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
+<p class="firstline">Creates a Interconnect in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of interconnect available to the specified project.</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>
+<p class="toc_element">
+  <code><a href="#patch">patch(project, interconnect, body, requestId=None)</a></code></p>
+<p class="firstline">Updates the specified interconnect with the data included in the request using patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, interconnect, requestId=None)</code>
+  <pre>Deletes the specified interconnect.
+
+Args:
+  project: string, Project ID for this request. (required)
+  interconnect: string, Name of the interconnect to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, interconnect)</code>
+  <pre>Returns the specified interconnect. Get a list of available interconnects by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  interconnect: string, Name of the interconnect to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # Protocol definitions for Mixer API to support Interconnect. Next available tag: 21
+      "interconnectType": "A String",
+      "interconnectAttachments": [ # [Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
+        "A String",
+      ],
+      "kind": "compute#interconnect", # [Output Only] Type of the resource. Always compute#interconnect for interconnects.
+      "provisionedLinkCount": 42, # [Output Only] Number of links actually provisioned in this interconnect.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "linkType": "A String",
+      "adminEnabled": True or False, # Administrative status of the interconnect. When this is set to ?true?, the Interconnect is functional and may carry traffic (assuming there are functional InterconnectAttachments and other requirements are satisfied). When set to ?false?, no packets will be carried over this Interconnect and no BGP routes will be exchanged over it. By default, it is set to ?true?.
+      "connectionAuthorization": "A String", # [Output Only] URL to retrieve the Letter Of Authority and Customer Facility Assignment (LOA-CFA) documentation relating to this Interconnect. This documentation authorizes the facility provider to connect to the specified crossconnect ports.
+      "googleReferenceId": "A String", # [Output Only] Google reference ID; to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+      "peerIpAddress": "A String", # [Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+      "operationalStatus": "A String", # [Output Only] The current status of whether or not this Interconnect is functional.
+      "location": "A String", # URL of the InterconnectLocation object that represents where this connection is to be provisioned.
+      "requestedLinkCount": 42, # Target number of physical links in the link bundle, as requested by the customer.
+      "nocContactEmail": "A String", # Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "googleIpAddress": "A String", # [Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
+  <pre>Creates a Interconnect in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Protocol definitions for Mixer API to support Interconnect. Next available tag: 21
+    "interconnectType": "A String",
+    "interconnectAttachments": [ # [Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
+      "A String",
+    ],
+    "kind": "compute#interconnect", # [Output Only] Type of the resource. Always compute#interconnect for interconnects.
+    "provisionedLinkCount": 42, # [Output Only] Number of links actually provisioned in this interconnect.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "linkType": "A String",
+    "adminEnabled": True or False, # Administrative status of the interconnect. When this is set to ?true?, the Interconnect is functional and may carry traffic (assuming there are functional InterconnectAttachments and other requirements are satisfied). When set to ?false?, no packets will be carried over this Interconnect and no BGP routes will be exchanged over it. By default, it is set to ?true?.
+    "connectionAuthorization": "A String", # [Output Only] URL to retrieve the Letter Of Authority and Customer Facility Assignment (LOA-CFA) documentation relating to this Interconnect. This documentation authorizes the facility provider to connect to the specified crossconnect ports.
+    "googleReferenceId": "A String", # [Output Only] Google reference ID; to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+    "peerIpAddress": "A String", # [Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "operationalStatus": "A String", # [Output Only] The current status of whether or not this Interconnect is functional.
+    "location": "A String", # URL of the InterconnectLocation object that represents where this connection is to be provisioned.
+    "requestedLinkCount": 42, # Target number of physical links in the link bundle, as requested by the customer.
+    "nocContactEmail": "A String", # Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "googleIpAddress": "A String", # [Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of interconnect available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Response to the list request, and contains a list of interconnects.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of Interconnect resources.
+      { # Protocol definitions for Mixer API to support Interconnect. Next available tag: 21
+          "interconnectType": "A String",
+          "interconnectAttachments": [ # [Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
+            "A String",
+          ],
+          "kind": "compute#interconnect", # [Output Only] Type of the resource. Always compute#interconnect for interconnects.
+          "provisionedLinkCount": 42, # [Output Only] Number of links actually provisioned in this interconnect.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "linkType": "A String",
+          "adminEnabled": True or False, # Administrative status of the interconnect. When this is set to ?true?, the Interconnect is functional and may carry traffic (assuming there are functional InterconnectAttachments and other requirements are satisfied). When set to ?false?, no packets will be carried over this Interconnect and no BGP routes will be exchanged over it. By default, it is set to ?true?.
+          "connectionAuthorization": "A String", # [Output Only] URL to retrieve the Letter Of Authority and Customer Facility Assignment (LOA-CFA) documentation relating to this Interconnect. This documentation authorizes the facility provider to connect to the specified crossconnect ports.
+          "googleReferenceId": "A String", # [Output Only] Google reference ID; to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+          "peerIpAddress": "A String", # [Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "operationalStatus": "A String", # [Output Only] The current status of whether or not this Interconnect is functional.
+          "location": "A String", # URL of the InterconnectLocation object that represents where this connection is to be provisioned.
+          "requestedLinkCount": 42, # Target number of physical links in the link bundle, as requested by the customer.
+          "nocContactEmail": "A String", # Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "googleIpAddress": "A String", # [Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.
+        },
+    ],
+    "kind": "compute#interconnectList", # [Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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>
+
+<div class="method">
+    <code class="details" id="patch">patch(project, interconnect, body, requestId=None)</code>
+  <pre>Updates the specified interconnect with the data included in the request using patch semantics.
+
+Args:
+  project: string, Project ID for this request. (required)
+  interconnect: string, Name of the interconnect to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Protocol definitions for Mixer API to support Interconnect. Next available tag: 21
+    "interconnectType": "A String",
+    "interconnectAttachments": [ # [Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
+      "A String",
+    ],
+    "kind": "compute#interconnect", # [Output Only] Type of the resource. Always compute#interconnect for interconnects.
+    "provisionedLinkCount": 42, # [Output Only] Number of links actually provisioned in this interconnect.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "linkType": "A String",
+    "adminEnabled": True or False, # Administrative status of the interconnect. When this is set to ?true?, the Interconnect is functional and may carry traffic (assuming there are functional InterconnectAttachments and other requirements are satisfied). When set to ?false?, no packets will be carried over this Interconnect and no BGP routes will be exchanged over it. By default, it is set to ?true?.
+    "connectionAuthorization": "A String", # [Output Only] URL to retrieve the Letter Of Authority and Customer Facility Assignment (LOA-CFA) documentation relating to this Interconnect. This documentation authorizes the facility provider to connect to the specified crossconnect ports.
+    "googleReferenceId": "A String", # [Output Only] Google reference ID; to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.
+    "peerIpAddress": "A String", # [Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "operationalStatus": "A String", # [Output Only] The current status of whether or not this Interconnect is functional.
+    "location": "A String", # URL of the InterconnectLocation object that represents where this connection is to be provisioned.
+    "requestedLinkCount": 42, # Target number of physical links in the link bundle, as requested by the customer.
+    "nocContactEmail": "A String", # Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "googleIpAddress": "A String", # [Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(project, resource, body)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.licenses.html b/docs/dyn/compute_alpha.licenses.html
index e0804db..927ec61 100644
--- a/docs/dyn/compute_alpha.licenses.html
+++ b/docs/dyn/compute_alpha.licenses.html
@@ -75,13 +75,81 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.licenses.html">licenses</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#delete">delete(project, license, requestId=None)</a></code></p>
+<p class="firstline">Deletes the specified license.</p>
+<p class="toc_element">
   <code><a href="#get">get(project, license)</a></code></p>
 <p class="firstline">Returns the specified License resource. Get a list of available licenses by making a list() request.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
 <p class="firstline">Create a License resource in the specified project.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 8. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.</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="delete">delete(project, license, requestId=None)</code>
+  <pre>Deletes the specified license.
+
+Args:
+  project: string, Project ID for this request. (required)
+  license: string, Name of the license resource to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(project, license)</code>
   <pre>Returns the specified License resource. Get a list of available licenses by making a list() request.
 
@@ -186,4 +254,68 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 8. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of License resources.
+      { # A license resource.
+          "kind": "compute#license", # [Output Only] Type of resource. Always compute#license for licenses.
+          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+          "chargesUseFee": True or False, # [Output Only] If true, the customer will be charged license fee for running software that contains this license on an instance.
+          "licenseCode": "A String", # [Output Only] The unique code used to attach this license to images, snapshots, and disks.
+          "transferable": True or False, # If false, licenses will not be copied from the source resource when creating an image from a disk, disk from snapshot, or snapshot from disk.
+          "resourceRequirements": {
+            "minMemoryMb": 42, # Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.
+            "minGuestCpuCount": 42, # Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.
+          },
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "name": "A String", # [Output Only] Name of the resource. The name is 1-63 characters long and complies with RFC1035.
+        },
+    ],
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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
diff --git a/docs/dyn/compute_alpha.networks.html b/docs/dyn/compute_alpha.networks.html
index edd14a7..6691dcb 100644
--- a/docs/dyn/compute_alpha.networks.html
+++ b/docs/dyn/compute_alpha.networks.html
@@ -251,6 +251,9 @@
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
       "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+      "routingConfig": { # A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. # The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce.
+        "routingMode": "A String", # The network-wide routing mode to use. If set to REGIONAL, this network's cloud routers will only advertise routes with subnetworks of this network in the same region as the router. If set to GLOBAL, this network's cloud routers will advertise routes with all subnetworks of this network, across regions.
+      },
       "peerings": [ # [Output Only] List of network peerings for the resource.
         { # A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.
           "network": "A String", # The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
@@ -289,6 +292,9 @@
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
     "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+    "routingConfig": { # A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. # The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce.
+      "routingMode": "A String", # The network-wide routing mode to use. If set to REGIONAL, this network's cloud routers will only advertise routes with subnetworks of this network in the same region as the router. If set to GLOBAL, this network's cloud routers will advertise routes with all subnetworks of this network, across regions.
+    },
     "peerings": [ # [Output Only] List of network peerings for the resource.
       { # A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.
         "network": "A String", # The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
@@ -398,6 +404,9 @@
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
           "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+          "routingConfig": { # A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. # The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce.
+            "routingMode": "A String", # The network-wide routing mode to use. If set to REGIONAL, this network's cloud routers will only advertise routes with subnetworks of this network in the same region as the router. If set to GLOBAL, this network's cloud routers will advertise routes with all subnetworks of this network, across regions.
+          },
           "peerings": [ # [Output Only] List of network peerings for the resource.
             { # A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.
               "network": "A String", # The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.
diff --git a/docs/dyn/compute_alpha.regionAutoscalers.html b/docs/dyn/compute_alpha.regionAutoscalers.html
index e35607f..873708b 100644
--- a/docs/dyn/compute_alpha.regionAutoscalers.html
+++ b/docs/dyn/compute_alpha.regionAutoscalers.html
@@ -197,14 +197,13 @@
         },
         "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
           { # Custom utilization metric policy.
-            "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+            "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                 #
-                # For example, the following is a valid metric:
-                # compute.googleapis.com/instance/network/received_bytes_count
-                # The following is not a valid metric because it does not increase or decrease based on usage:
-                # compute.googleapis.com/instance/cpu/reserved_cores
+                # The metric must have a value type of INT64 or DOUBLE.
             "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-            "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+            "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                #
+                # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
           },
         ],
         "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -266,14 +265,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -406,14 +404,13 @@
             },
             "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
               { # Custom utilization metric policy.
-                "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                     #
-                    # For example, the following is a valid metric:
-                    # compute.googleapis.com/instance/network/received_bytes_count
-                    # The following is not a valid metric because it does not increase or decrease based on usage:
-                    # compute.googleapis.com/instance/cpu/reserved_cores
+                    # The metric must have a value type of INT64 or DOUBLE.
                 "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                    #
+                    # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
               },
             ],
             "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -494,14 +491,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -643,14 +639,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
diff --git a/docs/dyn/compute_alpha.regionBackendServices.html b/docs/dyn/compute_alpha.regionBackendServices.html
index fb89877..2576bc4 100644
--- a/docs/dyn/compute_alpha.regionBackendServices.html
+++ b/docs/dyn/compute_alpha.regionBackendServices.html
@@ -178,6 +178,11 @@
       "connectionDraining": { # Message containing connection draining configuration.
         "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
       },
+      "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+          #
+          # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+          #
+          # This field is only used with l4 load balancing.
       "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
           #
           # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -202,7 +207,7 @@
         "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
           "A String",
         ],
-        "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+        "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
           "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
           "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -236,7 +241,7 @@
               #
               # This cannot be used for internal load balancing.
           "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
               #
               # This cannot be used for internal load balancing.
           "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -260,7 +265,7 @@
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
-        "oauth2ClientSecretSha256": "A String",
+        "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
       },
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -325,6 +330,11 @@
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
+    "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+        # 
+        # This field is only used with l4 load balancing.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
         # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -349,7 +359,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -383,7 +393,7 @@
             #
             # This cannot be used for internal load balancing.
         "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -407,7 +417,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -511,6 +521,11 @@
           "connectionDraining": { # Message containing connection draining configuration.
             "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
           },
+          "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+              #
+              # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+              #
+              # This field is only used with l4 load balancing.
           "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
               #
               # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -535,7 +550,7 @@
             "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
               "A String",
             ],
-            "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+            "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
             "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
               "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
               "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -569,7 +584,7 @@
                   #
                   # This cannot be used for internal load balancing.
               "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                   #
                   # This cannot be used for internal load balancing.
               "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -593,7 +608,7 @@
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
-            "oauth2ClientSecretSha256": "A String",
+            "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
           },
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -646,6 +661,11 @@
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
+    "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+        # 
+        # This field is only used with l4 load balancing.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
         # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -670,7 +690,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -704,7 +724,7 @@
             #
             # This cannot be used for internal load balancing.
         "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -728,7 +748,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
@@ -841,6 +861,11 @@
     "connectionDraining": { # Message containing connection draining configuration.
       "drainingTimeoutSec": 42, # Time for which instance will be drained (not accept new connections, but still work to finish started).
     },
+    "failoverRatio": 3.14, # The value of the field must be in [0, 1]. If set, 'backends[].failover' must be set. They together define the fallback behavior of the primary backend: if the ratio of the healthy VMs in the primary backend is at or below this number, traffic arriving at the load-balanced IP will be directed to the failover backend.
+        # 
+        # In case where 'failoverRatio' is not set or all the VMs in the backup backend are unhealthy, the traffic will be directed back to the primary backend in the "force" mode, where traffic will be spread to the healthy VMs with the best effort, or to all VMs when no VM is healthy.
+        # 
+        # This field is only used with l4 load balancing.
     "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
         # 
         # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
@@ -865,7 +890,7 @@
       "signedUrlKeyNames": [ # [Output Only] Names of the keys currently configured for Cloud CDN Signed URL on this backend service.
         "A String",
       ],
-      "signedUrlTtlSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
+      "signedUrlCacheMaxAgeSec": "A String", # Number of seconds up to which the response to a signed URL request will be cached in the CDN. After this time period, the Signed URL will be revalidated before being served. Defaults to 1hr (3600s). If this field is set, Cloud CDN will internally act as though all responses from this backend had a ?Cache-Control: public, max-age=[TTL]? header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
       "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
         "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
         "includeHost": True or False, # If true, requests to different hosts will be cached separately.
@@ -899,7 +924,7 @@
             #
             # This cannot be used for internal load balancing.
         "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -923,7 +948,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
diff --git a/docs/dyn/compute_alpha.regionCommitments.html b/docs/dyn/compute_alpha.regionCommitments.html
index 8bf6b3d..ce96a22 100644
--- a/docs/dyn/compute_alpha.regionCommitments.html
+++ b/docs/dyn/compute_alpha.regionCommitments.html
@@ -75,11 +75,17 @@
 <h1><a href="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.regionCommitments.html">regionCommitments</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of commitments.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#get">get(project, region, commitment)</a></code></p>
 <p class="firstline">Returns the specified commitment resource. Get a list of available commitments by making a list() request.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, region, body, requestId=None)</a></code></p>
-<p class="firstline">Creates an commitment in the specified project using the data included in the request.</p>
+<p class="firstline">Creates a commitment in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Retrieves a list of commitments contained within the specified region.</p>
@@ -91,6 +97,93 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of commitments.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # Commitments by scope.
+      "a_key": { # [Output Only] Name of the scope containing this set of commitments.
+        "warning": { # [Output Only] Informational warning which replaces the list of commitments when the list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+        "commitments": [ # [Output Only] List of commitments contained in this scope.
+          { # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+                #
+                # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+              "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+              "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+              "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+              "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+              "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+              "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+              "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+              "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+                { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+                  "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+                  "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
+                },
+              ],
+              "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+            },
+        ],
+      },
+    },
+    "kind": "compute#commitmentAggregatedList", # [Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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>
+
+<div class="method">
     <code class="details" id="get">get(project, region, commitment)</code>
   <pre>Returns the specified commitment resource. Get a list of available commitments by making a list() request.
 
@@ -102,8 +195,10 @@
 Returns:
   An object of the form:
 
-    { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-      "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+    { # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+        #
+        # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+      "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
       "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
@@ -112,13 +207,12 @@
       "region": "A String", # [Output Only] URL of the region where this commitment may be used.
       "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
       "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-      "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
         { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-          "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-          "type": "A String", # Type of resource for which this commitment applies.
+          "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+          "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
         },
       ],
       "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -127,7 +221,7 @@
 
 <div class="method">
     <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
-  <pre>Creates an commitment in the specified project using the data included in the request.
+  <pre>Creates a commitment in the specified project using the data included in the request.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -135,8 +229,10 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+{ # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+      # 
+      # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
     "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
@@ -145,19 +241,20 @@
     "region": "A String", # [Output Only] URL of the region where this commitment may be used.
     "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
     "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-    "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
       { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-        "type": "A String", # Type of resource for which this commitment applies.
+        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+        "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
       },
     ],
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
-  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+  requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
+
+For example, consider a situation where you make an initial request and then the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.
 
 Returns:
   An object of the form:
@@ -239,8 +336,10 @@
     { # Contains a list of Commitment resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of Commitment resources.
-      { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-          "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+      { # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+            #
+            # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+          "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
           "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
@@ -249,13 +348,12 @@
           "region": "A String", # [Output Only] URL of the region where this commitment may be used.
           "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
           "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-          "zone": "A String", # [Output Only] URL of the zone where this commitment may be used.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
             { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-              "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-              "type": "A String", # Type of resource for which this commitment applies.
+              "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+              "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
             },
           ],
           "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
diff --git a/docs/dyn/compute_alpha.regionDisks.html b/docs/dyn/compute_alpha.regionDisks.html
index b04b75f..f19b263 100644
--- a/docs/dyn/compute_alpha.regionDisks.html
+++ b/docs/dyn/compute_alpha.regionDisks.html
@@ -125,6 +125,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "storageBytes": "A String", # [Output Only] A size of the the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -144,6 +145,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
     "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
@@ -298,6 +300,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
         "a_key": "A String",
@@ -325,6 +328,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "zone": "A String", # [Output Only] URL of the zone where the disk resides.
       "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -360,6 +364,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "options": "A String", # Internal use only.
       "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -403,6 +408,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
       "a_key": "A String",
@@ -430,6 +436,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "zone": "A String", # [Output Only] URL of the zone where the disk resides.
     "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -465,6 +472,7 @@
           # - The key is wrapped using a RSA public key certificate provided by Google.
           # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
           # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
     },
     "options": "A String", # Internal use only.
     "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
@@ -580,6 +588,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
             "a_key": "A String",
@@ -607,6 +616,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "zone": "A String", # [Output Only] URL of the zone where the disk resides.
           "lastAttachTimestamp": "A String", # [Output Only] Last attach timestamp in RFC3339 text format.
@@ -642,6 +652,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "options": "A String", # Internal use only.
           "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
diff --git a/docs/dyn/compute_alpha.regionInstanceGroupManagers.html b/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
index a2c1d28..bf004c4 100644
--- a/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
@@ -103,7 +103,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
-<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body, requestId=None)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
@@ -130,6 +130,10 @@
     <code class="details" id="abandonInstances">abandonInstances(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -138,7 +142,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The names of one or more instances to abandon.
+    "instances": [ # The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -259,6 +263,10 @@
     <code class="details" id="deleteInstances">deleteInstances(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -267,7 +275,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The names of one or more instances to delete.
+    "instances": [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -424,14 +432,14 @@
           },
         ],
       },
-      "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-      "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-        "zones": [
+      "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+        "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
           {
-            "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+            "deviceName": "A String", # Device name of the disk to be preserved
           },
         ],
       },
+      "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
     }</pre>
 </div>
 
@@ -439,6 +447,8 @@
     <code class="details" id="insert">insert(project, region, body, requestId=None)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
+A regional managed instance group can contain up to 2000 instances.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -533,14 +543,14 @@
         },
       ],
     },
-    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-      "zones": [
+    "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+      "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
         {
-          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          "deviceName": "A String", # Device name of the disk to be preserved
         },
       ],
     },
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
   }
 
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
@@ -713,14 +723,14 @@
               },
             ],
           },
-          "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-          "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-            "zones": [
+          "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+            "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
               {
-                "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+                "deviceName": "A String", # Device name of the disk to be preserved
               },
             ],
           },
+          "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
         },
     ],
     "kind": "compute#regionInstanceGroupManagerList", # [Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope.
@@ -769,6 +779,16 @@
         "instance": "A String", # [Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.
         "instanceTemplate": "A String", # [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.
         "standbyMode": "A String", # [Output Only] Standby mode of the instance. This field is non-empty iff the instance is a standby.
+        "override": { # Overrides of stateful properties for a given instance # [Output Only] Override defined for this instance.
+          "instance": "A String", # The URL of the instance.
+          "disks": [ # The disk overrides defined for this instance
+            {
+              "deviceName": "A String", # The name of the device on the VM
+              "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+              "source": "A String", # The disk that is/will be mounted
+            },
+          ],
+        },
         "currentAction": "A String", # [Output Only] The current action that the managed instance group has scheduled for the instance. Possible values:
             # - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance.
             # - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.
@@ -814,7 +834,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, region, instanceGroupManager, body, requestId=None)</code>
-  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -911,14 +931,14 @@
         },
       ],
     },
-    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-      "zones": [
+    "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+      "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
         {
-          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          "deviceName": "A String", # Device name of the disk to be preserved
         },
       ],
     },
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
   }
 
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
@@ -977,6 +997,10 @@
     <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body, requestId=None)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -985,7 +1009,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to recreate.
+    "instances": [ # The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -1046,6 +1070,8 @@
     <code class="details" id="resize">resize(project, region, instanceGroupManager, size, requestId=None)</code>
   <pre>Changes the intended size for the managed instance group. If you increase the size, the group schedules actions to create new instances using the current instance template. If you decrease the size, the group schedules delete actions on one or more instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -1444,14 +1470,14 @@
         },
       ],
     },
-    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
-    "spreadingPolicy": { # Deprecated in favor of distribution policy. # Policy valid only for regional managed instance groups. Deprecated in favor of distribution_policy.
-      "zones": [
+    "statefulPolicy": { # Stateful configuration for this Instanced Group Manager
+      "preservedDisks": [ # Disks created on the instances that will be preserved on instance delete, resize down, etc.
         {
-          "zone": "A String", # URL of the zone where managed instance group is spawning instances (for regional resources). Zone has to belong to the region where managed instance group is located.
+          "deviceName": "A String", # Device name of the disk to be preserved
         },
       ],
     },
+    "selfLink": "A String", # [Output Only] The URL for this managed instance group. The server defines this URL.
   }
 
   requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
diff --git a/docs/dyn/compute_alpha.routers.html b/docs/dyn/compute_alpha.routers.html
index 20bf522..e6b1149 100644
--- a/docs/dyn/compute_alpha.routers.html
+++ b/docs/dyn/compute_alpha.routers.html
@@ -147,23 +147,44 @@
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
                 {
-                  "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+                  "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+                  "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
                   "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
                   "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
                 },
               ],
               "bgp": { # BGP information specific to this router.
+                "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+                  { # Description-tagged prefixes for the router to advertise.
+                    "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+                    "description": "A String", # User-specified description for the prefix.
+                  },
+                ],
                 "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+                "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+                  "A String",
+                ],
+                "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
               },
               "network": "A String", # URI of the network to which this router belongs.
               "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
                 {
-                  "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
                   "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+                  "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+                  "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+                    { # Description-tagged prefixes for the router to advertise.
+                      "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+                      "description": "A String", # User-specified description for the prefix.
+                    },
+                  ],
+                  "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+                  "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+                    "A String",
+                  ],
+                  "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
                   "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
                   "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-                  "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+                  "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
                 },
               ],
               "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -283,23 +304,44 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
         {
-          "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+          "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+          "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
           "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
           "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
         },
       ],
       "bgp": { # BGP information specific to this router.
+        "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+          { # Description-tagged prefixes for the router to advertise.
+            "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+            "description": "A String", # User-specified description for the prefix.
+          },
+        ],
         "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+        "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+          "A String",
+        ],
+        "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
       },
       "network": "A String", # URI of the network to which this router belongs.
       "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
         {
-          "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
           "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+          "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+          "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+            { # Description-tagged prefixes for the router to advertise.
+              "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+              "description": "A String", # User-specified description for the prefix.
+            },
+          ],
+          "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+          "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+            "A String",
+          ],
+          "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
           "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
           "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-          "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+          "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
         },
       ],
       "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -478,23 +520,44 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
     "bgp": { # BGP information specific to this router.
+      "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+        { # Description-tagged prefixes for the router to advertise.
+          "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+          "description": "A String", # User-specified description for the prefix.
+        },
+      ],
       "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+      "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+        "A String",
+      ],
+      "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
     },
     "network": "A String", # URI of the network to which this router belongs.
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
-        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+        "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+          { # Description-tagged prefixes for the router to advertise.
+            "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+            "description": "A String", # User-specified description for the prefix.
+          },
+        ],
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+        "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+          "A String",
+        ],
+        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
         "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+        "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
       },
     ],
     "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -591,23 +654,44 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
             {
-              "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+              "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+              "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
               "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
               "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
             },
           ],
           "bgp": { # BGP information specific to this router.
+            "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+              { # Description-tagged prefixes for the router to advertise.
+                "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+                "description": "A String", # User-specified description for the prefix.
+              },
+            ],
             "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+            "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+              "A String",
+            ],
+            "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
           },
           "network": "A String", # URI of the network to which this router belongs.
           "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
             {
-              "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
               "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+              "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+              "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+                { # Description-tagged prefixes for the router to advertise.
+                  "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+                  "description": "A String", # User-specified description for the prefix.
+                },
+              ],
+              "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+              "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+                "A String",
+              ],
+              "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
               "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
               "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-              "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+              "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
             },
           ],
           "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -653,23 +737,44 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
     "bgp": { # BGP information specific to this router.
+      "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+        { # Description-tagged prefixes for the router to advertise.
+          "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+          "description": "A String", # User-specified description for the prefix.
+        },
+      ],
       "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+      "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+        "A String",
+      ],
+      "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
     },
     "network": "A String", # URI of the network to which this router belongs.
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
-        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+        "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+          { # Description-tagged prefixes for the router to advertise.
+            "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+            "description": "A String", # User-specified description for the prefix.
+          },
+        ],
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+        "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+          "A String",
+        ],
+        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
         "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+        "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
       },
     ],
     "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -747,23 +852,44 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
     "bgp": { # BGP information specific to this router.
+      "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+        { # Description-tagged prefixes for the router to advertise.
+          "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+          "description": "A String", # User-specified description for the prefix.
+        },
+      ],
       "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+      "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+        "A String",
+      ],
+      "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
     },
     "network": "A String", # URI of the network to which this router belongs.
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
-        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+        "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+          { # Description-tagged prefixes for the router to advertise.
+            "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+            "description": "A String", # User-specified description for the prefix.
+          },
+        ],
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+        "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+          "A String",
+        ],
+        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
         "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+        "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
       },
     ],
     "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -783,23 +909,44 @@
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
           {
-            "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+            "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+            "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
             "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
             "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
           },
         ],
         "bgp": { # BGP information specific to this router.
+          "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+            { # Description-tagged prefixes for the router to advertise.
+              "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+              "description": "A String", # User-specified description for the prefix.
+            },
+          ],
           "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+          "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+            "A String",
+          ],
+          "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
         },
         "network": "A String", # URI of the network to which this router belongs.
         "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
           {
-            "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
             "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+            "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+            "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+              { # Description-tagged prefixes for the router to advertise.
+                "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+                "description": "A String", # User-specified description for the prefix.
+              },
+            ],
+            "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+            "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+              "A String",
+            ],
+            "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
             "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
             "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-            "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+            "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
           },
         ],
         "region": "A String", # [Output Only] URI of the region where the router resides.
@@ -855,23 +1002,44 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedInterconnectAttachment": "A String", # URI of the linked interconnect attachment. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
     ],
     "bgp": { # BGP information specific to this router.
+      "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+        { # Description-tagged prefixes for the router to advertise.
+          "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+          "description": "A String", # User-specified description for the prefix.
+        },
+      ],
       "asn": 42, # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.
+      "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+        "A String",
+      ],
+      "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
     },
     "network": "A String", # URI of the network to which this router belongs.
     "bgpPeers": [ # BGP information that needs to be configured into the routing stack to establish the BGP peering. It must specify peer ASN and either interface name, IP, or peer IP. Please refer to RFC4273.
       {
-        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
-        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
         "peerAsn": 42, # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be different for every tunnel.
+        "interfaceName": "A String", # Name of the interface the BGP peer is associated with.
+        "advertisedPrefixs": [ # User-specified list of individual prefixes to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These prefixes will be advertised in addition to any specified groups. Leave this field blank to advertise no custom prefixes.
+          { # Description-tagged prefixes for the router to advertise.
+            "prefix": "A String", # The prefix to advertise. The value must be a CIDR-formatted string.
+            "description": "A String", # User-specified description for the prefix.
+          },
+        ],
+        "peerIpAddress": "A String", # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
+        "advertisedGroups": [ # User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in Bgp message). These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.
+          "A String",
+        ],
+        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
         "advertisedRoutePriority": 42, # The priority of routes advertised to this BGP peer. In the case where there is more than one matching route of maximum length, the routes with lowest priority value win.
         "ipAddress": "A String", # IP address of the interface inside Google Cloud Platform. Only IPv4 is supported.
-        "name": "A String", # Name of this BGP peer. The name must be 1-63 characters long and comply with RFC1035.
+        "advertiseMode": "A String", # User-specified flag to indicate which mode to use for advertisement.
       },
     ],
     "region": "A String", # [Output Only] URI of the region where the router resides.
diff --git a/docs/dyn/compute_alpha.securityPolicies.html b/docs/dyn/compute_alpha.securityPolicies.html
new file mode 100644
index 0000000..2a43099
--- /dev/null
+++ b/docs/dyn/compute_alpha.securityPolicies.html
@@ -0,0 +1,472 @@
+<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="compute_alpha.html">Compute Engine API</a> . <a href="compute_alpha.securityPolicies.html">securityPolicies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, securityPolicy, requestId=None)</a></code></p>
+<p class="firstline">Deletes the specified policy.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, securityPolicy)</a></code></p>
+<p class="firstline">List all of the ordered rules present in a single specified policy.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body, requestId=None)</a></code></p>
+<p class="firstline">Creates a new policy in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">List all the policies that have been configured for the specified project.</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>
+<p class="toc_element">
+  <code><a href="#patch">patch(project, securityPolicy, body, requestId=None)</a></code></p>
+<p class="firstline">Patches the specified policy with the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, securityPolicy, requestId=None)</code>
+  <pre>Deletes the specified policy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  securityPolicy: string, Name of the security policy to delete. (required)
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, securityPolicy)</code>
+  <pre>List all of the ordered rules present in a single specified policy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  securityPolicy: string, Name of the security policy to update. (required)
+
+Returns:
+  An object of the form:
+
+    { # A security policy is comprised of one or more rules. It can also be associated with one or more 'targets'.
+      "kind": "compute#securityPolicy", # [Output only] Type of the resource. Always compute#securityPolicyfor security policies
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "rules": [ # List of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added.
+        { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny)
+          "kind": "compute#securityPolicyRule", # [Output only] Type of the resource. Always compute#rulefor security policies
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "priority": 42, # An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated in the increasing order of priority.
+          "action": "A String", # The Action to preform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502.
+          "preview": True or False, # If set to true, the specified action is not enforced.
+          "match": { # Represents a match condition that incoming traffic is evaluated against. Exactly one of the fields must be set. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding ?action? is enforced.
+            "srcIpRanges": [ # CIDR IP address range. Only IPv4 is supported.
+              "A String",
+            ],
+          },
+        },
+      ],
+      "fingerprint": "A String", # Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+          #
+          # To see the latest fingerprint, make get() request to the security policy.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body, requestId=None)</code>
+  <pre>Creates a new policy in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A security policy is comprised of one or more rules. It can also be associated with one or more 'targets'.
+    "kind": "compute#securityPolicy", # [Output only] Type of the resource. Always compute#securityPolicyfor security policies
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "rules": [ # List of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added.
+      { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny)
+        "kind": "compute#securityPolicyRule", # [Output only] Type of the resource. Always compute#rulefor security policies
+        "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+        "priority": 42, # An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated in the increasing order of priority.
+        "action": "A String", # The Action to preform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502.
+        "preview": True or False, # If set to true, the specified action is not enforced.
+        "match": { # Represents a match condition that incoming traffic is evaluated against. Exactly one of the fields must be set. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding ?action? is enforced.
+          "srcIpRanges": [ # CIDR IP address range. Only IPv4 is supported.
+            "A String",
+          ],
+        },
+      },
+    ],
+    "fingerprint": "A String", # Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        # 
+        # To see the latest fingerprint, make get() request to the security policy.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>List all the policies that have been configured for the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of SecurityPolicy resources.
+      { # A security policy is comprised of one or more rules. It can also be associated with one or more 'targets'.
+          "kind": "compute#securityPolicy", # [Output only] Type of the resource. Always compute#securityPolicyfor security policies
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "rules": [ # List of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added.
+            { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny)
+              "kind": "compute#securityPolicyRule", # [Output only] Type of the resource. Always compute#rulefor security policies
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "priority": 42, # An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated in the increasing order of priority.
+              "action": "A String", # The Action to preform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502.
+              "preview": True or False, # If set to true, the specified action is not enforced.
+              "match": { # Represents a match condition that incoming traffic is evaluated against. Exactly one of the fields must be set. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding ?action? is enforced.
+                "srcIpRanges": [ # CIDR IP address range. Only IPv4 is supported.
+                  "A String",
+                ],
+              },
+            },
+          ],
+          "fingerprint": "A String", # Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+              #
+              # To see the latest fingerprint, make get() request to the security policy.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+    "kind": "compute#securityPoliciesList", # [Output Only] Type of resource. Always compute#securityPoliciesList for listsof securityPolicies
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+  }</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>
+
+<div class="method">
+    <code class="details" id="patch">patch(project, securityPolicy, body, requestId=None)</code>
+  <pre>Patches the specified policy with the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  securityPolicy: string, Name of the security policy to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A security policy is comprised of one or more rules. It can also be associated with one or more 'targets'.
+    "kind": "compute#securityPolicy", # [Output only] Type of the resource. Always compute#securityPolicyfor security policies
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "rules": [ # List of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match "*"). If no rules are provided when creating a security policy, a default rule with action "allow" will be added.
+      { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny)
+        "kind": "compute#securityPolicyRule", # [Output only] Type of the resource. Always compute#rulefor security policies
+        "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+        "priority": 42, # An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated in the increasing order of priority.
+        "action": "A String", # The Action to preform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502.
+        "preview": True or False, # If set to true, the specified action is not enforced.
+        "match": { # Represents a match condition that incoming traffic is evaluated against. Exactly one of the fields must be set. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding ?action? is enforced.
+          "srcIpRanges": [ # CIDR IP address range. Only IPv4 is supported.
+            "A String",
+          ],
+        },
+      },
+    ],
+    "fingerprint": "A String", # Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        # 
+        # To see the latest fingerprint, make get() request to the security policy.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(project, resource, body)</code>
+  <pre>Returns permissions that a caller has on the specified resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "permissions": [ # The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_alpha.snapshots.html b/docs/dyn/compute_alpha.snapshots.html
index cafae39..3661f87 100644
--- a/docs/dyn/compute_alpha.snapshots.html
+++ b/docs/dyn/compute_alpha.snapshots.html
@@ -183,6 +183,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "storageBytes": "A String", # [Output Only] A size of the the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -202,6 +203,7 @@
             # - The key is wrapped using a RSA public key certificate provided by Google.
             # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
             # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+        "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
       },
       "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
       "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
@@ -245,9 +247,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -263,7 +271,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -274,6 +282,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -322,6 +333,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -372,6 +385,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "storageBytes": "A String", # [Output Only] A size of the the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
@@ -391,6 +405,7 @@
                 # - The key is wrapped using a RSA public key certificate provided by Google.
                 # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Get the RSA public key certificate provided by Google at:
                 # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+            "kmsKeyName": "A String", # The name of the encryption key that is stored in Google Cloud KMS.
           },
           "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
           "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
@@ -452,9 +467,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -470,7 +491,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -481,6 +502,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -529,6 +553,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -553,9 +579,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -571,7 +603,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -582,6 +614,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -630,6 +665,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
diff --git a/docs/dyn/compute_alpha.subnetworks.html b/docs/dyn/compute_alpha.subnetworks.html
index 54bd585..30211e8 100644
--- a/docs/dyn/compute_alpha.subnetworks.html
+++ b/docs/dyn/compute_alpha.subnetworks.html
@@ -106,7 +106,7 @@
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
 <p class="toc_element">
   <code><a href="#setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body, requestId=None)</a></code></p>
-<p class="firstline">Set whether VMs in this subnet can access Google services without assigning external IP addresses through Cloudpath.</p>
+<p class="firstline">Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
@@ -144,19 +144,19 @@
         "subnetworks": [ # List of subnetworks contained in this scope.
           { # A Subnetwork resource.
               "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "region": "A String", # URL of the region where the Subnetwork resides.
+              "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
               "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
                 { # Represents a secondary IP range of a subnetwork.
                   "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
                   "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
                 },
               ],
-              "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-              "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-              "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+              "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+              "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+              "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
               "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -336,19 +336,19 @@
 
     { # A Subnetwork resource.
       "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "region": "A String", # URL of the region where the Subnetwork resides.
+      "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
       "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
         { # Represents a secondary IP range of a subnetwork.
           "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
           "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
         },
       ],
-      "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-      "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-      "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+      "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+      "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+      "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -379,9 +379,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -397,7 +403,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -408,6 +414,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -456,6 +465,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -477,19 +488,19 @@
 
 { # A Subnetwork resource.
     "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "region": "A String", # URL of the region where the Subnetwork resides.
+    "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
     "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
       { # Represents a secondary IP range of a subnetwork.
         "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
         "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
       },
     ],
-    "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-    "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-    "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+    "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+    "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+    "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -579,19 +590,19 @@
     "items": [ # The Subnetwork resources.
       { # A Subnetwork resource.
           "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "region": "A String", # URL of the region where the Subnetwork resides.
+          "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
           "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
             { # Represents a secondary IP range of a subnetwork.
               "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
               "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
             },
           ],
-          "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-          "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-          "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+          "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+          "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+          "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -640,9 +651,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -658,7 +675,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -669,6 +686,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -717,6 +737,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -741,9 +763,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -759,7 +787,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -770,6 +798,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -818,6 +849,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -829,7 +862,7 @@
 
 <div class="method">
     <code class="details" id="setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body, requestId=None)</code>
-  <pre>Set whether VMs in this subnet can access Google services without assigning external IP addresses through Cloudpath.
+  <pre>Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.
 
 Args:
   project: string, Project ID for this request. (required)
diff --git a/docs/dyn/compute_beta.addresses.html b/docs/dyn/compute_beta.addresses.html
index 0041b3b..268f39f 100644
--- a/docs/dyn/compute_beta.addresses.html
+++ b/docs/dyn/compute_beta.addresses.html
@@ -146,7 +146,8 @@
               "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-              "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+              "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+              "address": "A String", # The static external IP address represented by this resource.
               "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
               ],
@@ -254,7 +255,8 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+      "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+      "address": "A String", # The static external IP address represented by this resource.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -280,7 +282,8 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+    "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+    "address": "A String", # The static external IP address represented by this resource.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -376,7 +379,8 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+          "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+          "address": "A String", # The static external IP address represented by this resource.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_beta.autoscalers.html b/docs/dyn/compute_beta.autoscalers.html
index f3d190f..dd4c55c 100644
--- a/docs/dyn/compute_beta.autoscalers.html
+++ b/docs/dyn/compute_beta.autoscalers.html
@@ -96,7 +96,7 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(project, zone, autoscaler, body)</a></code></p>
+  <code><a href="#patch">patch(project, zone, body, autoscaler=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, zone, resource, body)</a></code></p>
@@ -165,14 +165,13 @@
                 },
                 "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
                   { # Custom utilization metric policy.
-                    "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                    "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                         #
-                        # For example, the following is a valid metric:
-                        # compute.googleapis.com/instance/network/received_bytes_count
-                        # The following is not a valid metric because it does not increase or decrease based on usage:
-                        # compute.googleapis.com/instance/cpu/reserved_cores
+                        # The metric must have a value type of INT64 or DOUBLE.
                     "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                    "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                    "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                        #
+                        # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
                   },
                 ],
                 "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -308,14 +307,13 @@
         },
         "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
           { # Custom utilization metric policy.
-            "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+            "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                 #
-                # For example, the following is a valid metric:
-                # compute.googleapis.com/instance/network/received_bytes_count
-                # The following is not a valid metric because it does not increase or decrease based on usage:
-                # compute.googleapis.com/instance/cpu/reserved_cores
+                # The metric must have a value type of INT64 or DOUBLE.
             "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-            "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+            "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                #
+                # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
           },
         ],
         "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -369,14 +367,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -500,14 +497,13 @@
             },
             "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
               { # Custom utilization metric policy.
-                "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                     #
-                    # For example, the following is a valid metric:
-                    # compute.googleapis.com/instance/network/received_bytes_count
-                    # The following is not a valid metric because it does not increase or decrease based on usage:
-                    # compute.googleapis.com/instance/cpu/reserved_cores
+                    # The metric must have a value type of INT64 or DOUBLE.
                 "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                    #
+                    # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
               },
             ],
             "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -553,13 +549,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, zone, autoscaler, body)</code>
+    <code class="details" id="patch">patch(project, zone, body, autoscaler=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, Name of the zone for this request. (required)
-  autoscaler: string, Name of the autoscaler to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -581,14 +576,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -613,6 +607,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  autoscaler: string, Name of the autoscaler to patch.
 
 Returns:
   An object of the form:
@@ -720,14 +715,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
diff --git a/docs/dyn/compute_beta.backendBuckets.html b/docs/dyn/compute_beta.backendBuckets.html
index 22c6bf6..21cd94b 100644
--- a/docs/dyn/compute_beta.backendBuckets.html
+++ b/docs/dyn/compute_beta.backendBuckets.html
@@ -314,7 +314,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  backendBucket: string, Name of the BackendBucket resource to update. (required)
+  backendBucket: string, Name of the BackendBucket resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_beta.backendServices.html b/docs/dyn/compute_beta.backendServices.html
index 7f55d03..cc4c51b 100644
--- a/docs/dyn/compute_beta.backendServices.html
+++ b/docs/dyn/compute_beta.backendServices.html
@@ -100,7 +100,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, backendService, body)</a></code></p>
-<p class="firstline">Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
+<p class="firstline">Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
@@ -197,7 +197,7 @@
                   "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
                       #
                       # This cannot be used for internal load balancing.
-                  "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+                  "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                       #
                       # This cannot be used for internal load balancing.
                   "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -239,7 +239,7 @@
                 "oauth2ClientId": "A String",
                 "enabled": True or False,
                 "oauth2ClientSecret": "A String",
-                "oauth2ClientSecretSha256": "A String",
+                "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
               },
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
               "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -383,7 +383,7 @@
           "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
               #
               # This cannot be used for internal load balancing.
-          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
               #
               # This cannot be used for internal load balancing.
           "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -425,7 +425,7 @@
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
-        "oauth2ClientSecretSha256": "A String",
+        "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
       },
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -519,7 +519,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -561,7 +561,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -694,7 +694,7 @@
               "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
                   #
                   # This cannot be used for internal load balancing.
-              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                   #
                   # This cannot be used for internal load balancing.
               "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -736,7 +736,7 @@
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
-            "oauth2ClientSecretSha256": "A String",
+            "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
           },
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -764,11 +764,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, backendService, body)</code>
-  <pre>Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
+  <pre>Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  backendService: string, Name of the BackendService resource to update. (required)
+  backendService: string, Name of the BackendService resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -819,7 +819,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -861,7 +861,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -1002,7 +1002,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -1044,7 +1044,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
diff --git a/docs/dyn/compute_beta.commitments.html b/docs/dyn/compute_beta.commitments.html
deleted file mode 100644
index 2c1ac5e..0000000
--- a/docs/dyn/compute_beta.commitments.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<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="compute_beta.html">Compute Engine API</a> . <a href="compute_beta.commitments.html">commitments</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves an aggregated list of commitments.</p>
-<p class="toc_element">
-  <code><a href="#aggregatedList_next">aggregatedList_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="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves an aggregated list of commitments.
-
-Args:
-  project: string, Project ID for this request. (required)
-  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
-
-You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
-
-Currently, only sorting by name or creationTimestamp desc is supported.
-  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
-  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
-  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
-
-The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
-
-For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
-
-You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
-
-To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
-    "items": { # Commitments by scope.
-      "a_key": { # [Output Only] Name of the scope containing this set of commitments.
-        "warning": { # [Output Only] Informational warning which replaces the list of commitments when the list is empty.
-          "message": "A String", # [Output Only] A human-readable description of the warning code.
-          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
-          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
-              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
-            {
-              "value": "A String", # [Output Only] A warning data value corresponding to the key.
-              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
-            },
-          ],
-        },
-        "commitments": [ # [Output Only] List of commitments contained in this scope.
-          { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-            "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-            "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-            "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-            "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-            "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-            "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-            "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-            "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-            "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-            "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-              { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-                "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-                "type": "A String", # Type of resource for which this commitment applies.
-              },
-            ],
-            "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-          },
-        ],
-      },
-    },
-    "kind": "compute#commitmentAggregatedList", # [Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="aggregatedList_next">aggregatedList_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
diff --git a/docs/dyn/compute_beta.firewalls.html b/docs/dyn/compute_beta.firewalls.html
index e5d237c..cc07882 100644
--- a/docs/dyn/compute_beta.firewalls.html
+++ b/docs/dyn/compute_beta.firewalls.html
@@ -97,7 +97,7 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, firewall, body)</a></code></p>
-<p class="firstline">Updates the specified firewall rule with the data included in the request.</p>
+<p class="firstline">Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, firewall)</code>
@@ -187,7 +187,7 @@
           ],
         },
       ],
-      "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+      "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
       "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
         "A String",
       ],
@@ -246,7 +246,7 @@
         ],
       },
     ],
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
@@ -375,7 +375,7 @@
               ],
             },
           ],
-          "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+          "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
           "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
             "A String",
           ],
@@ -454,7 +454,7 @@
         ],
       },
     ],
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
@@ -564,7 +564,7 @@
 
 <div class="method">
     <code class="details" id="update">update(project, firewall, body)</code>
-  <pre>Updates the specified firewall rule with the data included in the request.
+  <pre>Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -591,7 +591,7 @@
         ],
       },
     ],
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "sourceRanges": [ # If source ranges are specified, the firewall will apply only to traffic that has source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply. Only IPv4 is supported.
       "A String",
     ],
diff --git a/docs/dyn/compute_beta.forwardingRules.html b/docs/dyn/compute_beta.forwardingRules.html
index e62caca..3f2aa04 100644
--- a/docs/dyn/compute_beta.forwardingRules.html
+++ b/docs/dyn/compute_beta.forwardingRules.html
@@ -133,32 +133,48 @@
     "items": { # A map of scoped forwarding rule lists.
       "a_key": { # Name of the scope containing this set of addresses.
         "forwardingRules": [ # List of forwarding rules contained in this scope.
-          { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+          { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
               "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+                  #
+                  # This field is only used for internal load balancing.
+              "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+                  #
+                  # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+                  #
+                  # This field is only used for internal load balancing.
               "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
                   #
-                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
                   #
-                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
               "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-              "ports": [ # This field is not used for external load balancing.
+              "ports": [ # This field is used along with the backend_service field for internal load balancing.
                   #
-                  # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+                  # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
                   #
                   # You may specify a maximum of up to 5 ports.
                 "A String",
               ],
+              "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
               "network": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
               "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
                   #
                   # This field is not used for internal load balancing.
-              "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
                   #
-                  # This field is not used for internal load balancing.
+                  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+                  #
+                  # Some types of forwarding target have constraints on the acceptable ports:
+                  # - TargetHttpProxy: 80, 8080
+                  # - TargetHttpsProxy: 443
+                  # - TargetSslProxy: 443
+                  # - TargetVpnGateway: 500, 4500
+                  # -
               "backendService": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -280,32 +296,48 @@
 Returns:
   An object of the form:
 
-    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
       "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+          #
+          # This field is only used for internal load balancing.
+      "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+          #
+          # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          #
+          # This field is only used for internal load balancing.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-      "ports": [ # This field is not used for external load balancing.
+      "ports": [ # This field is used along with the backend_service field for internal load balancing.
           #
-          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
           #
           # You may specify a maximum of up to 5 ports.
         "A String",
       ],
+      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
       "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
           #
           # This field is not used for internal load balancing.
-      "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+      "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
           #
-          # This field is not used for internal load balancing.
+          # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # Some types of forwarding target have constraints on the acceptable ports:
+          # - TargetHttpProxy: 80, 8080
+          # - TargetHttpsProxy: 443
+          # - TargetSslProxy: 443
+          # - TargetVpnGateway: 500, 4500
+          # -
       "backendService": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -334,32 +366,48 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
     "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+        # 
+        # This field is only used for internal load balancing.
+    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+        # 
+        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        # 
+        # This field is only used for internal load balancing.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-    "ports": [ # This field is not used for external load balancing.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
         # 
-        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
         # 
         # You may specify a maximum of up to 5 ports.
       "A String",
     ],
+    "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
     "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
         # 
         # This field is not used for internal load balancing.
-    "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
         # 
-        # This field is not used for internal load balancing.
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
     "backendService": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -458,32 +506,48 @@
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
-      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
           "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+              #
+              # This field is only used for internal load balancing.
+          "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+              #
+              # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+              #
+              # This field is only used for internal load balancing.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-          "ports": [ # This field is not used for external load balancing.
+          "ports": [ # This field is used along with the backend_service field for internal load balancing.
               #
-              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
               #
               # You may specify a maximum of up to 5 ports.
             "A String",
           ],
+          "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
           "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
               #
               # This field is not used for internal load balancing.
-          "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
               #
-              # This field is not used for internal load balancing.
+              # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # Some types of forwarding target have constraints on the acceptable ports:
+              # - TargetHttpProxy: 80, 8080
+              # - TargetHttpsProxy: 443
+              # - TargetSslProxy: 443
+              # - TargetVpnGateway: 500, 4500
+              # -
           "backendService": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
diff --git a/docs/dyn/compute_beta.globalAddresses.html b/docs/dyn/compute_beta.globalAddresses.html
index 5c15fbf..19d97dc 100644
--- a/docs/dyn/compute_beta.globalAddresses.html
+++ b/docs/dyn/compute_beta.globalAddresses.html
@@ -167,7 +167,8 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+      "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+      "address": "A String", # The static external IP address represented by this resource.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -192,7 +193,8 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+    "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+    "address": "A String", # The static external IP address represented by this resource.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -287,7 +289,8 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+          "ipVersion": "A String", # The IP Version that will be used by this address. Valid options are IPV4 or IPV6. This can only be specified for a global address.
+          "address": "A String", # The static external IP address represented by this resource.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_beta.globalForwardingRules.html b/docs/dyn/compute_beta.globalForwardingRules.html
index e1e1286..2c20e84 100644
--- a/docs/dyn/compute_beta.globalForwardingRules.html
+++ b/docs/dyn/compute_beta.globalForwardingRules.html
@@ -76,29 +76,29 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(project, forwardingRule)</a></code></p>
-<p class="firstline">Deletes the specified ForwardingRule resource.</p>
+<p class="firstline">Deletes the specified GlobalForwardingRule resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, forwardingRule)</a></code></p>
-<p class="firstline">Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
+<p class="firstline">Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, body)</a></code></p>
-<p class="firstline">Creates a ForwardingRule resource in the specified project and region using the data included in the request.</p>
+<p class="firstline">Creates a GlobalForwardingRule resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves a list of ForwardingRule resources available to the specified project.</p>
+<p class="firstline">Retrieves a list of GlobalForwardingRule resources available to the specified project.</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>
 <p class="toc_element">
   <code><a href="#setTarget">setTarget(project, forwardingRule, body)</a></code></p>
-<p class="firstline">Changes target URL for forwarding rule. The new target should be of the same type as the old target.</p>
+<p class="firstline">Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, forwardingRule)</code>
-  <pre>Deletes the specified ForwardingRule resource.
+  <pre>Deletes the specified GlobalForwardingRule resource.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -156,7 +156,7 @@
 
 <div class="method">
     <code class="details" id="get">get(project, forwardingRule)</code>
-  <pre>Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.
+  <pre>Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -165,32 +165,48 @@
 Returns:
   An object of the form:
 
-    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
       "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+          #
+          # This field is only used for internal load balancing.
+      "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+          #
+          # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          #
+          # This field is only used for internal load balancing.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-      "ports": [ # This field is not used for external load balancing.
+      "ports": [ # This field is used along with the backend_service field for internal load balancing.
           #
-          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
           #
           # You may specify a maximum of up to 5 ports.
         "A String",
       ],
+      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
       "network": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
       "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
           #
           # This field is not used for internal load balancing.
-      "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+      "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
           #
-          # This field is not used for internal load balancing.
+          # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # Some types of forwarding target have constraints on the acceptable ports:
+          # - TargetHttpProxy: 80, 8080
+          # - TargetHttpsProxy: 443
+          # - TargetSslProxy: 443
+          # - TargetVpnGateway: 500, 4500
+          # -
       "backendService": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -211,39 +227,55 @@
 
 <div class="method">
     <code class="details" id="insert">insert(project, body)</code>
-  <pre>Creates a ForwardingRule resource in the specified project and region using the data included in the request.
+  <pre>Creates a GlobalForwardingRule resource in the specified project using the data included in the request.
 
 Args:
   project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
     "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+        # 
+        # This field is only used for internal load balancing.
+    "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+        # 
+        # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        # 
+        # This field is only used for internal load balancing.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-    "ports": [ # This field is not used for external load balancing.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
         # 
-        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
         # 
         # You may specify a maximum of up to 5 ports.
       "A String",
     ],
+    "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
     "network": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
     "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
         # 
         # This field is not used for internal load balancing.
-    "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
         # 
-        # This field is not used for internal load balancing.
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
     "backendService": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -314,7 +346,7 @@
 
 <div class="method">
     <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves a list of ForwardingRule resources available to the specified project.
+  <pre>Retrieves a list of GlobalForwardingRule resources available to the specified project.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -341,32 +373,48 @@
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
-      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
           "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "serviceName": "A String", # [Output Only] The internal fully qualified service name for this Forwarding Rule.
+              #
+              # This field is only used for internal load balancing.
+          "serviceLabel": "A String", # An optional prefix to the service name for this Forwarding Rule. If specified, will be the first label of the fully qualified service name.
+              #
+              # The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+              #
+              # This field is only used for internal load balancing.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-          "ports": [ # This field is not used for external load balancing.
+          "ports": [ # This field is used along with the backend_service field for internal load balancing.
               #
-              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
               #
               # You may specify a maximum of up to 5 ports.
             "A String",
           ],
+          "ipVersion": "A String", # The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for a global forwarding rule.
           "network": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
           "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
               #
               # This field is not used for internal load balancing.
-          "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
               #
-              # This field is not used for internal load balancing.
+              # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # Some types of forwarding target have constraints on the acceptable ports:
+              # - TargetHttpProxy: 80, 8080
+              # - TargetHttpsProxy: 443
+              # - TargetSslProxy: 443
+              # - TargetVpnGateway: 500, 4500
+              # -
           "backendService": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -406,7 +454,7 @@
 
 <div class="method">
     <code class="details" id="setTarget">setTarget(project, forwardingRule, body)</code>
-  <pre>Changes target URL for forwarding rule. The new target should be of the same type as the old target.
+  <pre>Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.
 
 Args:
   project: string, Project ID for this request. (required)
diff --git a/docs/dyn/compute_beta.healthChecks.html b/docs/dyn/compute_beta.healthChecks.html
index acecebb..4bec870 100644
--- a/docs/dyn/compute_beta.healthChecks.html
+++ b/docs/dyn/compute_beta.healthChecks.html
@@ -428,7 +428,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  healthCheck: string, Name of the HealthCheck resource to update. (required)
+  healthCheck: string, Name of the HealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_beta.html b/docs/dyn/compute_beta.html
index 41259cd..d27cda8 100644
--- a/docs/dyn/compute_beta.html
+++ b/docs/dyn/compute_beta.html
@@ -100,11 +100,6 @@
 <p class="firstline">Returns the backendServices Resource.</p>
 
 <p class="toc_element">
-  <code><a href="compute_beta.commitments.html">commitments()</a></code>
-</p>
-<p class="firstline">Returns the commitments Resource.</p>
-
-<p class="toc_element">
   <code><a href="compute_beta.diskTypes.html">diskTypes()</a></code>
 </p>
 <p class="firstline">Returns the diskTypes Resource.</p>
diff --git a/docs/dyn/compute_beta.httpHealthChecks.html b/docs/dyn/compute_beta.httpHealthChecks.html
index ac3ffa8..019df67 100644
--- a/docs/dyn/compute_beta.httpHealthChecks.html
+++ b/docs/dyn/compute_beta.httpHealthChecks.html
@@ -332,7 +332,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  httpHealthCheck: string, Name of the HttpHealthCheck resource to update. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_beta.httpsHealthChecks.html b/docs/dyn/compute_beta.httpsHealthChecks.html
index 07dfe49..d67aac1 100644
--- a/docs/dyn/compute_beta.httpsHealthChecks.html
+++ b/docs/dyn/compute_beta.httpsHealthChecks.html
@@ -332,7 +332,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  httpsHealthCheck: string, Name of the HttpsHealthCheck resource to update. (required)
+  httpsHealthCheck: string, Name of the HttpsHealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_beta.images.html b/docs/dyn/compute_beta.images.html
index d627a84..f19e9d0 100644
--- a/docs/dyn/compute_beta.images.html
+++ b/docs/dyn/compute_beta.images.html
@@ -276,7 +276,7 @@
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
       "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         { # Guest OS features.
@@ -361,7 +361,7 @@
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
       "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         { # Guest OS features.
@@ -444,7 +444,7 @@
     },
     "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
     "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-    "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+    "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
         # 
         # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
       { # Guest OS features.
@@ -597,7 +597,7 @@
           },
           "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
           "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-          "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+          "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
               #
               # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
             { # Guest OS features.
diff --git a/docs/dyn/compute_beta.instanceGroupManagers.html b/docs/dyn/compute_beta.instanceGroupManagers.html
index 24794f3..d090259 100644
--- a/docs/dyn/compute_beta.instanceGroupManagers.html
+++ b/docs/dyn/compute_beta.instanceGroupManagers.html
@@ -102,11 +102,14 @@
   <code><a href="#listManagedInstances">listManagedInstances(project, zone, instanceGroupManager, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action.</p>
 <p class="toc_element">
+  <code><a href="#listManagedInstances_next">listManagedInstances_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</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>
 <p class="toc_element">
   <code><a href="#patch">patch(project, zone, instanceGroupManager, body)</a></code></p>
-<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
@@ -130,12 +133,16 @@
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, zone, instanceGroupManager, body)</a></code></p>
-<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.</p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -144,7 +151,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to abandon from the managed instance group.
+    "instances": [ # The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -372,6 +379,10 @@
     <code class="details" id="deleteInstances">deleteInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -380,7 +391,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The list of instances to delete from this managed instance group. Specify one or more instance URLs.
+    "instances": [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -498,6 +509,8 @@
     <code class="details" id="insert">insert(project, zone, body)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
+A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where you want to create the managed instance group. (required)
@@ -698,6 +711,7 @@
   An object of the form:
 
     {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "managedInstances": [ # [Output Only] The list of instances in the managed instance group.
       {
         "instanceStatus": "A String", # [Output Only] The status of the instance. This field is empty when the instance does not exist.
@@ -733,6 +747,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listManagedInstances_next">listManagedInstances_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>
+
+<div class="method">
     <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
   <pre>Retrieves the next page of results.
 
@@ -748,7 +776,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, zone, instanceGroupManager, body)</code>
-  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -857,6 +885,10 @@
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -865,7 +897,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to recreate.
+    "instances": [ # The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -925,6 +957,8 @@
     <code class="details" id="resize">resize(project, zone, instanceGroupManager, size)</code>
   <pre>Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -987,6 +1021,8 @@
 
 If you increase the size of the instance group, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating, creatingWithoutRetries, or deleting actions with the get or listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -1292,7 +1328,7 @@
 
 <div class="method">
     <code class="details" id="update">update(project, zone, instanceGroupManager, body)</code>
-  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.
 
 Args:
   project: string, Project ID for this request. (required)
diff --git a/docs/dyn/compute_beta.instanceGroups.html b/docs/dyn/compute_beta.instanceGroups.html
index 4c2d907..2fbd826 100644
--- a/docs/dyn/compute_beta.instanceGroups.html
+++ b/docs/dyn/compute_beta.instanceGroups.html
@@ -604,6 +604,8 @@
     <code class="details" id="removeInstances">removeInstances(project, zone, instanceGroup, body)</code>
   <pre>Removes one or more instances from the specified instance group, but does not delete those instances.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the instance group is located. (required)
diff --git a/docs/dyn/compute_beta.instanceTemplates.html b/docs/dyn/compute_beta.instanceTemplates.html
index 2b87d92..93ead0d 100644
--- a/docs/dyn/compute_beta.instanceTemplates.html
+++ b/docs/dyn/compute_beta.instanceTemplates.html
@@ -269,20 +269,6 @@
         "labels": { # Labels to apply to instances that are created from this template.
           "a_key": "A String",
         },
-        "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
-          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
-          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-        },
-        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
-        "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
-          { # A service account.
-            "scopes": [ # The list of scopes to be made available for this service account.
-              "A String",
-            ],
-            "email": "A String", # Email address of the service account.
-          },
-        ],
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
             "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -304,7 +290,7 @@
               { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                 "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                "name": "A String", # Name of this access configuration.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                 "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
               },
             ],
@@ -315,6 +301,23 @@
             "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
+        "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. The instance may be scheduled on the specified or later cpu/platform.
+        "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
+          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+        },
+        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
+        "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
+          { # A service account.
+            "scopes": [ # The list of scopes to be made available for this service account.
+              "A String",
+            ],
+            "email": "A String", # Email address of the service account.
+          },
+        ],
         "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
           "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
             {
@@ -325,6 +328,12 @@
           "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
           "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
         },
+        "guestAccelerators": [ # A list of guest accelerator cards' type and count to use for instances created from the instance template.
+          { # A specification of the type and number of accelerator cards attached to the instance.
+            "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+            "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+          },
+        ],
       },
       "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -447,20 +456,6 @@
       "labels": { # Labels to apply to instances that are created from this template.
         "a_key": "A String",
       },
-      "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
-        "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-        "preemptible": True or False, # Whether the instance is preemptible.
-        "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-      },
-      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
-      "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
-        { # A service account.
-          "scopes": [ # The list of scopes to be made available for this service account.
-            "A String",
-          ],
-          "email": "A String", # Email address of the service account.
-        },
-      ],
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
           "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -482,7 +477,7 @@
             { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
               "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-              "name": "A String", # Name of this access configuration.
+              "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
               "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
             },
           ],
@@ -493,6 +488,23 @@
           "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
+      "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. The instance may be scheduled on the specified or later cpu/platform.
+      "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
+        "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+            #
+            # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+        "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+        "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+      },
+      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
+      "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
+        { # A service account.
+          "scopes": [ # The list of scopes to be made available for this service account.
+            "A String",
+          ],
+          "email": "A String", # Email address of the service account.
+        },
+      ],
       "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
         "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
           {
@@ -503,6 +515,12 @@
         "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
         "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
       },
+      "guestAccelerators": [ # A list of guest accelerator cards' type and count to use for instances created from the instance template.
+        { # A specification of the type and number of accelerator cards attached to the instance.
+          "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+          "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+        },
+      ],
     },
     "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -695,20 +713,6 @@
             "labels": { # Labels to apply to instances that are created from this template.
               "a_key": "A String",
             },
-            "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
-              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
-              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-            },
-            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
-            "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
-              { # A service account.
-                "scopes": [ # The list of scopes to be made available for this service account.
-                  "A String",
-                ],
-                "email": "A String", # Email address of the service account.
-              },
-            ],
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
                 "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -730,7 +734,7 @@
                   { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                     "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                    "name": "A String", # Name of this access configuration.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                     "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
                   },
                 ],
@@ -741,6 +745,23 @@
                 "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
+            "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. The instance may be scheduled on the specified or later cpu/platform.
+            "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
+              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+            },
+            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
+            "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
+              { # A service account.
+                "scopes": [ # The list of scopes to be made available for this service account.
+                  "A String",
+                ],
+                "email": "A String", # Email address of the service account.
+              },
+            ],
             "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
               "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
                 {
@@ -751,6 +772,12 @@
               "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
               "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
             },
+            "guestAccelerators": [ # A list of guest accelerator cards' type and count to use for instances created from the instance template.
+              { # A specification of the type and number of accelerator cards attached to the instance.
+                "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+                "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+              },
+            ],
           },
           "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
diff --git a/docs/dyn/compute_beta.instances.html b/docs/dyn/compute_beta.instances.html
index 3c8d2f8..cdfdf51 100644
--- a/docs/dyn/compute_beta.instances.html
+++ b/docs/dyn/compute_beta.instances.html
@@ -85,7 +85,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#attachDisk">attachDisk(project, zone, instance, body)</a></code></p>
-<p class="firstline">Attaches a Disk resource to an instance.</p>
+<p class="firstline">Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance)</a></code></p>
 <p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
@@ -108,11 +108,17 @@
   <code><a href="#list">list(project, zone, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Retrieves the list of instances contained within the specified zone.</p>
 <p class="toc_element">
+  <code><a href="#listReferrers">listReferrers(project, zone, instance, orderBy=None, filter=None, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Retrieves the list of referrers to instances contained within the specified zone.</p>
+<p class="toc_element">
+  <code><a href="#listReferrers_next">listReferrers_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</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>
 <p class="toc_element">
   <code><a href="#reset">reset(project, zone, instance)</a></code></p>
-<p class="firstline">Performs a hard reset on the instance.</p>
+<p class="firstline">Performs a reset on the instance. For more information, see Resetting an instance.</p>
 <p class="toc_element">
   <code><a href="#setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName)</a></code></p>
 <p class="firstline">Sets the auto-delete flag for a disk attached to an instance.</p>
@@ -129,6 +135,9 @@
   <code><a href="#setMetadata">setMetadata(project, zone, instance, body)</a></code></p>
 <p class="firstline">Sets metadata for the specified instance to the data included in the request.</p>
 <p class="toc_element">
+  <code><a href="#setMinCpuPlatform">setMinCpuPlatform(project, zone, instance, body, requestId=None)</a></code></p>
+<p class="firstline">Changes the minimum cpu/platform that this instance should be started as. This is called on a stopped instance.</p>
+<p class="toc_element">
   <code><a href="#setScheduling">setScheduling(project, zone, instance, body)</a></code></p>
 <p class="firstline">Sets an instance's scheduling options.</p>
 <p class="toc_element">
@@ -165,7 +174,7 @@
 { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
   "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
   "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-  "name": "A String", # Name of this access configuration.
+  "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
   "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
 }
 
@@ -252,15 +261,84 @@
       "a_key": { # [Output Only] Name of the scope containing this set of instances.
         "instances": [ # [Output Only] List of instances contained in this scope.
           { # An Instance resource.
-            "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
             "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-            "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+            "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
+              { # A specification of the type and number of accelerator cards attached to the instance.
+                "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+                "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+              },
+            ],
             "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
               "a_key": "A String",
             },
+            "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
+              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+            },
+            "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+                #
+                # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+              { # A service account.
+                "scopes": [ # The list of scopes to be made available for this service account.
+                  "A String",
+                ],
+                "email": "A String", # Email address of the service account.
+              },
+            ],
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+            "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+              { # A network interface resource attached to an instance.
+                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+                "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+                  { # An alias IP range attached to an instance's network interface.
+                    "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+                    "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+                  },
+                ],
+                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                    #
+                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
+                "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+                  { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
+                    "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                    "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
+                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+                  },
+                ],
+                "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+                "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+                    # - regions/region/subnetworks/subnetwork
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+              },
+            ],
+            "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
+            "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+            "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+            "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
+              "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+                {
+                  "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+                  "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+                },
+              ],
+              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            },
+            "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
             "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
             "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-            "zone": "A String", # [Output Only] URL of the zone where the instance resides.
             "tags": { # A set of instance tags. # A list of tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
               "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
                 "A String",
@@ -272,6 +350,19 @@
             "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
                 #
                 # To see the latest fingerprint, make get() request to the instance.
+            "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+                #
+                # zones/us-central1-f/machineTypes/n1-standard-1
+                #
+                # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+                #
+                # zones/zone/machineTypes/custom-CPUS-MEMORY
+                #
+                # For example: zones/us-central1-f/machineTypes/custom-4-5120
+                #
+                # For a full list of restrictions, read the Specifications for custom machine types.
+            "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+            "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
             "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
               { # An instance-attached disk resource.
                 "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -360,85 +451,7 @@
                     # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
               },
             ],
-            "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-            "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-              { # A network interface resource attached to an instance.
-                "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
-                "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
-                  { # An alias IP range attached to an instance's network interface.
-                    "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
-                    "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
-                  },
-                ],
-                "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
-                    #
-                    # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
-                    #
-                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                    # - projects/project/global/networks/network
-                    # - global/networks/default
-                "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
-                  { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
-                    "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                    "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                    "name": "A String", # Name of this access configuration.
-                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-                  },
-                ],
-                "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-                "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-                    # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-                    # - regions/region/subnetworks/subnetwork
-                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-              },
-            ],
-            "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-            "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
-              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
-              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-            },
-            "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
-                #
-                # zones/us-central1-f/machineTypes/n1-standard-1
-                #
-                # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-                #
-                # zones/zone/machineTypes/custom-CPUS-MEMORY
-                #
-                # For example: zones/us-central1-f/machineTypes/custom-4-5120
-                #
-                # For a full list of restrictions, read the Specifications for custom machine types.
-            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
-                #
-                # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
-              { # A service account.
-                "scopes": [ # The list of scopes to be made available for this service account.
-                  "A String",
-                ],
-                "email": "A String", # Email address of the service account.
-              },
-            ],
-            "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
-              "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-                {
-                  "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-                  "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-                },
-              ],
-              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-            },
-            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-            "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
             "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-            "guestAccelerators": [
-              { # A specification of the type and number of accelerator cards attached to the instance.
-                "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
-                "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
-              },
-            ],
           },
         ],
         "warning": { # [Output Only] Informational warning which replaces the list of instances when the list is empty.
@@ -476,7 +489,7 @@
 
 <div class="method">
     <code class="details" id="attachDisk">attachDisk(project, zone, instance, body)</code>
-  <pre>Attaches a Disk resource to an instance.
+  <pre>Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -816,15 +829,84 @@
   An object of the form:
 
     { # An Instance resource.
-    "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
     "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-    "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+    "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
+      { # A specification of the type and number of accelerator cards attached to the instance.
+        "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+        "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+      },
+    ],
     "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
       "a_key": "A String",
     },
+    "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
+      "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+          #
+          # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+      "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+      "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+    },
+    "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+        #
+        # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+      { # A service account.
+        "scopes": [ # The list of scopes to be made available for this service account.
+          "A String",
+        ],
+        "email": "A String", # Email address of the service account.
+      },
+    ],
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+      { # A network interface resource attached to an instance.
+        "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+        "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+          { # An alias IP range attached to an instance's network interface.
+            "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+            "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+          },
+        ],
+        "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+            #
+            # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+            #
+            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+            # - projects/project/global/networks/network
+            # - global/networks/default
+        "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
+            "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+            "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+            "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
+            "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+          },
+        ],
+        "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+        "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+            # - regions/region/subnetworks/subnetwork
+        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+      },
+    ],
+    "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
+    "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+    "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+    "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
+      "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+        {
+          "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+          "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+        },
+      ],
+      "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+      "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+    },
+    "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
     "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "zone": "A String", # [Output Only] URL of the zone where the instance resides.
     "tags": { # A set of instance tags. # A list of tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
       "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
         "A String",
@@ -836,6 +918,19 @@
     "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
         #
         # To see the latest fingerprint, make get() request to the instance.
+    "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+        #
+        # zones/us-central1-f/machineTypes/n1-standard-1
+        #
+        # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+        #
+        # zones/zone/machineTypes/custom-CPUS-MEMORY
+        #
+        # For example: zones/us-central1-f/machineTypes/custom-4-5120
+        #
+        # For a full list of restrictions, read the Specifications for custom machine types.
+    "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+    "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
       { # An instance-attached disk resource.
         "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -924,85 +1019,7 @@
             # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
       },
     ],
-    "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-    "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-      { # A network interface resource attached to an instance.
-        "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
-        "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
-          { # An alias IP range attached to an instance's network interface.
-            "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
-            "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
-          },
-        ],
-        "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
-            #
-            # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
-            #
-            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-            # - projects/project/global/networks/network
-            # - global/networks/default
-        "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
-          { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
-            "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-            "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-            "name": "A String", # Name of this access configuration.
-            "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-          },
-        ],
-        "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-        "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-            # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-            # - regions/region/subnetworks/subnetwork
-        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-      },
-    ],
-    "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-    "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
-      "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-      "preemptible": True or False, # Whether the instance is preemptible.
-      "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-    },
-    "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
-        #
-        # zones/us-central1-f/machineTypes/n1-standard-1
-        #
-        # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-        #
-        # zones/zone/machineTypes/custom-CPUS-MEMORY
-        #
-        # For example: zones/us-central1-f/machineTypes/custom-4-5120
-        #
-        # For a full list of restrictions, read the Specifications for custom machine types.
-    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
-        #
-        # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
-      { # A service account.
-        "scopes": [ # The list of scopes to be made available for this service account.
-          "A String",
-        ],
-        "email": "A String", # Email address of the service account.
-      },
-    ],
-    "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
-      "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-        {
-          "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-          "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-        },
-      ],
-      "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-      "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-    },
-    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-    "guestAccelerators": [
-      { # A specification of the type and number of accelerator cards attached to the instance.
-        "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
-        "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
-      },
-    ],
   }</pre>
 </div>
 
@@ -1040,15 +1057,84 @@
     The object takes the form of:
 
 { # An Instance resource.
-  "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
   "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-  "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+  "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
+    { # A specification of the type and number of accelerator cards attached to the instance.
+      "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+      "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+    },
+  ],
   "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
     "a_key": "A String",
   },
+  "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
+    "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+        #
+        # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+    "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+    "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+  },
+  "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+      # 
+      # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+    { # A service account.
+      "scopes": [ # The list of scopes to be made available for this service account.
+        "A String",
+      ],
+      "email": "A String", # Email address of the service account.
+    },
+  ],
+  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+  "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+  "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+    { # A network interface resource attached to an instance.
+      "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+      "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+        { # An alias IP range attached to an instance's network interface.
+          "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+          "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+        },
+      ],
+      "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+          #
+          # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+          #
+          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+          # - projects/project/global/networks/network
+          # - global/networks/default
+      "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+        { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
+          "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+          "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+          "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
+          "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+        },
+      ],
+      "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+      "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+          # - regions/region/subnetworks/subnetwork
+      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+    },
+  ],
+  "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
+  "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+  "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+  "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
+    "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+      {
+        "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+        "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+      },
+    ],
+    "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+    "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+  },
+  "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
   "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-  "zone": "A String", # [Output Only] URL of the zone where the instance resides.
   "tags": { # A set of instance tags. # A list of tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
     "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
       "A String",
@@ -1060,6 +1146,19 @@
   "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
       # 
       # To see the latest fingerprint, make get() request to the instance.
+  "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+      # 
+      # zones/us-central1-f/machineTypes/n1-standard-1
+      # 
+      # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+      # 
+      # zones/zone/machineTypes/custom-CPUS-MEMORY
+      # 
+      # For example: zones/us-central1-f/machineTypes/custom-4-5120
+      # 
+      # For a full list of restrictions, read the Specifications for custom machine types.
+  "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+  "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
     { # An instance-attached disk resource.
       "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -1148,85 +1247,7 @@
           # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
     },
   ],
-  "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-    { # A network interface resource attached to an instance.
-      "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
-      "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
-        { # An alias IP range attached to an instance's network interface.
-          "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
-          "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
-        },
-      ],
-      "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
-          #
-          # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
-          #
-          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-          # - projects/project/global/networks/network
-          # - global/networks/default
-      "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
-        { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
-          "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-          "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-          "name": "A String", # Name of this access configuration.
-          "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-        },
-      ],
-      "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-      "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-          # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-          # - regions/region/subnetworks/subnetwork
-      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-    },
-  ],
-  "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-  "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
-    "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-    "preemptible": True or False, # Whether the instance is preemptible.
-    "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-  },
-  "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
-      # 
-      # zones/us-central1-f/machineTypes/n1-standard-1
-      # 
-      # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-      # 
-      # zones/zone/machineTypes/custom-CPUS-MEMORY
-      # 
-      # For example: zones/us-central1-f/machineTypes/custom-4-5120
-      # 
-      # For a full list of restrictions, read the Specifications for custom machine types.
-  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
-      # 
-      # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
-    { # A service account.
-      "scopes": [ # The list of scopes to be made available for this service account.
-        "A String",
-      ],
-      "email": "A String", # Email address of the service account.
-    },
-  ],
-  "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
-    "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-      {
-        "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-        "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-      },
-    ],
-    "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-    "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-  },
-  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-  "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-  "guestAccelerators": [
-    { # A specification of the type and number of accelerator cards attached to the instance.
-      "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
-      "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
-    },
-  ],
 }
 
 
@@ -1311,15 +1332,84 @@
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # [Output Only] A list of instances.
       { # An Instance resource.
-        "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
         "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
-        "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+        "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
+          { # A specification of the type and number of accelerator cards attached to the instance.
+            "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
+            "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
+          },
+        ],
         "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
           "a_key": "A String",
         },
+        "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
+          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
+          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
+        },
+        "minCpuPlatform": "A String", # Minimum cpu/platform to be used by this instance. We may schedule on the specified or later cpu/platform.
+        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
+            #
+            # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
+          { # A service account.
+            "scopes": [ # The list of scopes to be made available for this service account.
+              "A String",
+            ],
+            "email": "A String", # Email address of the service account.
+          },
+        ],
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+        "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
+          { # A network interface resource attached to an instance.
+            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
+            "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
+              { # An alias IP range attached to an instance's network interface.
+                "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
+                "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
+              },
+            ],
+            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
+                #
+                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
+            "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+              { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
+                "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
+                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
+              },
+            ],
+            "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
+            "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
+                # - regions/region/subnetworks/subnetwork
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+          },
+        ],
+        "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
+        "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+        "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+        "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
+          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+            {
+              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+            },
+          ],
+          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        },
+        "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
         "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-        "zone": "A String", # [Output Only] URL of the zone where the instance resides.
         "tags": { # A set of instance tags. # A list of tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
           "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
             "A String",
@@ -1331,6 +1421,19 @@
         "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
             #
             # To see the latest fingerprint, make get() request to the instance.
+        "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
+            #
+            # zones/us-central1-f/machineTypes/n1-standard-1
+            #
+            # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
+            #
+            # zones/zone/machineTypes/custom-CPUS-MEMORY
+            #
+            # For example: zones/us-central1-f/machineTypes/custom-4-5120
+            #
+            # For a full list of restrictions, read the Specifications for custom machine types.
+        "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+        "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
           { # An instance-attached disk resource.
             "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -1419,85 +1522,7 @@
                 # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
           },
         ],
-        "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-        "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Only one interface is supported per instance.
-          { # A network interface resource attached to an instance.
-            "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
-            "aliasIpRanges": [ # An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks.
-              { # An alias IP range attached to an instance's network interface.
-                "subnetworkRangeName": "A String", # Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
-                "ipCidrRange": "A String", # The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
-              },
-            ],
-            "network": "A String", # URL of the network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used; if the network is not specified but the subnetwork is specified, the network is inferred.
-                #
-                # This field is optional when creating a firewall rule. If not specified when creating a firewall rule, the default network global/networks/default is used.
-                #
-                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
-                # - projects/project/global/networks/network
-                # - global/networks/default
-            "accessConfigs": [ # An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.
-              { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
-                "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
-                "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                "name": "A String", # Name of this access configuration.
-                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
-              },
-            ],
-            "networkIP": "A String", # An IPv4 internal network address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.
-            "subnetwork": "A String", # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not provide this property. If the network is in auto subnet mode, providing the subnetwork is optional. If the network is in custom subnet mode, then this field should be specified. If you specify this property, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs:
-                # - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
-                # - regions/region/subnetworks/subnetwork
-            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
-          },
-        ],
-        "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-        "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
-          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
-          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
-        },
-        "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
-            #
-            # zones/us-central1-f/machineTypes/n1-standard-1
-            #
-            # To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
-            #
-            # zones/zone/machineTypes/custom-CPUS-MEMORY
-            #
-            # For example: zones/us-central1-f/machineTypes/custom-4-5120
-            #
-            # For a full list of restrictions, read the Specifications for custom machine types.
-        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported.
-            #
-            # Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
-          { # A service account.
-            "scopes": [ # The list of scopes to be made available for this service account.
-              "A String",
-            ],
-            "email": "A String", # Email address of the service account.
-          },
-        ],
-        "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
-          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-            {
-              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-            },
-          ],
-          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-        },
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
-        "guestAccelerators": [
-          { # A specification of the type and number of accelerator cards attached to the instance.
-            "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
-            "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
-          },
-        ],
       },
     ],
     "kind": "compute#instanceList", # [Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.
@@ -1507,6 +1532,65 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listReferrers">listReferrers(project, zone, instance, orderBy=None, filter=None, maxResults=None, pageToken=None)</code>
+  <pre>Retrieves the list of referrers to instances contained within the specified zone.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the target instance scoping this request, or '-' if the request should span over all instances in the container. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of instance referrers.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of referrers.
+      { # Represents a reference to a resource.
+        "referrer": "A String", # URL of the resource which refers to the target.
+        "kind": "compute#reference", # [Output Only] Type of the resource. Always compute#reference for references.
+        "referenceType": "A String", # A description of the reference type with no implied semantics. Possible values include:
+            # - MEMBER_OF
+        "target": "A String", # URL of the resource to which this reference points.
+      },
+    ],
+    "kind": "compute#instanceListReferrers", # [Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listReferrers_next">listReferrers_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>
+
+<div class="method">
     <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
   <pre>Retrieves the next page of results.
 
@@ -1522,7 +1606,7 @@
 
 <div class="method">
     <code class="details" id="reset">reset(project, zone, instance)</code>
-  <pre>Performs a hard reset on the instance.
+  <pre>Performs a reset on the instance. For more information, see Resetting an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1721,7 +1805,7 @@
     The object takes the form of:
 
 {
-    "guestAccelerators": [
+    "guestAccelerators": [ # List of the type and count of accelerator cards attached to the instance.
       { # A specification of the type and number of accelerator cards attached to the instance.
         "acceleratorCount": 42, # The number of the guest accelerator cards exposed to this instance.
         "acceleratorType": "A String", # Full or partial URL of the accelerator type resource to expose to this instance.
@@ -1920,6 +2004,73 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setMinCpuPlatform">setMinCpuPlatform(project, zone, instance, body, requestId=None)</code>
+  <pre>Changes the minimum cpu/platform that this instance should be started as. This is called on a stopped instance.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "minCpuPlatform": "A String", # Minimum cpu/platform this instance should be started at.
+  }
+
+  requestId: string, begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setScheduling">setScheduling(project, zone, instance, body)</code>
   <pre>Sets an instance's scheduling options.
 
@@ -1932,7 +2083,9 @@
 
 { # Sets the scheduling options for an Instance.
   "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-  "preemptible": True or False, # Whether the instance is preemptible.
+      # 
+      # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+  "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
   "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
 }
 
diff --git a/docs/dyn/compute_beta.regionAutoscalers.html b/docs/dyn/compute_beta.regionAutoscalers.html
index 9580b37..54807fa 100644
--- a/docs/dyn/compute_beta.regionAutoscalers.html
+++ b/docs/dyn/compute_beta.regionAutoscalers.html
@@ -90,7 +90,7 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(project, region, autoscaler, body)</a></code></p>
+  <code><a href="#patch">patch(project, region, body, autoscaler=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
@@ -188,14 +188,13 @@
         },
         "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
           { # Custom utilization metric policy.
-            "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+            "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                 #
-                # For example, the following is a valid metric:
-                # compute.googleapis.com/instance/network/received_bytes_count
-                # The following is not a valid metric because it does not increase or decrease based on usage:
-                # compute.googleapis.com/instance/cpu/reserved_cores
+                # The metric must have a value type of INT64 or DOUBLE.
             "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-            "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+            "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                #
+                # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
           },
         ],
         "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -249,14 +248,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -380,14 +378,13 @@
             },
             "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
               { # Custom utilization metric policy.
-                "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                     #
-                    # For example, the following is a valid metric:
-                    # compute.googleapis.com/instance/network/received_bytes_count
-                    # The following is not a valid metric because it does not increase or decrease based on usage:
-                    # compute.googleapis.com/instance/cpu/reserved_cores
+                    # The metric must have a value type of INT64 or DOUBLE.
                 "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                    #
+                    # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
               },
             ],
             "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -433,13 +430,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, region, autoscaler, body)</code>
+    <code class="details" id="patch">patch(project, region, body, autoscaler=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
-  autoscaler: string, Name of the autoscaler to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -461,14 +457,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -493,6 +488,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  autoscaler: string, Name of the autoscaler to patch.
 
 Returns:
   An object of the form:
@@ -600,14 +596,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
diff --git a/docs/dyn/compute_beta.regionBackendServices.html b/docs/dyn/compute_beta.regionBackendServices.html
index 815734b..e9b21d7 100644
--- a/docs/dyn/compute_beta.regionBackendServices.html
+++ b/docs/dyn/compute_beta.regionBackendServices.html
@@ -220,7 +220,7 @@
           "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
               #
               # This cannot be used for internal load balancing.
-          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
               #
               # This cannot be used for internal load balancing.
           "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -262,7 +262,7 @@
         "oauth2ClientId": "A String",
         "enabled": True or False,
         "oauth2ClientSecret": "A String",
-        "oauth2ClientSecretSha256": "A String",
+        "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
       },
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -358,7 +358,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -400,7 +400,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -534,7 +534,7 @@
               "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
                   #
                   # This cannot be used for internal load balancing.
-              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                   #
                   # This cannot be used for internal load balancing.
               "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -576,7 +576,7 @@
             "oauth2ClientId": "A String",
             "enabled": True or False,
             "oauth2ClientSecret": "A String",
-            "oauth2ClientSecretSha256": "A String",
+            "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
           },
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -609,7 +609,7 @@
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
-  backendService: string, Name of the BackendService resource to update. (required)
+  backendService: string, Name of the BackendService resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -660,7 +660,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -702,7 +702,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -845,7 +845,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -887,7 +887,7 @@
       "oauth2ClientId": "A String",
       "enabled": True or False,
       "oauth2ClientSecret": "A String",
-      "oauth2ClientSecretSha256": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
     },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
diff --git a/docs/dyn/compute_beta.regionCommitments.html b/docs/dyn/compute_beta.regionCommitments.html
index 85c92da..df31a66 100644
--- a/docs/dyn/compute_beta.regionCommitments.html
+++ b/docs/dyn/compute_beta.regionCommitments.html
@@ -75,11 +75,17 @@
 <h1><a href="compute_beta.html">Compute Engine API</a> . <a href="compute_beta.regionCommitments.html">regionCommitments</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves an aggregated list of commitments.</p>
+<p class="toc_element">
+  <code><a href="#aggregatedList_next">aggregatedList_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#get">get(project, region, commitment)</a></code></p>
 <p class="firstline">Returns the specified commitment resource. Get a list of available commitments by making a list() request.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, region, body)</a></code></p>
-<p class="firstline">Creates an commitment in the specified project using the data included in the request.</p>
+<p class="firstline">Creates a commitment in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, region, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Retrieves a list of commitments contained within the specified region.</p>
@@ -88,6 +94,93 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves an aggregated list of commitments.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": { # Commitments by scope.
+      "a_key": { # [Output Only] Name of the scope containing this set of commitments.
+        "warning": { # [Output Only] Informational warning which replaces the list of commitments when the list is empty.
+          "message": "A String", # [Output Only] A human-readable description of the warning code.
+          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+          "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+              # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+            {
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+            },
+          ],
+        },
+        "commitments": [ # [Output Only] List of commitments contained in this scope.
+          { # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+                #
+                # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+              "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+              "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+              "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+              "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+              "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+              "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+              "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+              "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+                { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+                  "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+                  "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
+                },
+              ],
+              "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+            },
+        ],
+      },
+    },
+    "kind": "compute#commitmentAggregatedList", # [Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="aggregatedList_next">aggregatedList_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>
+
+<div class="method">
     <code class="details" id="get">get(project, region, commitment)</code>
   <pre>Returns the specified commitment resource. Get a list of available commitments by making a list() request.
 
@@ -99,8 +192,44 @@
 Returns:
   An object of the form:
 
-    { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+    { # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+        #
+        # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+      "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+      "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+      "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+      "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+      "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+        { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+          "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+          "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
+        },
+      ],
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, region, body)</code>
+  <pre>Creates a commitment in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+      # 
+      # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+    "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
     "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
@@ -113,44 +242,12 @@
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
       { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-        "type": "A String", # Type of resource for which this commitment applies.
+        "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+        "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
       },
     ],
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(project, region, body)</code>
-  <pre>Creates an commitment in the specified project using the data included in the request.
-
-Args:
-  project: string, Project ID for this request. (required)
-  region: string, Name of the region for this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-  "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-  "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-  "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-  "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-  "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-  "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-  "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-  "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-  "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-  "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-  "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-    { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-      "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-      "type": "A String", # Type of resource for which this commitment applies.
-    },
-  ],
-  "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-}
+  }
 
 
 Returns:
@@ -233,26 +330,28 @@
     { # Contains a list of Commitment resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of Commitment resources.
-      { # A usage-commitment with a start / end time. Users create commitments for particular resources (e.g. memory). Actual usage is first deducted from available commitments made prior, perhaps at a reduced price (as laid out in the commitment).
-        "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end-date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-        "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
-        "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-        "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-        "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
-        "region": "A String", # [Output Only] URL of the region where this commitment may be used.
-        "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
-        "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
-        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
-        "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
-          { # Commitment for a particular resource (a Commitment is composed of one or more of these).
-            "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes).
-            "type": "A String", # Type of resource for which this commitment applies.
-          },
-        ],
-        "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-      },
+      { # Represents a Commitment resource. Creating a Commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.
+            #
+            # Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts will not renew, so you must purchase a new commitment to continue receiving discounts.
+          "status": "A String", # [Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "kind": "compute#commitment", # [Output Only] Type of the resource. Always compute#commitment for commitments.
+          "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "startTimestamp": "A String", # [Output Only] Commitment start time in RFC3339 text format.
+          "region": "A String", # [Output Only] URL of the region where this commitment may be used.
+          "endTimestamp": "A String", # [Output Only] Commitment end time in RFC3339 text format.
+          "plan": "A String", # The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "resources": [ # List of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.
+            { # Commitment for a particular resource (a Commitment is composed of one or more of these).
+              "amount": "A String", # The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.
+              "type": "A String", # Type of resource for which this commitment applies. Possible values are VCPU and MEMORY
+            },
+          ],
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
     ],
     "kind": "compute#commitmentList", # [Output Only] Type of resource. Always compute#commitmentList for lists of commitments.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
diff --git a/docs/dyn/compute_beta.regionInstanceGroupManagers.html b/docs/dyn/compute_beta.regionInstanceGroupManagers.html
index 92e6996..6ac81e9 100644
--- a/docs/dyn/compute_beta.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_beta.regionInstanceGroupManagers.html
@@ -96,11 +96,14 @@
   <code><a href="#listManagedInstances">listManagedInstances(project, region, instanceGroupManager, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
 <p class="firstline">Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances.</p>
 <p class="toc_element">
+  <code><a href="#listManagedInstances_next">listManagedInstances_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</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>
 <p class="toc_element">
   <code><a href="#patch">patch(project, region, instanceGroupManager, body)</a></code></p>
-<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
+<p class="firstline">Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body)</a></code></p>
 <p class="firstline">Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
@@ -127,6 +130,10 @@
     <code class="details" id="abandonInstances">abandonInstances(project, region, instanceGroupManager, body)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -135,7 +142,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The names of one or more instances to abandon.
+    "instances": [ # The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -254,6 +261,10 @@
     <code class="details" id="deleteInstances">deleteInstances(project, region, instanceGroupManager, body)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -262,7 +273,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The names of one or more instances to delete.
+    "instances": [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -380,6 +391,8 @@
     <code class="details" id="insert">insert(project, region, body)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
+A regional managed instance group can contain up to 2000 instances.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -580,6 +593,7 @@
   An object of the form:
 
     {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "managedInstances": [ # List of managed instances.
       {
         "instanceStatus": "A String", # [Output Only] The status of the instance. This field is empty when the instance does not exist.
@@ -615,6 +629,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="listManagedInstances_next">listManagedInstances_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>
+
+<div class="method">
     <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
   <pre>Retrieves the next page of results.
 
@@ -630,7 +658,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, region, instanceGroupManager, body)</code>
-  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
+  <pre>Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -739,6 +767,10 @@
     <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -747,7 +779,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to recreate.
+    "instances": [ # The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -807,6 +839,8 @@
     <code class="details" id="resize">resize(project, region, instanceGroupManager, size)</code>
   <pre>Changes the intended size for the managed instance group. If you increase the size, the group schedules actions to create new instances using the current instance template. If you decrease the size, the group schedules delete actions on one or more instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
diff --git a/docs/dyn/compute_beta.routers.html b/docs/dyn/compute_beta.routers.html
index 1718fe6..3e69cb7 100644
--- a/docs/dyn/compute_beta.routers.html
+++ b/docs/dyn/compute_beta.routers.html
@@ -100,7 +100,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, region, router, body)</a></code></p>
-<p class="firstline">Updates the specified Router resource with the data included in the request. This method supports patch semantics.</p>
+<p class="firstline">Patches the specified Router resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#preview">preview(project, region, router, body)</a></code></p>
 <p class="firstline">Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.</p>
@@ -147,7 +147,7 @@
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
                 {
-                  "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+                  "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
                   "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
                   "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
                 },
@@ -282,7 +282,7 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
         {
-          "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+          "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
           "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
           "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
         },
@@ -377,6 +377,46 @@
           "numLearnedRoutes": 42, # Number of routes learned from the remote BGP Peer.
         },
       ],
+      "bestRoutesForRouter": [ # Best routes learned by this router.
+        { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
+            #
+            # For each packet leaving a instance, the system searches that instance's routing table for a single best matching route. Routes match packets by destination IP address, preferring smaller or more specific ranges over larger ones. If there is a tie, the system selects the route with the smallest priority value. If there is still a tie, it uses the layer three and four packet headers to select just one of the remaining matching routes. The packet is then forwarded as specified by the nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
+            #
+            # Packets that do not match any route in the sending instance's routing table are dropped.
+          "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
+          "nextHopVpnTunnel": "A String", # The URL to a VpnTunnel that should handle matching packets.
+          "kind": "compute#route", # [Output Only] Type of this resource. Always compute#routes for Route resources.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "tags": [ # A list of instance tags to which this route applies.
+            "A String",
+          ],
+          "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
+              # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
+          "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+          "nextHopPeering": "A String", # [Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.
+          "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
+          "network": "A String", # Fully-qualified URL of the network that this route applies to.
+          "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+          "warnings": [ # [Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.
+            {
+              "message": "A String", # [Output Only] A human-readable description of the warning code.
+              "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+              "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                  # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                {
+                  "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                  "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                },
+              ],
+            },
+          ],
+          "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+        },
+      ],
       "network": "A String", # URI of the network to which this router belongs.
       "bestRoutes": [ # Best routes for this router's network.
         { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
@@ -437,7 +477,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
@@ -549,7 +589,7 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
             {
-              "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+              "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
               "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
               "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
             },
@@ -597,12 +637,12 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, region, router, body)</code>
-  <pre>Updates the specified Router resource with the data included in the request. This method supports patch semantics.
+  <pre>Patches the specified Router resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
-  router: string, Name of the Router resource to update. (required)
+  router: string, Name of the Router resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -611,7 +651,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
@@ -704,7 +744,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
@@ -740,7 +780,7 @@
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
           {
-            "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+            "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
             "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
             "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
           },
@@ -812,7 +852,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
diff --git a/docs/dyn/compute_beta.subnetworks.html b/docs/dyn/compute_beta.subnetworks.html
index 420a1ea..30f4853 100644
--- a/docs/dyn/compute_beta.subnetworks.html
+++ b/docs/dyn/compute_beta.subnetworks.html
@@ -106,7 +106,7 @@
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
 <p class="toc_element">
   <code><a href="#setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body)</a></code></p>
-<p class="firstline">Set whether VMs in this subnet can access Google services without assigning external IP addresses through Cloudpath.</p>
+<p class="firstline">Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
@@ -144,19 +144,19 @@
         "subnetworks": [ # List of subnetworks contained in this scope.
           { # A Subnetwork resource.
               "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "region": "A String", # URL of the region where the Subnetwork resides.
+              "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
               "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
                 { # Represents a secondary IP range of a subnetwork.
                   "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
                   "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
                 },
               ],
-              "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-              "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-              "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+              "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+              "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+              "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
               "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -334,19 +334,19 @@
 
     { # A Subnetwork resource.
       "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "region": "A String", # URL of the region where the Subnetwork resides.
+      "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
       "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
         { # Represents a secondary IP range of a subnetwork.
           "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
           "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
         },
       ],
-      "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-      "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-      "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+      "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+      "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+      "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -377,9 +377,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -395,7 +401,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -406,6 +412,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -454,6 +463,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -475,19 +486,19 @@
 
 { # A Subnetwork resource.
     "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "region": "A String", # URL of the region where the Subnetwork resides.
+    "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
     "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
       { # Represents a secondary IP range of a subnetwork.
         "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
         "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
       },
     ],
-    "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-    "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-    "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+    "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+    "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+    "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -576,19 +587,19 @@
     "items": [ # The Subnetwork resources.
       { # A Subnetwork resource.
           "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "region": "A String", # URL of the region where the Subnetwork resides.
+          "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
           "secondaryIpRanges": [ # An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges.
             { # Represents a secondary IP range of a subnetwork.
               "ipCidrRange": "A String", # The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported.
               "rangeName": "A String", # The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.
             },
           ],
-          "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-          "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses.
-          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-          "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+          "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+          "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+          "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -637,9 +648,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -655,7 +672,7 @@
           "logType": "A String", # The log type that this config enables.
         },
       ],
-      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+      "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
     },
   ],
   "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -666,6 +683,9 @@
             "field": "A String", # The field value to attribute.
             "metric": "A String", # The metric to update.
           },
+          "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+            "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+          },
         },
       ],
       "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -714,6 +734,8 @@
           #
           # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
           #
+          #
+          #
           # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
         "A String",
       ],
@@ -738,9 +760,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. It consists of which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -756,7 +784,7 @@
             "logType": "A String", # The log type that this config enables.
           },
         ],
-        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services.
+        "service": "A String", # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
       },
     ],
     "rules": [ # If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.
@@ -767,6 +795,9 @@
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
             },
+            "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
+            },
           },
         ],
         "notIns": [ # If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
@@ -815,6 +846,8 @@
             #
             # * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
             #
+            #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`.
           "A String",
         ],
@@ -826,7 +859,7 @@
 
 <div class="method">
     <code class="details" id="setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body)</code>
-  <pre>Set whether VMs in this subnet can access Google services without assigning external IP addresses through Cloudpath.
+  <pre>Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.
 
 Args:
   project: string, Project ID for this request. (required)
diff --git a/docs/dyn/compute_beta.urlMaps.html b/docs/dyn/compute_beta.urlMaps.html
index 42a0a5b..366b8b3 100644
--- a/docs/dyn/compute_beta.urlMaps.html
+++ b/docs/dyn/compute_beta.urlMaps.html
@@ -94,7 +94,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, urlMap, body)</a></code></p>
-<p class="firstline">Updates the specified UrlMap resource with the data included in the request. This method supports patch semantics.</p>
+<p class="firstline">Patches the specified UrlMap resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(project, resource, body)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
@@ -490,11 +490,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, urlMap, body)</code>
-  <pre>Updates the specified UrlMap resource with the data included in the request. This method supports patch semantics.
+  <pre>Patches the specified UrlMap resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  urlMap: string, Name of the UrlMap resource to update. (required)
+  urlMap: string, Name of the UrlMap resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_beta.zones.html b/docs/dyn/compute_beta.zones.html
index 1a3fb91..62ea1db 100644
--- a/docs/dyn/compute_beta.zones.html
+++ b/docs/dyn/compute_beta.zones.html
@@ -107,6 +107,9 @@
       "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
     "region": "A String", # [Output Only] Full URL reference to the region which hosts the zone.
+    "availableCpuPlatforms": [ # [Output Only] Available cpu/platform selections for the zone.
+      "A String",
+    ],
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -155,6 +158,9 @@
           "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
         },
         "region": "A String", # [Output Only] Full URL reference to the region which hosts the zone.
+        "availableCpuPlatforms": [ # [Output Only] Available cpu/platform selections for the zone.
+          "A String",
+        ],
         "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
         "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
         "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
diff --git a/docs/dyn/compute_v1.addresses.html b/docs/dyn/compute_v1.addresses.html
index b54df50..5024a3b 100644
--- a/docs/dyn/compute_v1.addresses.html
+++ b/docs/dyn/compute_v1.addresses.html
@@ -143,7 +143,7 @@
               "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-              "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+              "address": "A String", # The static external IP address represented by this resource.
               "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
               ],
@@ -251,7 +251,7 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+      "address": "A String", # The static external IP address represented by this resource.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -277,7 +277,7 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+    "address": "A String", # The static external IP address represented by this resource.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -373,7 +373,7 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+          "address": "A String", # The static external IP address represented by this resource.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_v1.autoscalers.html b/docs/dyn/compute_v1.autoscalers.html
index 41aaa5b..d901006 100644
--- a/docs/dyn/compute_v1.autoscalers.html
+++ b/docs/dyn/compute_v1.autoscalers.html
@@ -96,7 +96,7 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(project, zone, autoscaler, body)</a></code></p>
+  <code><a href="#patch">patch(project, zone, body, autoscaler=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, zone, body, autoscaler=None)</a></code></p>
@@ -161,14 +161,13 @@
                 },
                 "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
                   { # Custom utilization metric policy.
-                    "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                    "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                         #
-                        # For example, the following is a valid metric:
-                        # compute.googleapis.com/instance/network/received_bytes_count
-                        # The following is not a valid metric because it does not increase or decrease based on usage:
-                        # compute.googleapis.com/instance/cpu/reserved_cores
+                        # The metric must have a value type of INT64 or DOUBLE.
                     "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                    "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                    "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                        #
+                        # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
                   },
                 ],
                 "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -297,14 +296,13 @@
         },
         "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
           { # Custom utilization metric policy.
-            "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+            "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                 #
-                # For example, the following is a valid metric:
-                # compute.googleapis.com/instance/network/received_bytes_count
-                # The following is not a valid metric because it does not increase or decrease based on usage:
-                # compute.googleapis.com/instance/cpu/reserved_cores
+                # The metric must have a value type of INT64 or DOUBLE.
             "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-            "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+            "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                #
+                # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
           },
         ],
         "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -351,14 +349,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -475,14 +472,13 @@
             },
             "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
               { # Custom utilization metric policy.
-                "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                     #
-                    # For example, the following is a valid metric:
-                    # compute.googleapis.com/instance/network/received_bytes_count
-                    # The following is not a valid metric because it does not increase or decrease based on usage:
-                    # compute.googleapis.com/instance/cpu/reserved_cores
+                    # The metric must have a value type of INT64 or DOUBLE.
                 "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                    #
+                    # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
               },
             ],
             "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -522,13 +518,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, zone, autoscaler, body)</code>
+    <code class="details" id="patch">patch(project, zone, body, autoscaler=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   zone: string, Name of the zone for this request. (required)
-  autoscaler: string, Name of the autoscaler to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -549,14 +544,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -575,6 +569,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  autoscaler: string, Name of the autoscaler to patch.
 
 Returns:
   An object of the form:
@@ -653,14 +648,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
diff --git a/docs/dyn/compute_v1.backendBuckets.html b/docs/dyn/compute_v1.backendBuckets.html
index cd70424..2c3c5f3 100644
--- a/docs/dyn/compute_v1.backendBuckets.html
+++ b/docs/dyn/compute_v1.backendBuckets.html
@@ -314,7 +314,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  backendBucket: string, Name of the BackendBucket resource to update. (required)
+  backendBucket: string, Name of the BackendBucket resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_v1.backendServices.html b/docs/dyn/compute_v1.backendServices.html
index c5bd197..d0b00c0 100644
--- a/docs/dyn/compute_v1.backendServices.html
+++ b/docs/dyn/compute_v1.backendServices.html
@@ -100,7 +100,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, backendService, body)</a></code></p>
-<p class="firstline">Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
+<p class="firstline">Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, backendService, body)</a></code></p>
 <p class="firstline">Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.</p>
@@ -158,7 +158,19 @@
                   #
                   # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-              "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+              "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+                "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+                  "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+                  "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+                  "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                    "A String",
+                  ],
+                  "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                    "A String",
+                  ],
+                  "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+                },
+              },
               "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
                   #
                   # When the load balancing scheme is INTERNAL, this field is not used.
@@ -167,6 +179,7 @@
               "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
                   #
                   # When the load balancing scheme is INTERNAL, this field is not used.
+              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
                   #
                   # This cannot be used for internal load balancing.
@@ -181,7 +194,7 @@
                   "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
                       #
                       # This cannot be used for internal load balancing.
-                  "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+                  "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                       #
                       # This cannot be used for internal load balancing.
                   "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -201,6 +214,7 @@
                       # This cannot be used for internal load balancing.
                 },
               ],
+              "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
               "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
               "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
                   #
@@ -218,7 +232,12 @@
                   #
                   # When the protocol is UDP, this field is not used.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+              "iap": { # Identity-Aware Proxy
+                "oauth2ClientId": "A String",
+                "enabled": True or False,
+                "oauth2ClientSecret": "A String",
+                "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+              },
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
               "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
             },
@@ -325,7 +344,19 @@
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+      "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+        "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+          "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+          "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+          "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+        },
+      },
       "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
           #
           # When the load balancing scheme is INTERNAL, this field is not used.
@@ -334,6 +365,7 @@
       "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
           #
           # When the load balancing scheme is INTERNAL, this field is not used.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
           #
           # This cannot be used for internal load balancing.
@@ -348,7 +380,7 @@
           "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
               #
               # This cannot be used for internal load balancing.
-          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
               #
               # This cannot be used for internal load balancing.
           "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -368,6 +400,7 @@
               # This cannot be used for internal load balancing.
         },
       ],
+      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
       "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
       "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
           #
@@ -385,7 +418,12 @@
           #
           # When the protocol is UDP, this field is not used.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "iap": { # Identity-Aware Proxy
+        "oauth2ClientId": "A String",
+        "enabled": True or False,
+        "oauth2ClientSecret": "A String",
+        "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+      },
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
@@ -442,7 +480,19 @@
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -451,6 +501,7 @@
     "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
         # 
         # This cannot be used for internal load balancing.
@@ -465,7 +516,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -485,6 +536,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -502,7 +554,12 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String",
+      "enabled": True or False,
+      "oauth2ClientSecret": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+    },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
@@ -598,7 +655,19 @@
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+          "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+            "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+              "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+              "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+              "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+            },
+          },
           "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
               #
               # When the load balancing scheme is INTERNAL, this field is not used.
@@ -607,6 +676,7 @@
           "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
               #
               # When the load balancing scheme is INTERNAL, this field is not used.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
               #
               # This cannot be used for internal load balancing.
@@ -621,7 +691,7 @@
               "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
                   #
                   # This cannot be used for internal load balancing.
-              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                   #
                   # This cannot be used for internal load balancing.
               "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -641,6 +711,7 @@
                   # This cannot be used for internal load balancing.
             },
           ],
+          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
           "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
           "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
               #
@@ -658,7 +729,12 @@
               #
               # When the protocol is UDP, this field is not used.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "iap": { # Identity-Aware Proxy
+            "oauth2ClientId": "A String",
+            "enabled": True or False,
+            "oauth2ClientSecret": "A String",
+            "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+          },
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
@@ -685,11 +761,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, backendService, body)</code>
-  <pre>Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
+  <pre>Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  backendService: string, Name of the BackendService resource to update. (required)
+  backendService: string, Name of the BackendService resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -704,7 +780,19 @@
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -713,6 +801,7 @@
     "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
         # 
         # This cannot be used for internal load balancing.
@@ -727,7 +816,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -747,6 +836,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -764,7 +854,12 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String",
+      "enabled": True or False,
+      "oauth2ClientSecret": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+    },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
@@ -841,7 +936,19 @@
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -850,6 +957,7 @@
     "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
         # 
         # This cannot be used for internal load balancing.
@@ -864,7 +972,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -884,6 +992,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -901,7 +1010,12 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String",
+      "enabled": True or False,
+      "oauth2ClientSecret": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+    },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
diff --git a/docs/dyn/compute_v1.disks.html b/docs/dyn/compute_v1.disks.html
index a7e50ba..bd21d84 100644
--- a/docs/dyn/compute_v1.disks.html
+++ b/docs/dyn/compute_v1.disks.html
@@ -101,6 +101,9 @@
 <p class="toc_element">
   <code><a href="#resize">resize(project, zone, disk, body)</a></code></p>
 <p class="firstline">Resizes the specified persistent disk.</p>
+<p class="toc_element">
+  <code><a href="#setLabels">setLabels(project, zone, resource, body)</a></code></p>
+<p class="firstline">Sets the labels on a disk. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
@@ -138,6 +141,9 @@
                 "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
                 "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
               },
+              "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
+                "a_key": "A String",
+              },
               "licenses": [ # Any applicable publicly visible licenses.
                 "A String",
               ],
@@ -166,6 +172,9 @@
                   # - global/snapshots/snapshot
               "lastDetachTimestamp": "A String", # [Output Only] Last detach timestamp in RFC3339 text format.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "labelFingerprint": "A String", # A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+                  #
+                  # To see the latest fingerprint, make a get() request to retrieve a disk.
               "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
               "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted, this field will not be set.
                   #
@@ -263,6 +272,12 @@
       "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
     },
     "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve a snapshot.
+    "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
+      "a_key": "A String",
+    },
     "sourceDiskId": "A String", # [Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.
     "diskSizeGb": "A String", # [Output Only] Size of the snapshot, specified in GB.
     "licenses": [ # [Output Only] A list of public visible licenses that apply to this snapshot. This can be because the original image had licenses attached (such as a Windows image).
@@ -402,6 +417,9 @@
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
       },
+      "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
+        "a_key": "A String",
+      },
       "licenses": [ # Any applicable publicly visible licenses.
         "A String",
       ],
@@ -430,6 +448,9 @@
           # - global/snapshots/snapshot
       "lastDetachTimestamp": "A String", # [Output Only] Last detach timestamp in RFC3339 text format.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve a disk.
       "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
       "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted, this field will not be set.
           #
@@ -478,6 +499,9 @@
       "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
       "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
     },
+    "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
+      "a_key": "A String",
+    },
     "licenses": [ # Any applicable publicly visible licenses.
       "A String",
     ],
@@ -506,6 +530,9 @@
         # - global/snapshots/snapshot
     "lastDetachTimestamp": "A String", # [Output Only] Last detach timestamp in RFC3339 text format.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve a disk.
     "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
     "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted, this field will not be set.
         # 
@@ -625,6 +652,9 @@
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
             "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
           },
+          "labels": { # Labels to apply to this disk. These can be later modified by the setLabels method.
+            "a_key": "A String",
+          },
           "licenses": [ # Any applicable publicly visible licenses.
             "A String",
           ],
@@ -653,6 +683,9 @@
               # - global/snapshots/snapshot
           "lastDetachTimestamp": "A String", # [Output Only] Last detach timestamp in RFC3339 text format.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+              #
+              # To see the latest fingerprint, make a get() request to retrieve a disk.
           "sourceImageId": "A String", # [Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
           "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted, this field will not be set.
               #
@@ -771,4 +804,73 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="setLabels">setLabels(project, zone, resource, body)</code>
+  <pre>Sets the labels on a disk. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # The labels to set for this resource.
+      "a_key": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.firewalls.html b/docs/dyn/compute_v1.firewalls.html
index eefea2f..90c5180 100644
--- a/docs/dyn/compute_v1.firewalls.html
+++ b/docs/dyn/compute_v1.firewalls.html
@@ -91,10 +91,10 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, firewall, body)</a></code></p>
-<p class="firstline">Updates the specified firewall rule with the data included in the request. This method supports patch semantics.</p>
+<p class="firstline">Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, firewall, body)</a></code></p>
-<p class="firstline">Updates the specified firewall rule with the data included in the request.</p>
+<p class="firstline">Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, firewall)</code>
@@ -166,7 +166,7 @@
   An object of the form:
 
     { # Represents a Firewall resource.
-      "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+      "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
         "A String",
@@ -210,7 +210,7 @@
     The object takes the form of:
 
 { # Represents a Firewall resource.
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
@@ -324,7 +324,7 @@
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # [Output Only] A list of Firewall resources.
       { # Represents a Firewall resource.
-          "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+          "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
             "A String",
@@ -379,7 +379,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, firewall, body)</code>
-  <pre>Updates the specified firewall rule with the data included in the request. This method supports patch semantics.
+  <pre>Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -388,7 +388,7 @@
     The object takes the form of:
 
 { # Represents a Firewall resource.
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
@@ -474,7 +474,7 @@
 
 <div class="method">
     <code class="details" id="update">update(project, firewall, body)</code>
-  <pre>Updates the specified firewall rule with the data included in the request.
+  <pre>Updates the specified firewall rule with the data included in the request. Using PUT method, can only update following fields of firewall rule: allowed, description, sourceRanges, sourceTags, targetTags.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -483,7 +483,7 @@
     The object takes the form of:
 
 { # Represents a Firewall resource.
-    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
+    "kind": "compute#firewall", # [Output Only] Type of the resource. Always compute#firewall for firewall rules.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "sourceTags": [ # If source tags are specified, the firewall will apply only to traffic with source IP that belongs to a tag listed in source tags. Source tags cannot be used to control traffic to an instance's external IP address. Because tags are associated with an instance, not an IP address. One or both of sourceRanges and sourceTags may be set. If both properties are set, the firewall will apply to traffic that has source IP address within sourceRanges OR the source IP that belongs to a tag listed in the sourceTags property. The connection does not need to match both properties for the firewall to apply.
       "A String",
diff --git a/docs/dyn/compute_v1.forwardingRules.html b/docs/dyn/compute_v1.forwardingRules.html
index 06970a3..494175d 100644
--- a/docs/dyn/compute_v1.forwardingRules.html
+++ b/docs/dyn/compute_v1.forwardingRules.html
@@ -130,18 +130,18 @@
     "items": { # A map of scoped forwarding rule lists.
       "a_key": { # Name of the scope containing this set of addresses.
         "forwardingRules": [ # List of forwarding rules contained in this scope.
-          { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+          { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
               "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
                   #
-                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+                  # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
                   #
-                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+                  # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
               "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-              "ports": [ # This field is not used for external load balancing.
+              "ports": [ # This field is used along with the backend_service field for internal load balancing.
                   #
-                  # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+                  # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
                   #
                   # You may specify a maximum of up to 5 ports.
                 "A String",
@@ -150,12 +150,19 @@
                   #
                   # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
               "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+              "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
                   #
                   # This field is not used for internal load balancing.
-              "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
                   #
-                  # This field is not used for internal load balancing.
+                  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+                  #
+                  # Some types of forwarding target have constraints on the acceptable ports:
+                  # - TargetHttpProxy: 80, 8080
+                  # - TargetHttpsProxy: 443
+                  # - TargetSslProxy: 443
+                  # - TargetVpnGateway: 500, 4500
+                  # -
               "backendService": "A String", # This field is not used for external load balancing.
                   #
                   # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -277,18 +284,18 @@
 Returns:
   An object of the form:
 
-    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
       "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-      "ports": [ # This field is not used for external load balancing.
+      "ports": [ # This field is used along with the backend_service field for internal load balancing.
           #
-          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
           #
           # You may specify a maximum of up to 5 ports.
         "A String",
@@ -297,12 +304,19 @@
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
       "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
           #
           # This field is not used for internal load balancing.
-      "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+      "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
           #
-          # This field is not used for internal load balancing.
+          # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # Some types of forwarding target have constraints on the acceptable ports:
+          # - TargetHttpProxy: 80, 8080
+          # - TargetHttpsProxy: 443
+          # - TargetSslProxy: 443
+          # - TargetVpnGateway: 500, 4500
+          # -
       "backendService": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -331,18 +345,18 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
     "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-    "ports": [ # This field is not used for external load balancing.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
         # 
-        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
         # 
         # You may specify a maximum of up to 5 ports.
       "A String",
@@ -351,12 +365,19 @@
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
     "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
         # 
         # This field is not used for internal load balancing.
-    "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
         # 
-        # This field is not used for internal load balancing.
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
     "backendService": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -455,18 +476,18 @@
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
-      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
           "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-          "ports": [ # This field is not used for external load balancing.
+          "ports": [ # This field is used along with the backend_service field for internal load balancing.
               #
-              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
               #
               # You may specify a maximum of up to 5 ports.
             "A String",
@@ -475,12 +496,19 @@
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
           "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
               #
               # This field is not used for internal load balancing.
-          "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
               #
-              # This field is not used for internal load balancing.
+              # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # Some types of forwarding target have constraints on the acceptable ports:
+              # - TargetHttpProxy: 80, 8080
+              # - TargetHttpsProxy: 443
+              # - TargetSslProxy: 443
+              # - TargetVpnGateway: 500, 4500
+              # -
           "backendService": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
diff --git a/docs/dyn/compute_v1.globalAddresses.html b/docs/dyn/compute_v1.globalAddresses.html
index 871b4c2..0e538b6 100644
--- a/docs/dyn/compute_v1.globalAddresses.html
+++ b/docs/dyn/compute_v1.globalAddresses.html
@@ -164,7 +164,7 @@
       "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-      "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+      "address": "A String", # The static external IP address represented by this resource.
       "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
@@ -189,7 +189,7 @@
     "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-    "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+    "address": "A String", # The static external IP address represented by this resource.
     "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
@@ -284,7 +284,7 @@
           "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
-          "address": "A String", # The static external IP address represented by this resource. Only IPv4 is supported.
+          "address": "A String", # The static external IP address represented by this resource.
           "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
diff --git a/docs/dyn/compute_v1.globalForwardingRules.html b/docs/dyn/compute_v1.globalForwardingRules.html
index a747e8b..22e69b0 100644
--- a/docs/dyn/compute_v1.globalForwardingRules.html
+++ b/docs/dyn/compute_v1.globalForwardingRules.html
@@ -76,26 +76,26 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(project, forwardingRule)</a></code></p>
-<p class="firstline">Deletes the specified ForwardingRule resource.</p>
+<p class="firstline">Deletes the specified GlobalForwardingRule resource.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, forwardingRule)</a></code></p>
-<p class="firstline">Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
+<p class="firstline">Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, body)</a></code></p>
-<p class="firstline">Creates a ForwardingRule resource in the specified project and region using the data included in the request.</p>
+<p class="firstline">Creates a GlobalForwardingRule resource in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves a list of ForwardingRule resources available to the specified project.</p>
+<p class="firstline">Retrieves a list of GlobalForwardingRule resources available to the specified project.</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>
 <p class="toc_element">
   <code><a href="#setTarget">setTarget(project, forwardingRule, body)</a></code></p>
-<p class="firstline">Changes target URL for forwarding rule. The new target should be of the same type as the old target.</p>
+<p class="firstline">Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, forwardingRule)</code>
-  <pre>Deletes the specified ForwardingRule resource.
+  <pre>Deletes the specified GlobalForwardingRule resource.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -153,7 +153,7 @@
 
 <div class="method">
     <code class="details" id="get">get(project, forwardingRule)</code>
-  <pre>Returns the specified ForwardingRule resource. Get a list of available forwarding rules by making a list() request.
+  <pre>Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -162,18 +162,18 @@
 Returns:
   An object of the form:
 
-    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+    { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
       "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
           #
-          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+          # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
           #
-          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+          # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
       "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-      "ports": [ # This field is not used for external load balancing.
+      "ports": [ # This field is used along with the backend_service field for internal load balancing.
           #
-          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+          # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
           #
           # You may specify a maximum of up to 5 ports.
         "A String",
@@ -182,12 +182,19 @@
           #
           # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
       "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+      "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
           #
           # This field is not used for internal load balancing.
-      "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+      "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
           #
-          # This field is not used for internal load balancing.
+          # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          #
+          # Some types of forwarding target have constraints on the acceptable ports:
+          # - TargetHttpProxy: 80, 8080
+          # - TargetHttpsProxy: 443
+          # - TargetSslProxy: 443
+          # - TargetVpnGateway: 500, 4500
+          # -
       "backendService": "A String", # This field is not used for external load balancing.
           #
           # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -208,25 +215,25 @@
 
 <div class="method">
     <code class="details" id="insert">insert(project, body)</code>
-  <pre>Creates a ForwardingRule resource in the specified project and region using the data included in the request.
+  <pre>Creates a GlobalForwardingRule resource in the specified project using the data included in the request.
 
 Args:
   project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+{ # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
     "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
         # 
-        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+        # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
         # 
-        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+        # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
     "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-    "ports": [ # This field is not used for external load balancing.
+    "ports": [ # This field is used along with the backend_service field for internal load balancing.
         # 
-        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+        # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
         # 
         # You may specify a maximum of up to 5 ports.
       "A String",
@@ -235,12 +242,19 @@
         # 
         # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
     "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+    "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
         # 
         # This field is not used for internal load balancing.
-    "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+    "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
         # 
-        # This field is not used for internal load balancing.
+        # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+        # 
+        # Some types of forwarding target have constraints on the acceptable ports:
+        # - TargetHttpProxy: 80, 8080
+        # - TargetHttpsProxy: 443
+        # - TargetSslProxy: 443
+        # - TargetVpnGateway: 500, 4500
+        # -
     "backendService": "A String", # This field is not used for external load balancing.
         # 
         # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -311,7 +325,7 @@
 
 <div class="method">
     <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves a list of ForwardingRule resources available to the specified project.
+  <pre>Retrieves a list of GlobalForwardingRule resources available to the specified project.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -338,18 +352,18 @@
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
     "items": [ # A list of ForwardingRule resources.
-      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
+      { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target virtual machines to forward a packet to if it matches the given [IPAddress, IPProtocol, ports] tuple.
           "kind": "compute#forwardingRule", # [Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "IPAddress": "A String", # The IP address that this forwarding rule is serving on behalf of.
               #
-              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IP from the same scope (global or regional) will be assigned.
+              # For global forwarding rules, the address must be a global IP. For regional forwarding rules, the address must live in the same region as the forwarding rule. By default, this field is empty and an ephemeral IPv4 address from the same scope (global or regional) will be assigned. A regional forwarding rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6.
               #
-              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule. Only IPv4 is supported.
+              # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address belonging to the network/subnetwork configured for the forwarding rule. A reserved address cannot be used. If the field is empty, the IP address will be automatically allocated from the internal IP range of the subnetwork or network configured for this forwarding rule.
           "region": "A String", # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules.
-          "ports": [ # This field is not used for external load balancing.
+          "ports": [ # This field is used along with the backend_service field for internal load balancing.
               #
-              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule. If the port list is not provided then all ports are allowed to pass through.
+              # When the load balancing scheme is INTERNAL, a single port or a comma separated list of ports can be configured. Only packets addressed to these ports will be forwarded to the backends configured with this forwarding rule.
               #
               # You may specify a maximum of up to 5 ports.
             "A String",
@@ -358,12 +372,19 @@
               #
               # For internal load balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If this field is not specified, the default network will be used.
           "loadBalancingScheme": "A String", # This signifies what the ForwardingRule will be used for and can only take the following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
-          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. For example, TargetHttpProxy requires HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
+          "target": "A String", # The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must live in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object.
               #
               # This field is not used for internal load balancing.
-          "portRange": "A String", # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+          "portRange": "A String", # This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
               #
-              # This field is not used for internal load balancing.
+              # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the specified range will be forwarded to target. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
+              #
+              # Some types of forwarding target have constraints on the acceptable ports:
+              # - TargetHttpProxy: 80, 8080
+              # - TargetHttpsProxy: 443
+              # - TargetSslProxy: 443
+              # - TargetVpnGateway: 500, 4500
+              # -
           "backendService": "A String", # This field is not used for external load balancing.
               #
               # For internal load balancing, this field identifies the BackendService resource to receive the matched traffic.
@@ -403,7 +424,7 @@
 
 <div class="method">
     <code class="details" id="setTarget">setTarget(project, forwardingRule, body)</code>
-  <pre>Changes target URL for forwarding rule. The new target should be of the same type as the old target.
+  <pre>Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.
 
 Args:
   project: string, Project ID for this request. (required)
diff --git a/docs/dyn/compute_v1.healthChecks.html b/docs/dyn/compute_v1.healthChecks.html
index 0b1cc58..80fe50d 100644
--- a/docs/dyn/compute_v1.healthChecks.html
+++ b/docs/dyn/compute_v1.healthChecks.html
@@ -407,7 +407,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  healthCheck: string, Name of the HealthCheck resource to update. (required)
+  healthCheck: string, Name of the HealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_v1.html b/docs/dyn/compute_v1.html
index 66df728..9cab737 100644
--- a/docs/dyn/compute_v1.html
+++ b/docs/dyn/compute_v1.html
@@ -270,6 +270,11 @@
 <p class="firstline">Returns the targetSslProxies Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_v1.targetTcpProxies.html">targetTcpProxies()</a></code>
+</p>
+<p class="firstline">Returns the targetTcpProxies Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_v1.targetVpnGateways.html">targetVpnGateways()</a></code>
 </p>
 <p class="firstline">Returns the targetVpnGateways Resource.</p>
diff --git a/docs/dyn/compute_v1.httpHealthChecks.html b/docs/dyn/compute_v1.httpHealthChecks.html
index 7e338d1..1bd96b1 100644
--- a/docs/dyn/compute_v1.httpHealthChecks.html
+++ b/docs/dyn/compute_v1.httpHealthChecks.html
@@ -329,7 +329,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  httpHealthCheck: string, Name of the HttpHealthCheck resource to update. (required)
+  httpHealthCheck: string, Name of the HttpHealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_v1.httpsHealthChecks.html b/docs/dyn/compute_v1.httpsHealthChecks.html
index c68f7bd..6ff7b3c 100644
--- a/docs/dyn/compute_v1.httpsHealthChecks.html
+++ b/docs/dyn/compute_v1.httpsHealthChecks.html
@@ -329,7 +329,7 @@
 
 Args:
   project: string, Project ID for this request. (required)
-  httpsHealthCheck: string, Name of the HttpsHealthCheck resource to update. (required)
+  httpsHealthCheck: string, Name of the HttpsHealthCheck resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/compute_v1.images.html b/docs/dyn/compute_v1.images.html
index 8b388ea..1098676 100644
--- a/docs/dyn/compute_v1.images.html
+++ b/docs/dyn/compute_v1.images.html
@@ -95,6 +95,9 @@
 <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>
+<p class="toc_element">
+  <code><a href="#setLabels">setLabels(project, resource, body)</a></code></p>
+<p class="firstline">Sets the labels on an image. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, image)</code>
@@ -256,14 +259,15 @@
         "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
         "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
       },
-      "rawDisk": { # The parameters of the raw disk image.
-        "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-        "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
-        "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve an image.
+      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
+        "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
       "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         { # Guest OS features.
@@ -281,6 +285,11 @@
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
       },
+      "rawDisk": { # The parameters of the raw disk image.
+        "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+        "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
+        "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+      },
       "licenses": [ # Any applicable license URI.
         "A String",
       ],
@@ -323,14 +332,15 @@
         "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
         "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
       },
-      "rawDisk": { # The parameters of the raw disk image.
-        "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-        "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
-        "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve an image.
+      "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
+        "a_key": "A String",
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
       "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+      "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
           #
           # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
         { # Guest OS features.
@@ -348,6 +358,11 @@
         "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
       },
+      "rawDisk": { # The parameters of the raw disk image.
+        "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+        "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
+        "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+      },
       "licenses": [ # Any applicable license URI.
         "A String",
       ],
@@ -388,14 +403,15 @@
       "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
       "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
-    "rawDisk": { # The parameters of the raw disk image.
-      "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-      "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
-      "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+    "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+        # 
+        # To see the latest fingerprint, make a get() request to retrieve an image.
+    "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
+      "a_key": "A String",
     },
     "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
     "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-    "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+    "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
         # 
         # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
       { # Guest OS features.
@@ -413,6 +429,11 @@
       "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
       "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
     },
+    "rawDisk": { # The parameters of the raw disk image.
+      "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+      "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
+      "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+    },
     "licenses": [ # Any applicable license URI.
       "A String",
     ],
@@ -523,14 +544,15 @@
             "obsolete": "A String", # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
             "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
           },
-          "rawDisk": { # The parameters of the raw disk image.
-            "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-            "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
-            "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+              #
+              # To see the latest fingerprint, make a get() request to retrieve an image.
+          "labels": { # Labels to apply to this image. These can be later modified by the setLabels method.
+            "a_key": "A String",
           },
           "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
           "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-          "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSCI_MULTIQUEUE.
+          "guestOsFeatures": [ # A list of features to enable on the guest OS. Applicable for bootable images only. Currently, only one feature can be enabled, VIRTIO_SCSI_MULTIQUEUE, which allows each virtual CPU to have its own queue. For Windows images, you can only enable VIRTIO_SCSI_MULTIQUEUE on images with driver version 1.2.0.1621 or higher. Linux images with kernel versions 3.17 and higher will support VIRTIO_SCSI_MULTIQUEUE.
               #
               # For new Windows images, the server might also populate this field with the value WINDOWS, to indicate that this is a Windows image. This value is purely informational and does not enable or disable any features.
             { # Guest OS features.
@@ -548,6 +570,11 @@
             "rawKey": "A String", # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
             "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
           },
+          "rawDisk": { # The parameters of the raw disk image.
+            "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+            "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
+            "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
+          },
           "licenses": [ # Any applicable license URI.
             "A String",
           ],
@@ -578,4 +605,72 @@
     </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="setLabels">setLabels(project, resource, body)</code>
+  <pre>Sets the labels on an image. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": "").
+      "a_key": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.instanceGroupManagers.html b/docs/dyn/compute_v1.instanceGroupManagers.html
index b40ff97..0c8141d 100644
--- a/docs/dyn/compute_v1.instanceGroupManagers.html
+++ b/docs/dyn/compute_v1.instanceGroupManagers.html
@@ -121,6 +121,10 @@
     <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -129,7 +133,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to abandon from the managed instance group.
+    "instances": [ # The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -349,6 +353,10 @@
     <code class="details" id="deleteInstances">deleteInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -357,7 +365,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The list of instances to delete from this managed instance group. Specify one or more instance URLs.
+    "instances": [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -467,6 +475,8 @@
     <code class="details" id="insert">insert(project, zone, body)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
+A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where you want to create the managed instance group. (required)
@@ -699,6 +709,10 @@
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
@@ -707,7 +721,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to recreate.
+    "instances": [ # The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -767,6 +781,8 @@
     <code class="details" id="resize">resize(project, zone, instanceGroupManager, size)</code>
   <pre>Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the managed instance group is located. (required)
diff --git a/docs/dyn/compute_v1.instanceGroups.html b/docs/dyn/compute_v1.instanceGroups.html
index 1fe4730..d423b2a 100644
--- a/docs/dyn/compute_v1.instanceGroups.html
+++ b/docs/dyn/compute_v1.instanceGroups.html
@@ -601,6 +601,8 @@
     <code class="details" id="removeInstances">removeInstances(project, zone, instanceGroup, body)</code>
   <pre>Removes one or more instances from the specified instance group, but does not delete those instances.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   zone: string, The name of the zone where the instance group is located. (required)
diff --git a/docs/dyn/compute_v1.instanceTemplates.html b/docs/dyn/compute_v1.instanceTemplates.html
index 005319f..32fe5df 100644
--- a/docs/dyn/compute_v1.instanceTemplates.html
+++ b/docs/dyn/compute_v1.instanceTemplates.html
@@ -165,16 +165,6 @@
       "id": "A String", # [Output Only] A unique identifier for this instance template. The server defines this identifier.
       "creationTimestamp": "A String", # [Output Only] The creation timestamp for this instance template in RFC3339 text format.
       "properties": { # The instance properties for this instance template.
-        "machineType": "A String", # The machine type to use for instances that are created from this template.
-        "description": "A String", # An optional text description for the instances that are created from this instance template.
-        "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
-          "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
-            "A String",
-          ],
-          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-              #
-              # To see the latest fingerprint, make get() request to the instance.
-        },
         "disks": [ # An array of disks that are associated with the instances that are created from this template.
           { # An instance-attached disk resource.
             "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -250,12 +240,27 @@
                 # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
           },
         ],
+        "machineType": "A String", # The machine type to use for instances that are created from this template.
+        "description": "A String", # An optional text description for the instances that are created from this instance template.
+        "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
+          "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
+            "A String",
+          ],
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+              #
+              # To see the latest fingerprint, make get() request to the instance.
+        },
+        "labels": { # Labels to apply to instances that are created from this template.
+          "a_key": "A String",
+        },
         "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
           "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
           "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
         },
-        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
+        "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
         "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
           { # A service account.
             "scopes": [ # The list of scopes to be made available for this service account.
@@ -264,16 +269,6 @@
             "email": "A String", # Email address of the service account.
           },
         ],
-        "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
-          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-            {
-              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-            },
-          ],
-          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-        },
         "networkInterfaces": [ # An array of network access configurations for this interface.
           { # A network interface resource attached to an instance.
             "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -289,7 +284,7 @@
               { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                 "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                "name": "A String", # Name of this access configuration.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                 "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
               },
             ],
@@ -300,6 +295,16 @@
             "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
           },
         ],
+        "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
+          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+            {
+              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+            },
+          ],
+          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        },
       },
       "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
       "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -321,16 +326,6 @@
     "id": "A String", # [Output Only] A unique identifier for this instance template. The server defines this identifier.
     "creationTimestamp": "A String", # [Output Only] The creation timestamp for this instance template in RFC3339 text format.
     "properties": { # The instance properties for this instance template.
-      "machineType": "A String", # The machine type to use for instances that are created from this template.
-      "description": "A String", # An optional text description for the instances that are created from this instance template.
-      "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
-        "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
-          "A String",
-        ],
-        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-            #
-            # To see the latest fingerprint, make get() request to the instance.
-      },
       "disks": [ # An array of disks that are associated with the instances that are created from this template.
         { # An instance-attached disk resource.
           "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -406,12 +401,27 @@
               # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
         },
       ],
+      "machineType": "A String", # The machine type to use for instances that are created from this template.
+      "description": "A String", # An optional text description for the instances that are created from this instance template.
+      "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
+        "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
+          "A String",
+        ],
+        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            #
+            # To see the latest fingerprint, make get() request to the instance.
+      },
+      "labels": { # Labels to apply to instances that are created from this template.
+        "a_key": "A String",
+      },
       "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
         "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-        "preemptible": True or False, # Whether the instance is preemptible.
+            #
+            # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+        "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
         "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
       },
-      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
+      "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
       "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
         { # A service account.
           "scopes": [ # The list of scopes to be made available for this service account.
@@ -420,16 +430,6 @@
           "email": "A String", # Email address of the service account.
         },
       ],
-      "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
-        "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-          {
-            "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-            "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-          },
-        ],
-        "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-      },
       "networkInterfaces": [ # An array of network access configurations for this interface.
         { # A network interface resource attached to an instance.
           "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -445,7 +445,7 @@
             { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
               "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
               "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-              "name": "A String", # Name of this access configuration.
+              "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
               "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
             },
           ],
@@ -456,6 +456,16 @@
           "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
         },
       ],
+      "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
+        "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+          {
+            "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+            "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+          },
+        ],
+        "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+      },
     },
     "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
     "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -547,16 +557,6 @@
           "id": "A String", # [Output Only] A unique identifier for this instance template. The server defines this identifier.
           "creationTimestamp": "A String", # [Output Only] The creation timestamp for this instance template in RFC3339 text format.
           "properties": { # The instance properties for this instance template.
-            "machineType": "A String", # The machine type to use for instances that are created from this template.
-            "description": "A String", # An optional text description for the instances that are created from this instance template.
-            "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
-              "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
-                "A String",
-              ],
-              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-                  #
-                  # To see the latest fingerprint, make get() request to the instance.
-            },
             "disks": [ # An array of disks that are associated with the instances that are created from this template.
               { # An instance-attached disk resource.
                 "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -632,12 +632,27 @@
                     # Note that for InstanceTemplate, specify the disk name, not the URL for the disk.
               },
             ],
+            "machineType": "A String", # The machine type to use for instances that are created from this template.
+            "description": "A String", # An optional text description for the instances that are created from this instance template.
+            "tags": { # A set of instance tags. # A list of tags to apply to the instances that are created from this template. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035.
+              "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
+                "A String",
+              ],
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+                  #
+                  # To see the latest fingerprint, make get() request to the instance.
+            },
+            "labels": { # Labels to apply to instances that are created from this template.
+              "a_key": "A String",
+            },
             "scheduling": { # Sets the scheduling options for an Instance. # Specifies the scheduling options for the instances that are created from this template.
               "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
               "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
             },
-            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding for instances documentation for more information.
+            "canIpForward": True or False, # Enables instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
             "serviceAccounts": [ # A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this template. Use metadata queries to obtain the access tokens for these instances.
               { # A service account.
                 "scopes": [ # The list of scopes to be made available for this service account.
@@ -646,16 +661,6 @@
                 "email": "A String", # Email address of the service account.
               },
             ],
-            "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
-              "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
-                {
-                  "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
-                  "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
-                },
-              ],
-              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
-              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
-            },
             "networkInterfaces": [ # An array of network access configurations for this interface.
               { # A network interface resource attached to an instance.
                 "kind": "compute#networkInterface", # [Output Only] Type of the resource. Always compute#networkInterface for network interfaces.
@@ -671,7 +676,7 @@
                   { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                     "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                    "name": "A String", # Name of this access configuration.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                     "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
                   },
                 ],
@@ -682,6 +687,16 @@
                 "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
               },
             ],
+            "metadata": { # A metadata key/value entry. # The metadata key/value pairs to assign to instances that are created from this template. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information.
+              "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+                {
+                  "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+                  "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+                },
+              ],
+              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            },
           },
           "selfLink": "A String", # [Output Only] The URL for this instance template. The server defines this URL.
           "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
diff --git a/docs/dyn/compute_v1.instances.html b/docs/dyn/compute_v1.instances.html
index 572cec9..330fa1c 100644
--- a/docs/dyn/compute_v1.instances.html
+++ b/docs/dyn/compute_v1.instances.html
@@ -85,7 +85,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#attachDisk">attachDisk(project, zone, instance, body)</a></code></p>
-<p class="firstline">Attaches a Disk resource to an instance.</p>
+<p class="firstline">Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance)</a></code></p>
 <p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
@@ -112,11 +112,14 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#reset">reset(project, zone, instance)</a></code></p>
-<p class="firstline">Performs a hard reset on the instance.</p>
+<p class="firstline">Performs a reset on the instance. For more information, see Resetting an instance.</p>
 <p class="toc_element">
   <code><a href="#setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName)</a></code></p>
 <p class="firstline">Sets the auto-delete flag for a disk attached to an instance.</p>
 <p class="toc_element">
+  <code><a href="#setLabels">setLabels(project, zone, instance, body)</a></code></p>
+<p class="firstline">Sets labels on an instance. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
+<p class="toc_element">
   <code><a href="#setMachineType">setMachineType(project, zone, instance, body)</a></code></p>
 <p class="firstline">Changes the machine type for a stopped instance to the machine type specified in the request.</p>
 <p class="toc_element">
@@ -156,7 +159,7 @@
 { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
   "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
   "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-  "name": "A String", # Name of this access configuration.
+  "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
   "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
 }
 
@@ -244,8 +247,11 @@
         "instances": [ # [Output Only] List of instances contained in this scope.
           { # An Instance resource.
             "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
-            "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
+            "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
             "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+            "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
+              "a_key": "A String",
+            },
             "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
             "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
             "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -257,6 +263,9 @@
                   #
                   # To see the latest fingerprint, make get() request to the instance.
             },
+            "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+                #
+                # To see the latest fingerprint, make get() request to the instance.
             "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
               { # An instance-attached disk resource.
                 "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -333,10 +342,13 @@
               },
             ],
             "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+            "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
             "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-            "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+            "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
               "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-              "preemptible": True or False, # Whether the instance is preemptible.
+                  #
+                  # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+              "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
               "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
             },
             "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
@@ -375,7 +387,7 @@
                   { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                     "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                     "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                    "name": "A String", # Name of this access configuration.
+                    "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                     "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
                   },
                 ],
@@ -436,7 +448,7 @@
 
 <div class="method">
     <code class="details" id="attachDisk">attachDisk(project, zone, instance, body)</code>
-  <pre>Attaches a Disk resource to an instance.
+  <pre>Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -764,8 +776,11 @@
 
     { # An Instance resource.
     "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
-    "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
+    "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
     "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+    "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
+      "a_key": "A String",
+    },
     "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -777,6 +792,9 @@
           #
           # To see the latest fingerprint, make get() request to the instance.
     },
+    "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        #
+        # To see the latest fingerprint, make get() request to the instance.
     "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
       { # An instance-attached disk resource.
         "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -853,10 +871,13 @@
       },
     ],
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
     "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-    "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+    "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
       "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-      "preemptible": True or False, # Whether the instance is preemptible.
+          #
+          # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+      "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
       "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
     },
     "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
@@ -895,7 +916,7 @@
           { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
             "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
             "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-            "name": "A String", # Name of this access configuration.
+            "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
             "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
           },
         ],
@@ -957,8 +978,11 @@
 
 { # An Instance resource.
   "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
-  "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
+  "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
   "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+  "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
+    "a_key": "A String",
+  },
   "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
   "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -970,6 +994,9 @@
         #
         # To see the latest fingerprint, make get() request to the instance.
   },
+  "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+      # 
+      # To see the latest fingerprint, make get() request to the instance.
   "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
     { # An instance-attached disk resource.
       "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -1046,10 +1073,13 @@
     },
   ],
   "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
   "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-  "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+  "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
     "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-    "preemptible": True or False, # Whether the instance is preemptible.
+        #
+        # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+    "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
     "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
   },
   "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
@@ -1088,7 +1118,7 @@
         { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
           "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
           "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-          "name": "A String", # Name of this access configuration.
+          "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
           "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
         },
       ],
@@ -1197,8 +1227,11 @@
     "items": [ # [Output Only] A list of instances.
       { # An Instance resource.
         "cpuPlatform": "A String", # [Output Only] The CPU platform used by this instance.
-        "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
+        "startRestricted": True or False, # [Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.
         "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+        "labels": { # Labels to apply to this instance. These can be later modified by the setLabels method.
+          "a_key": "A String",
+        },
         "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         "zone": "A String", # [Output Only] URL of the zone where the instance resides.
@@ -1210,6 +1243,9 @@
               #
               # To see the latest fingerprint, make get() request to the instance.
         },
+        "labelFingerprint": "A String", # A fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            #
+            # To see the latest fingerprint, make get() request to the instance.
         "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
           { # An instance-attached disk resource.
             "diskEncryptionKey": { # Represents a customer-supplied encryption key # Encrypts or decrypts a disk using a customer-supplied encryption key.
@@ -1286,10 +1322,13 @@
           },
         ],
         "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.
         "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
-        "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+        "scheduling": { # Sets the scheduling options for an Instance. # Sets the scheduling options for this instance.
           "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-          "preemptible": True or False, # Whether the instance is preemptible.
+              #
+              # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+          "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
           "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
         },
         "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type:
@@ -1328,7 +1367,7 @@
               { # An access configuration attached to an instance's network interface. Only one access config per instance is supported.
                 "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
                 "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
-                "name": "A String", # Name of this access configuration.
+                "name": "A String", # The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.
                 "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
               },
             ],
@@ -1376,7 +1415,7 @@
 
 <div class="method">
     <code class="details" id="reset">reset(project, zone, instance)</code>
-  <pre>Performs a hard reset on the instance.
+  <pre>Performs a reset on the instance. For more information, see Resetting an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1495,6 +1534,75 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setLabels">setLabels(project, zone, instance, body)</code>
+  <pre>Sets labels on an instance. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance scoping this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.
+    "labels": {
+      "a_key": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setMachineType">setMachineType(project, zone, instance, body)</code>
   <pre>Changes the machine type for a stopped instance to the machine type specified in the request.
 
@@ -1646,7 +1754,9 @@
 
 { # Sets the scheduling options for an Instance.
   "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted.
-  "preemptible": True or False, # Whether the instance is preemptible.
+      # 
+      # By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
+  "preemptible": True or False, # Defines whether the instance is preemptible. This can only be set during instance creation, it cannot be set or changed after the instance has been created.
   "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
 }
 
diff --git a/docs/dyn/compute_v1.projects.html b/docs/dyn/compute_v1.projects.html
index 7f9969d..6b00a07 100644
--- a/docs/dyn/compute_v1.projects.html
+++ b/docs/dyn/compute_v1.projects.html
@@ -75,9 +75,36 @@
 <h1><a href="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#disableXpnHost">disableXpnHost(project)</a></code></p>
+<p class="firstline">Disable this project as an XPN host project.</p>
+<p class="toc_element">
+  <code><a href="#disableXpnResource">disableXpnResource(project, body)</a></code></p>
+<p class="firstline">Disable an XPN resource associated with this host project.</p>
+<p class="toc_element">
+  <code><a href="#enableXpnHost">enableXpnHost(project)</a></code></p>
+<p class="firstline">Enable this project as an XPN host project.</p>
+<p class="toc_element">
+  <code><a href="#enableXpnResource">enableXpnResource(project, body)</a></code></p>
+<p class="firstline">Enable XPN resource (a.k.a service project or service folder in the future) for a host project, so that subnetworks in the host project can be used by instances in the service project or folder.</p>
+<p class="toc_element">
   <code><a href="#get">get(project)</a></code></p>
 <p class="firstline">Returns the specified Project resource.</p>
 <p class="toc_element">
+  <code><a href="#getXpnHost">getXpnHost(project)</a></code></p>
+<p class="firstline">Get the XPN host project that this project links to. May be empty if no link exists.</p>
+<p class="toc_element">
+  <code><a href="#getXpnResources">getXpnResources(project, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Get XPN resources associated with this host project.</p>
+<p class="toc_element">
+  <code><a href="#getXpnResources_next">getXpnResources_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#listXpnHosts">listXpnHosts(project, body, order_by=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">List all XPN host projects visible to the user in an organization.</p>
+<p class="toc_element">
+  <code><a href="#listXpnHosts_next">listXpnHosts_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#moveDisk">moveDisk(project, body)</a></code></p>
 <p class="firstline">Moves a persistent disk from one zone to another.</p>
 <p class="toc_element">
@@ -91,6 +118,254 @@
 <p class="firstline">Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="disableXpnHost">disableXpnHost(project)</code>
+  <pre>Disable this project as an XPN host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="disableXpnResource">disableXpnResource(project, body)</code>
+  <pre>Disable an XPN resource associated with this host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "xpnResource": { # XpnResourceId # XPN resource ID.
+      "type": "A String", # The type of the XPN resource.
+      "id": "A String", # The ID of the XPN resource. In the case of projects, this field matches the project's name, not the canonical ID.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enableXpnHost">enableXpnHost(project)</code>
+  <pre>Enable this project as an XPN host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enableXpnResource">enableXpnResource(project, body)</code>
+  <pre>Enable XPN resource (a.k.a service project or service folder in the future) for a host project, so that subnetworks in the host project can be used by instances in the service project or folder.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "xpnResource": { # XpnResourceId # XPN resource ID.
+      "type": "A String", # The type of the XPN resource.
+      "id": "A String", # The ID of the XPN resource. In the case of projects, this field matches the project's name, not the canonical ID.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(project)</code>
   <pre>Returns the specified Project resource.
 
@@ -125,9 +400,10 @@
     ],
     "name": "A String", # The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.
     "usageExportLocation": { # The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix. # The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored.
-        "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
-        "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
-      },
+      "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
+      "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
+    },
+    "xpnProjectStatus": "A String", # [Output Only] The role this project has in a Cross Project Network (XPN) configuration. Currently only HOST projects are differentiated.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server. This is not the project ID, and is just a unique ID used by Compute Engine to identify resources.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
@@ -136,6 +412,171 @@
 </div>
 
 <div class="method">
+    <code class="details" id="getXpnHost">getXpnHost(project)</code>
+  <pre>Get the XPN host project that this project links to. May be empty if no link exists.
+
+Args:
+  project: string, Project ID for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Project resource. Projects can only be created in the Google Cloud Platform Console. Unless marked otherwise, values can only be modified in the console.
+    "kind": "compute#project", # [Output Only] Type of the resource. Always compute#project for projects.
+    "defaultServiceAccount": "A String", # [Output Only] Default service account used by VMs running in this project.
+    "enabledFeatures": [ # Restricted features enabled for use on this project.
+      "A String",
+    ],
+    "commonInstanceMetadata": { # A metadata key/value entry. # Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information.
+      "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+        {
+          "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+          "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+        },
+      ],
+      "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+      "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+    },
+    "quotas": [ # [Output Only] Quotas assigned to this project.
+      { # A quotas entry.
+        "usage": 3.14, # [Output Only] Current usage of this metric.
+        "metric": "A String", # [Output Only] Name of the quota metric.
+        "limit": 3.14, # [Output Only] Quota limit for this metric.
+      },
+    ],
+    "name": "A String", # The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.
+    "usageExportLocation": { # The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix. # The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored.
+      "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
+      "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
+    },
+    "xpnProjectStatus": "A String", # [Output Only] The role this project has in a Cross Project Network (XPN) configuration. Currently only HOST projects are differentiated.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server. This is not the project ID, and is just a unique ID used by Compute Engine to identify resources.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "description": "A String", # An optional textual description of the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getXpnResources">getXpnResources(project, order_by=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Get XPN resources associated with this host project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  order_by: string, A parameter
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "kind": "compute#projectsGetXpnResources", # [Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of XPN resources.
+    "resources": [ # XPN resources attached to this project as their XPN host.
+      { # XpnResourceId
+        "type": "A String", # The type of the XPN resource.
+        "id": "A String", # The ID of the XPN resource. In the case of projects, this field matches the project's name, not the canonical ID.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getXpnResources_next">getXpnResources_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>
+
+<div class="method">
+    <code class="details" id="listXpnHosts">listXpnHosts(project, body, order_by=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>List all XPN host projects visible to the user in an organization.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "organization": "A String", # Optional organization ID managed by Cloud Resource Manager, for which to list XPN host projects. If not specified, the organization will be inferred from the project.
+  }
+
+  order_by: string, A parameter
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # [Output Only] A list of XPN host project URLs.
+      { # A Project resource. Projects can only be created in the Google Cloud Platform Console. Unless marked otherwise, values can only be modified in the console.
+        "kind": "compute#project", # [Output Only] Type of the resource. Always compute#project for projects.
+        "defaultServiceAccount": "A String", # [Output Only] Default service account used by VMs running in this project.
+        "enabledFeatures": [ # Restricted features enabled for use on this project.
+          "A String",
+        ],
+        "commonInstanceMetadata": { # A metadata key/value entry. # Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information.
+          "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
+            {
+              "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
+              "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
+            },
+          ],
+          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        },
+        "quotas": [ # [Output Only] Quotas assigned to this project.
+          { # A quotas entry.
+            "usage": 3.14, # [Output Only] Current usage of this metric.
+            "metric": "A String", # [Output Only] Name of the quota metric.
+            "limit": 3.14, # [Output Only] Quota limit for this metric.
+          },
+        ],
+        "name": "A String", # The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.
+        "usageExportLocation": { # The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix. # The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored.
+          "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
+          "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
+        },
+        "xpnProjectStatus": "A String", # [Output Only] The role this project has in a Cross Project Network (XPN) configuration. Currently only HOST projects are differentiated.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server. This is not the project ID, and is just a unique ID used by Compute Engine to identify resources.
+        "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+        "description": "A String", # An optional textual description of the resource.
+      },
+    ],
+    "kind": "compute#xpnHostList", # [Output Only] Type of resource. Always compute#xpnHostList for lists of XPN hosts.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listXpnHosts_next">listXpnHosts_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>
+
+<div class="method">
     <code class="details" id="moveDisk">moveDisk(project, body)</code>
   <pre>Moves a persistent disk from one zone to another.
 
@@ -358,9 +799,9 @@
     The object takes the form of:
 
 { # The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.
-    "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
-    "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
-  }
+  "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.
+  "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
+}
 
 
 Returns:
diff --git a/docs/dyn/compute_v1.regionAutoscalers.html b/docs/dyn/compute_v1.regionAutoscalers.html
index cbd6593..60d4063 100644
--- a/docs/dyn/compute_v1.regionAutoscalers.html
+++ b/docs/dyn/compute_v1.regionAutoscalers.html
@@ -90,7 +90,7 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(project, region, autoscaler, body)</a></code></p>
+  <code><a href="#patch">patch(project, region, body, autoscaler=None)</a></code></p>
 <p class="firstline">Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, region, body, autoscaler=None)</a></code></p>
@@ -184,14 +184,13 @@
         },
         "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
           { # Custom utilization metric policy.
-            "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+            "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                 #
-                # For example, the following is a valid metric:
-                # compute.googleapis.com/instance/network/received_bytes_count
-                # The following is not a valid metric because it does not increase or decrease based on usage:
-                # compute.googleapis.com/instance/cpu/reserved_cores
+                # The metric must have a value type of INT64 or DOUBLE.
             "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-            "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+            "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                #
+                # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
           },
         ],
         "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -238,14 +237,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -362,14 +360,13 @@
             },
             "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
               { # Custom utilization metric policy.
-                "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+                "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
                     #
-                    # For example, the following is a valid metric:
-                    # compute.googleapis.com/instance/network/received_bytes_count
-                    # The following is not a valid metric because it does not increase or decrease based on usage:
-                    # compute.googleapis.com/instance/cpu/reserved_cores
+                    # The metric must have a value type of INT64 or DOUBLE.
                 "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-                "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+                "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+                    #
+                    # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
               },
             ],
             "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -409,13 +406,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(project, region, autoscaler, body)</code>
+    <code class="details" id="patch">patch(project, region, body, autoscaler=None)</code>
   <pre>Updates an autoscaler in the specified project using the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
-  autoscaler: string, Name of the autoscaler to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -436,14 +432,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
@@ -462,6 +457,7 @@
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
+  autoscaler: string, Name of the autoscaler to patch.
 
 Returns:
   An object of the form:
@@ -540,14 +536,13 @@
       },
       "customMetricUtilizations": [ # Configuration parameters of autoscaling based on a custom metric.
         { # Custom utilization metric policy.
-          "metric": "A String", # The identifier of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric. The metric must also have a label of compute.googleapis.com/resource_id with the value of the instance's unique ID, although this alone does not guarantee that the metric is valid.
+          "metric": "A String", # The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values and should be a utilization metric, which means that the number of virtual machines handling requests should increase or decrease proportionally to the metric.
               #
-              # For example, the following is a valid metric:
-              # compute.googleapis.com/instance/network/received_bytes_count
-              # The following is not a valid metric because it does not increase or decrease based on usage:
-              # compute.googleapis.com/instance/cpu/reserved_cores
+              # The metric must have a value type of INT64 or DOUBLE.
           "utilizationTargetType": "A String", # Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is GAUGE.
-          "utilizationTarget": 3.14, # Target value of the metric which autoscaler should maintain. Must be a positive value.
+          "utilizationTarget": 3.14, # The target value of the metric that autoscaler should maintain. This must be a positive value.
+              #
+              # For example, a good metric to use as a utilization_target is compute.googleapis.com/instance/network/received_bytes_count. The autoscaler will work to keep this value constant for each of the instances.
         },
       ],
       "cpuUtilization": { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
diff --git a/docs/dyn/compute_v1.regionBackendServices.html b/docs/dyn/compute_v1.regionBackendServices.html
index b19db73..2240235 100644
--- a/docs/dyn/compute_v1.regionBackendServices.html
+++ b/docs/dyn/compute_v1.regionBackendServices.html
@@ -181,7 +181,19 @@
           #
           # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+      "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+        "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+          "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+          "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+          "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+            "A String",
+          ],
+          "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+        },
+      },
       "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
           #
           # When the load balancing scheme is INTERNAL, this field is not used.
@@ -190,6 +202,7 @@
       "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
           #
           # When the load balancing scheme is INTERNAL, this field is not used.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
           #
           # This cannot be used for internal load balancing.
@@ -204,7 +217,7 @@
           "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
               #
               # This cannot be used for internal load balancing.
-          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+          "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
               #
               # This cannot be used for internal load balancing.
           "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -224,6 +237,7 @@
               # This cannot be used for internal load balancing.
         },
       ],
+      "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
       "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
       "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
           #
@@ -241,7 +255,12 @@
           #
           # When the protocol is UDP, this field is not used.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "iap": { # Identity-Aware Proxy
+        "oauth2ClientId": "A String",
+        "enabled": True or False,
+        "oauth2ClientSecret": "A String",
+        "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+      },
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
@@ -300,7 +319,19 @@
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -309,6 +340,7 @@
     "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
         # 
         # This cannot be used for internal load balancing.
@@ -323,7 +355,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -343,6 +375,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -360,7 +393,12 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String",
+      "enabled": True or False,
+      "oauth2ClientSecret": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+    },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
@@ -457,7 +495,19 @@
               #
               # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+          "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+            "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+              "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+              "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+              "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+                "A String",
+              ],
+              "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+            },
+          },
           "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
               #
               # When the load balancing scheme is INTERNAL, this field is not used.
@@ -466,6 +516,7 @@
           "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
               #
               # When the load balancing scheme is INTERNAL, this field is not used.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
               #
               # This cannot be used for internal load balancing.
@@ -480,7 +531,7 @@
               "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
                   #
                   # This cannot be used for internal load balancing.
-              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+              "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
                   #
                   # This cannot be used for internal load balancing.
               "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -500,6 +551,7 @@
                   # This cannot be used for internal load balancing.
             },
           ],
+          "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
           "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
           "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
               #
@@ -517,7 +569,12 @@
               #
               # When the protocol is UDP, this field is not used.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "iap": { # Identity-Aware Proxy
+            "oauth2ClientId": "A String",
+            "enabled": True or False,
+            "oauth2ClientSecret": "A String",
+            "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+          },
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
@@ -549,7 +606,7 @@
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
-  backendService: string, Name of the BackendService resource to update. (required)
+  backendService: string, Name of the BackendService resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -564,7 +621,19 @@
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -573,6 +642,7 @@
     "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
         # 
         # This cannot be used for internal load balancing.
@@ -587,7 +657,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -607,6 +677,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -624,7 +695,12 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String",
+      "enabled": True or False,
+      "oauth2ClientSecret": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+    },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
@@ -702,7 +778,19 @@
         # 
         # For internal load balancing, the possible values are TCP and UDP, and the default is TCP.
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
-    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
+    "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
+        "includeQueryString": True or False, # If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.
+        "includeHost": True or False, # If true, requests to different hosts will be cached separately.
+        "queryStringBlacklist": [ # Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "queryStringWhitelist": [ # Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters.
+          "A String",
+        ],
+        "includeProtocol": True or False, # If true, http and https requests will be cached separately.
+      },
+    },
     "enableCDN": True or False, # If true, enable Cloud CDN for this BackendService.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
@@ -711,6 +799,7 @@
     "affinityCookieTtlSec": 42, # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value for TTL is one day.
         # 
         # When the load balancing scheme is INTERNAL, this field is not used.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
         # 
         # This cannot be used for internal load balancing.
@@ -725,7 +814,7 @@
         "maxUtilization": 3.14, # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target for the group. The default is 0.8. Valid range is [0.0, 1.0].
             #
             # This cannot be used for internal load balancing.
-        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle.This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
+        "maxRatePerInstance": 3.14, # The max requests per second (RPS) that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be set.
             #
             # This cannot be used for internal load balancing.
         "maxConnectionsPerInstance": 42, # The max number of simultaneous connections that a single backend instance can handle. This is used to calculate the capacity of the group. Can be used in either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be set.
@@ -745,6 +834,7 @@
             # This cannot be used for internal load balancing.
       },
     ],
+    "timeoutSec": 42, # How many seconds to wait for the backend before considering it a failed request. Default is 30 seconds.
     "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService.
     "portName": "A String", # Name of backend port. The same name should appear in the instance groups referenced by this service. Required when the load balancing scheme is EXTERNAL.
         # 
@@ -762,7 +852,12 @@
         # 
         # When the protocol is UDP, this field is not used.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "iap": { # Identity-Aware Proxy
+      "oauth2ClientId": "A String",
+      "enabled": True or False,
+      "oauth2ClientSecret": "A String",
+      "oauth2ClientSecretSha256": "A String", # [Output Only] SHA256 hash value for the field oauth2_client_secret above.
+    },
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
diff --git a/docs/dyn/compute_v1.regionInstanceGroupManagers.html b/docs/dyn/compute_v1.regionInstanceGroupManagers.html
index 14e32c5..e9f098e 100644
--- a/docs/dyn/compute_v1.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_v1.regionInstanceGroupManagers.html
@@ -115,6 +115,10 @@
     <code class="details" id="abandonInstances">abandonInstances(project, region, instanceGroupManager, body)</code>
   <pre>Schedules a group action to remove the specified instances from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -123,7 +127,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The names of one or more instances to abandon.
+    "instances": [ # The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -242,6 +246,10 @@
     <code class="details" id="deleteInstances">deleteInstances(project, region, instanceGroupManager, body)</code>
   <pre>Schedules a group action to delete the specified instances in the managed instance group. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -250,7 +258,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The names of one or more instances to delete.
+    "instances": [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -360,6 +368,8 @@
     <code class="details" id="insert">insert(project, region, body)</code>
   <pre>Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.
 
+A regional managed instance group can contain up to 2000 instances.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -592,6 +602,10 @@
     <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body)</code>
   <pre>Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
+You can specify a maximum of 1000 instances with this method per request.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
@@ -600,7 +614,7 @@
     The object takes the form of:
 
 {
-    "instances": [ # The URL for one or more instances to recreate.
+    "instances": [ # The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
       "A String",
     ],
   }
@@ -660,6 +674,8 @@
     <code class="details" id="resize">resize(project, region, instanceGroupManager, size)</code>
   <pre>Changes the intended size for the managed instance group. If you increase the size, the group schedules actions to create new instances using the current instance template. If you decrease the size, the group schedules delete actions on one or more instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.
 
+If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
diff --git a/docs/dyn/compute_v1.routers.html b/docs/dyn/compute_v1.routers.html
index 3acd825..c6e9215 100644
--- a/docs/dyn/compute_v1.routers.html
+++ b/docs/dyn/compute_v1.routers.html
@@ -100,7 +100,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, region, router, body)</a></code></p>
-<p class="firstline">Updates the specified Router resource with the data included in the request. This method supports patch semantics.</p>
+<p class="firstline">Patches the specified Router resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#preview">preview(project, region, router, body)</a></code></p>
 <p class="firstline">Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.</p>
@@ -144,7 +144,7 @@
               "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
               "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
                 {
-                  "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+                  "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
                   "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
                   "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
                 },
@@ -279,7 +279,7 @@
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
         {
-          "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+          "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
           "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
           "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
         },
@@ -373,6 +373,45 @@
           "numLearnedRoutes": 42, # Number of routes learned from the remote BGP Peer.
         },
       ],
+      "bestRoutesForRouter": [ # Best routes learned by this router.
+        { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
+            #
+            # For each packet leaving a instance, the system searches that instance's routing table for a single best matching route. Routes match packets by destination IP address, preferring smaller or more specific ranges over larger ones. If there is a tie, the system selects the route with the smallest priority value. If there is still a tie, it uses the layer three and four packet headers to select just one of the remaining matching routes. The packet is then forwarded as specified by the nextHop field of the winning route - either to another instance destination, an instance gateway, or a Google Compute Engine-operated gateway.
+            #
+            # Packets that do not match any route in the sending instance's routing table are dropped.
+          "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL:  projects/<project-id>/global/gateways/default-internet-gateway
+          "nextHopVpnTunnel": "A String", # The URL to a VpnTunnel that should handle matching packets.
+          "kind": "compute#route", # [Output Only] Type of this resource. Always compute#routes for Route resources.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+          "tags": [ # A list of instance tags to which this route applies.
+            "A String",
+          ],
+          "nextHopInstance": "A String", # The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example:
+              # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
+          "priority": 42, # The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In the case of two routes with equal prefix length, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.
+          "nextHopNetwork": "A String", # The URL of the local network if it should handle matching packets.
+          "network": "A String", # Fully-qualified URL of the network that this route applies to.
+          "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+          "warnings": [ # [Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.
+            {
+              "message": "A String", # [Output Only] A human-readable description of the warning code.
+              "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+              "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+                  # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+                {
+                  "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                  "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+                },
+              ],
+            },
+          ],
+          "destRange": "A String", # The destination range of outgoing packets that this route applies to. Only IPv4 is supported.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "nextHopIp": "A String", # The network IP address of an instance that should handle matching packets. Only IPv4 is supported.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+        },
+      ],
       "network": "A String", # URI of the network to which this router belongs.
       "bestRoutes": [ # Best routes for this router's network.
         { # Represents a Route resource. A route specifies how certain packets should be handled by the network. Routes are associated with instances by tags and the set of routes for a particular instance is called its routing table.
@@ -432,7 +471,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
@@ -544,7 +583,7 @@
           "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
           "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
             {
-              "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+              "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
               "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
               "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
             },
@@ -592,12 +631,12 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, region, router, body)</code>
-  <pre>Updates the specified Router resource with the data included in the request. This method supports patch semantics.
+  <pre>Patches the specified Router resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
   region: string, Name of the region for this request. (required)
-  router: string, Name of the Router resource to update. (required)
+  router: string, Name of the Router resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -606,7 +645,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
@@ -699,7 +738,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
@@ -735,7 +774,7 @@
         "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
         "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
           {
-            "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+            "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
             "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
             "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
           },
@@ -779,7 +818,7 @@
     "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
     "interfaces": [ # Router interfaces. Each interface requires either one linked resource (e.g. linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
       {
-        "linkedVpnTunnel": "A String", # URI of linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource.
+        "linkedVpnTunnel": "A String", # URI of the linked VPN tunnel. It must be in the same region as the router. Each interface can have at most one linked resource and it could either be a VPN Tunnel or an interconnect attachment.
         "ipRange": "A String", # IP address and range of the interface. The IP range must be in the RFC3927 link-local IP space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface.
         "name": "A String", # Name of this interface entry. The name must be 1-63 characters long and comply with RFC1035.
       },
diff --git a/docs/dyn/compute_v1.snapshots.html b/docs/dyn/compute_v1.snapshots.html
index eaeab03..2a3903e 100644
--- a/docs/dyn/compute_v1.snapshots.html
+++ b/docs/dyn/compute_v1.snapshots.html
@@ -86,6 +86,9 @@
 <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>
+<p class="toc_element">
+  <code><a href="#setLabels">setLabels(project, resource, body)</a></code></p>
+<p class="firstline">Sets the labels on a snapshot. To learn more about labels, read the Labeling or Tagging Resources documentation.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="delete">delete(project, snapshot)</code>
@@ -179,6 +182,12 @@
         "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
       },
       "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
+      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+          #
+          # To see the latest fingerprint, make a get() request to retrieve a snapshot.
+      "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
+        "a_key": "A String",
+      },
       "sourceDiskId": "A String", # [Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.
       "diskSizeGb": "A String", # [Output Only] Size of the snapshot, specified in GB.
       "licenses": [ # [Output Only] A list of public visible licenses that apply to this snapshot. This can be because the original image had licenses attached (such as a Windows image).
@@ -241,6 +250,12 @@
             "sha256": "A String", # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
           },
           "storageBytesStatus": "A String", # [Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
+          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels.
+              #
+              # To see the latest fingerprint, make a get() request to retrieve a snapshot.
+          "labels": { # Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.
+            "a_key": "A String",
+          },
           "sourceDiskId": "A String", # [Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.
           "diskSizeGb": "A String", # [Output Only] Size of the snapshot, specified in GB.
           "licenses": [ # [Output Only] A list of public visible licenses that apply to this snapshot. This can be because the original image had licenses attached (such as a Windows image).
@@ -272,4 +287,72 @@
     </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="setLabels">setLabels(project, resource, body)</code>
+  <pre>Sets the labels on a snapshot. To learn more about labels, read the Labeling or Tagging Resources documentation.
+
+Args:
+  project: string, Project ID for this request. (required)
+  resource: string, Name of the resource for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels. Make a get() request to the resource to get the latest fingerprint.
+    "labels": { # A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, "webserver-frontend": "images". A label value can also be empty (e.g. "my-label": "").
+      "a_key": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.subnetworks.html b/docs/dyn/compute_v1.subnetworks.html
index d8bb603..9f615aa 100644
--- a/docs/dyn/compute_v1.subnetworks.html
+++ b/docs/dyn/compute_v1.subnetworks.html
@@ -98,6 +98,9 @@
 <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>
+<p class="toc_element">
+  <code><a href="#setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body)</a></code></p>
+<p class="firstline">Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="aggregatedList">aggregatedList(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
@@ -132,12 +135,13 @@
         "subnetworks": [ # List of subnetworks contained in this scope.
           { # A Subnetwork resource.
               "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-              "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+              "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
               "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-              "region": "A String", # URL of the region where the Subnetwork resides.
-              "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-              "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+              "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
+              "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+              "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+              "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+              "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
               "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
               "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
               "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -315,12 +319,13 @@
 
     { # A Subnetwork resource.
       "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
       "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-      "region": "A String", # URL of the region where the Subnetwork resides.
-      "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-      "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+      "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
+      "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+      "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+      "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+      "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
       "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
       "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -339,12 +344,13 @@
 
 { # A Subnetwork resource.
     "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
     "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-    "region": "A String", # URL of the region where the Subnetwork resides.
-    "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-    "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+    "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
+    "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+    "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+    "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+    "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
     "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
     "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -433,12 +439,13 @@
     "items": [ # The Subnetwork resources.
       { # A Subnetwork resource.
           "kind": "compute#subnetwork", # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
-          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
           "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
-          "region": "A String", # URL of the region where the Subnetwork resides.
-          "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks.
-          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported.
-          "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
+          "region": "A String", # URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
+          "network": "A String", # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
+          "privateIpGoogleAccess": True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
+          "ipCidrRange": "A String", # The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field can be set only at resource creation time.
+          "gatewayAddress": "A String", # [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork. This field can be set only at resource creation time.
           "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
           "name": "A String", # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -464,4 +471,70 @@
     </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="setPrivateIpGoogleAccess">setPrivateIpGoogleAccess(project, region, subnetwork, body)</code>
+  <pre>Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, Name of the region scoping this request. (required)
+  subnetwork: string, Name of the Subnetwork resource. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "privateIpGoogleAccess": True or False,
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.targetTcpProxies.html b/docs/dyn/compute_v1.targetTcpProxies.html
new file mode 100644
index 0000000..8488e3c
--- /dev/null
+++ b/docs/dyn/compute_v1.targetTcpProxies.html
@@ -0,0 +1,441 @@
+<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="compute_v1.html">Compute Engine API</a> . <a href="compute_v1.targetTcpProxies.html">targetTcpProxies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, targetTcpProxy)</a></code></p>
+<p class="firstline">Deletes the specified TargetTcpProxy resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, targetTcpProxy)</a></code></p>
+<p class="firstline">Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a TargetTcpProxy resource in the specified project using the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of TargetTcpProxy resources available to the specified project.</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>
+<p class="toc_element">
+  <code><a href="#setBackendService">setBackendService(project, targetTcpProxy, body)</a></code></p>
+<p class="firstline">Changes the BackendService for TargetTcpProxy.</p>
+<p class="toc_element">
+  <code><a href="#setProxyHeader">setProxyHeader(project, targetTcpProxy, body)</a></code></p>
+<p class="firstline">Changes the ProxyHeaderType for TargetTcpProxy.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, targetTcpProxy)</code>
+  <pre>Deletes the specified TargetTcpProxy resource.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource to delete. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, targetTcpProxy)</code>
+  <pre>Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # A TargetTcpProxy resource. This resource defines a TCP proxy.
+      "kind": "compute#targetTcpProxy", # [Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.
+      "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+      "service": "A String", # URL to the BackendService resource.
+      "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+      "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a TargetTcpProxy resource in the specified project using the data included in the request.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A TargetTcpProxy resource. This resource defines a TCP proxy.
+    "kind": "compute#targetTcpProxy", # [Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.
+    "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+    "service": "A String", # URL to the BackendService resource.
+    "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, orderBy=None, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of TargetTcpProxy resources available to the specified project.
+
+Args:
+  project: string, Project ID for this request. (required)
+  orderBy: string, Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.
+
+You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.
+
+Currently, only sorting by name or creationTimestamp desc is supported.
+  maxResults: integer, The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+  pageToken: string, Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.
+  filter: string, Sets a filter expression for filtering listed resources, in the form filter={expression}. Your {expression} must be in the format: field_name comparison_string literal_string.
+
+The field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.
+
+For example, to filter for instances that do not have a name of example-instance, you would use filter=name ne example-instance.
+
+You can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.
+
+To filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.
+
+Returns:
+  An object of the form:
+
+    { # Contains a list of TargetTcpProxy resources.
+    "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.
+    "items": [ # A list of TargetTcpProxy resources.
+      { # A TargetTcpProxy resource. This resource defines a TCP proxy.
+          "kind": "compute#targetTcpProxy", # [Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.
+          "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
+          "service": "A String", # URL to the BackendService resource.
+          "proxyHeader": "A String", # Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+          "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        },
+    ],
+    "kind": "compute#targetTcpProxyList", # Type of resource.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined URL for this resource.
+  }</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>
+
+<div class="method">
+    <code class="details" id="setBackendService">setBackendService(project, targetTcpProxy, body)</code>
+  <pre>Changes the BackendService for TargetTcpProxy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource whose BackendService resource is to be set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "service": "A String", # The URL of the new BackendService resource for the targetTcpProxy.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setProxyHeader">setProxyHeader(project, targetTcpProxy, body)</code>
+  <pre>Changes the ProxyHeaderType for TargetTcpProxy.
+
+Args:
+  project: string, Project ID for this request. (required)
+  targetTcpProxy: string, Name of the TargetTcpProxy resource whose ProxyHeader is to be set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "proxyHeader": "A String", # The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+    "clientOperationId": "A String", # [Output Only] Reserved for future use.
+    "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
+    "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+    "operationType": "A String", # [Output Only] The type of operation, such as insert, update, or delete, and so on.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a 404 means the resource was not found.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] The status of the operation, which can be one of the following: PENDING, RUNNING, or DONE.
+    "description": "A String", # [Output Only] A textual description of the operation, which is set when the operation is created.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] A human-readable description of the warning code.
+        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+        "data": [ # [Output Only] Metadata about this warning in key: value format. For example:
+            # "data": [ { "key": "scope", "value": "zones/us-east1-d" }
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] The URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.urlMaps.html b/docs/dyn/compute_v1.urlMaps.html
index 812fbf1..e2054ef 100644
--- a/docs/dyn/compute_v1.urlMaps.html
+++ b/docs/dyn/compute_v1.urlMaps.html
@@ -94,7 +94,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(project, urlMap, body)</a></code></p>
-<p class="firstline">Updates the specified UrlMap resource with the data included in the request. This method supports patch semantics.</p>
+<p class="firstline">Patches the specified UrlMap resource with the data included in the request. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(project, urlMap, body)</a></code></p>
 <p class="firstline">Updates the specified UrlMap resource with the data included in the request.</p>
@@ -487,11 +487,11 @@
 
 <div class="method">
     <code class="details" id="patch">patch(project, urlMap, body)</code>
-  <pre>Updates the specified UrlMap resource with the data included in the request. This method supports patch semantics.
+  <pre>Patches the specified UrlMap resource with the data included in the request. This method supports patch semantics.
 
 Args:
   project: string, Project ID for this request. (required)
-  urlMap: string, Name of the UrlMap resource to update. (required)
+  urlMap: string, Name of the UrlMap resource to patch. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/consumersurveys_v2.surveys.html b/docs/dyn/consumersurveys_v2.surveys.html
index 1bfcda4..2790fbc 100644
--- a/docs/dyn/consumersurveys_v2.surveys.html
+++ b/docs/dyn/consumersurveys_v2.surveys.html
@@ -456,74 +456,6 @@
   An object of the form:
 
     {
-    "resource": { # Survey object containing the specification of the started Survey.
-        "owners": [
-          "A String",
-        ],
-        "description": "A String",
-        "title": "A String",
-        "customerData": "A String",
-        "state": "A String",
-        "audience": {
-          "countrySubdivision": "A String",
-          "mobileAppPanelId": "A String",
-          "country": "A String",
-          "ages": [
-            "A String",
-          ],
-          "populationSource": "A String",
-          "languages": [
-            "A String",
-          ],
-          "gender": "A String",
-        },
-        "cost": {
-          "nanos": "A String",
-          "currencyCode": "A String",
-          "costPerResponseNanos": "A String",
-          "maxCostPerResponseNanos": "A String",
-        },
-        "surveyUrlId": "A String",
-        "questions": [
-          {
-            "highValueLabel": "A String",
-            "mustPickSuggestion": True or False,
-            "thresholdAnswers": [
-              "A String",
-            ],
-            "sentimentText": "A String",
-            "question": "A String",
-            "numStars": "A String",
-            "lowValueLabel": "A String",
-            "videoId": "A String",
-            "answers": [
-              "A String",
-            ],
-            "lastAnswerPositionPinned": True or False,
-            "hasOther": True or False,
-            "unitOfMeasurementLabel": "A String",
-            "images": [
-              {
-                "url": "A String",
-                "altText": "A String",
-                "data": "A String",
-              },
-            ],
-            "singleLineResponse": True or False,
-            "openTextSuggestions": [
-              "A String",
-            ],
-            "type": "A String",
-            "answerOrder": "A String",
-            "openTextPlaceholder": "A String",
-          },
-        ],
-        "wantedResponseCount": 42,
-        "rejectionReason": {
-          "explanation": "A String",
-          "type": "A String",
-        },
-      },
     "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
   }</pre>
 </div>
@@ -539,74 +471,6 @@
   An object of the form:
 
     {
-    "resource": { # Survey object containing the specification of the stopped Survey.
-        "owners": [
-          "A String",
-        ],
-        "description": "A String",
-        "title": "A String",
-        "customerData": "A String",
-        "state": "A String",
-        "audience": {
-          "countrySubdivision": "A String",
-          "mobileAppPanelId": "A String",
-          "country": "A String",
-          "ages": [
-            "A String",
-          ],
-          "populationSource": "A String",
-          "languages": [
-            "A String",
-          ],
-          "gender": "A String",
-        },
-        "cost": {
-          "nanos": "A String",
-          "currencyCode": "A String",
-          "costPerResponseNanos": "A String",
-          "maxCostPerResponseNanos": "A String",
-        },
-        "surveyUrlId": "A String",
-        "questions": [
-          {
-            "highValueLabel": "A String",
-            "mustPickSuggestion": True or False,
-            "thresholdAnswers": [
-              "A String",
-            ],
-            "sentimentText": "A String",
-            "question": "A String",
-            "numStars": "A String",
-            "lowValueLabel": "A String",
-            "videoId": "A String",
-            "answers": [
-              "A String",
-            ],
-            "lastAnswerPositionPinned": True or False,
-            "hasOther": True or False,
-            "unitOfMeasurementLabel": "A String",
-            "images": [
-              {
-                "url": "A String",
-                "altText": "A String",
-                "data": "A String",
-              },
-            ],
-            "singleLineResponse": True or False,
-            "openTextSuggestions": [
-              "A String",
-            ],
-            "type": "A String",
-            "answerOrder": "A String",
-            "openTextPlaceholder": "A String",
-          },
-        ],
-        "wantedResponseCount": 42,
-        "rejectionReason": {
-          "explanation": "A String",
-          "type": "A String",
-        },
-      },
     "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
   }</pre>
 </div>
diff --git a/docs/dyn/container_v1.projects.zones.clusters.html b/docs/dyn/container_v1.projects.zones.clusters.html
index 897c181..6a37268 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.html
+++ b/docs/dyn/container_v1.projects.zones.clusters.html
@@ -80,183 +80,511 @@
 <p class="firstline">Returns the nodePools Resource.</p>
 
 <p class="toc_element">
+  <code><a href="#completeIpRotation">completeIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Completes master IP rotation.</p>
+<p class="toc_element">
   <code><a href="#create">create(projectId, zone, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project's [default network](/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the cluster creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project's global metadata indicating which CIDR range is being used by the cluster.</p>
+<p class="firstline">Creates a cluster, consisting of the specified number and type of Google</p>
 <p class="toc_element">
   <code><a href="#delete">delete(projectId, zone, clusterId, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes the cluster, including the Kubernetes endpoint and all worker nodes. Firewalls and routes that were configured during cluster creation are also deleted. Other Google Compute Engine resources that might be in use by the cluster (e.g. load balancer resources) will not be deleted if they weren't present at the initial create time.</p>
+<p class="firstline">Deletes the cluster, including the Kubernetes endpoint and all worker</p>
 <p class="toc_element">
   <code><a href="#get">get(projectId, zone, clusterId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the details of a specific cluster.</p>
 <p class="toc_element">
+  <code><a href="#legacyAbac">legacyAbac(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Enables or disables the ABAC authorization mechanism on a cluster.</p>
+<p class="toc_element">
   <code><a href="#list">list(projectId, zone, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all clusters owned by a project in either the specified zone or all zones.</p>
+<p class="firstline">Lists all clusters owned by a project in either the specified zone or all</p>
+<p class="toc_element">
+  <code><a href="#resourceLabels">resourceLabels(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets labels on a cluster.</p>
+<p class="toc_element">
+  <code><a href="#setMasterAuth">setMasterAuth(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Used to set master auth materials. Currently supports :-</p>
+<p class="toc_element">
+  <code><a href="#startIpRotation">startIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Start master IP rotation.</p>
 <p class="toc_element">
   <code><a href="#update">update(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the settings of a specific cluster.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(projectId, zone, body, x__xgafv=None)</code>
-  <pre>Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project's [default network](/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the cluster creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project's global metadata indicating which CIDR range is being used by the cluster.
+    <code class="details" id="completeIpRotation">completeIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</code>
+  <pre>Completes master IP rotation.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
+  clusterId: string, The name of the cluster. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # CompleteIPRotationRequest moves the cluster master back into single-IP mode.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(projectId, zone, body, x__xgafv=None)</code>
+  <pre>Creates a cluster, consisting of the specified number and type of Google
+Compute Engine instances.
+
+By default, the cluster is created in the project's
+[default network](/compute/docs/networks-and-firewalls#networks).
+
+One firewall is added for the cluster. After cluster creation,
+the cluster creates routes for each node to allow the containers
+on that node to communicate with all other instances in the
+cluster.
+
+Finally, an entry is added to the project's global metadata indicating
+which CIDR range is being used by the cluster.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # CreateClusterRequest creates a cluster.
-    "cluster": { # A Google Container Engine cluster. # A [cluster resource](/container-engine/reference/rest/v1/projects.zones.clusters)
-      "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range.
-      "addonsConfig": { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
-        "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
-          "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.
+    "cluster": { # A Google Container Engine cluster. # A [cluster
+        # resource](/container-engine/reference/rest/v1/projects.zones.clusters)
+      "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting
+          # containers. This is provisioned from within the `container_ipv4_cidr`
+          # range.
+      "addonsConfig": { # Configuration for the addons that can be automatically spun up in the # Configurations for the various addons available to run in the cluster.
+          # cluster, enabling additional functionality.
+        "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, # Configuration for the HTTP (L7) load balancing controller addon, which
+            # makes it easy to set up HTTP load balancers for services in a cluster.
+            # which makes it easy to set up HTTP load balancers for services in a cluster.
+          "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster.
+              # When enabled, it runs a small pod in the cluster that manages the load
+              # balancers.
         },
-        "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.
-          "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service.
+        "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
+            # increases or decreases the number of replica pods a replication controller
+            # has based on the resource usage of the existing pods.
+            # increases or decreases the number of replica pods a replication controller
+            # has based on the resource usage of the existing pods.
+          "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+              # When enabled, it ensures that a Heapster pod is running in the cluster,
+              # which is also used by the Cloud Monitoring service.
         },
       },
-      "locations": [ # The list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located.
+      "locations": [ # The list of Google Compute Engine
+          # [locations](/compute/docs/zones#available) in which the cluster's nodes
+          # should be located.
         "A String",
       ],
-      "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
-      "network": "A String", # The name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
-      "loggingService": "A String", # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com` - the Google Cloud Logging service. * `none` - no logs will be exported from the cluster. * if left as an empty string,`logging.googleapis.com` will be used.
-      "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.
+      "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
+          # API groups (e.g. v1alpha1) and features that may not be production ready in
+          # the kubernetes version of the master and nodes.
+          # The cluster has no SLA for uptime and master/node upgrades are disabled.
+          # Alpha enabled clusters are automatically deleted thirty days after
+          # creation.
+      "network": "A String", # The name of the Google Compute Engine
+          # [network](/compute/docs/networks-and-firewalls#networks) to which the
+          # cluster is connected. If left unspecified, the `default` network
+          # will be used.
+      "loggingService": "A String", # The logging service the cluster should use to write logs.
+          # Currently available options:
+          #
+          # * `logging.googleapis.com` - the Google Cloud Logging service.
+          # * `none` - no logs will be exported from the cluster.
+          # * if left as an empty string,`logging.googleapis.com` will be used.
+      "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+          # groups](/compute/docs/instance-groups/) associated with this
+          # cluster.
         "A String",
       ],
-      "zone": "A String", # [Output only] The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides.
-      "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
-      "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.
+      "statusMessage": "A String", # [Output only] Additional information about the current status of this
+          # cluster, if available.
+      "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
+          # this cluster, in
+          # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+          # notation (e.g. `1.2.3.4/29`). Service addresses are
+          # typically put in the last `/16` from the container CIDR.
       "status": "A String", # [Output only] The current status of this cluster.
       "description": "A String", # An optional description of this cluster.
-      "currentNodeVersion": "A String", # [Output only] The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.
+      "currentNodeVersion": "A String", # [Output only] The current version of the node software components.
+          # If they are currently at multiple versions because they're in the process
+          # of being upgraded, this reflects the minimum version of all nodes.
+      "labelFingerprint": "A String", # The fingerprint of the set of labels for this cluster.
       "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
-      "masterAuth": { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # The authentication information for accessing the master endpoint.
+      "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
+          # Authentication can be done using HTTP basic auth or using client
+          # certificates.
         "username": "A String", # The username to use for HTTP basic authentication to the master endpoint.
-        "password": "A String", # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password.
-        "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate to the cluster endpoint.
-        "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
-        "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of trust for the cluster.
+            # For clusters v1.6.0 and later, you can disable basic authentication by
+            # providing an empty username.
+        "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+            # Because the master endpoint is open to the Internet, you should create a
+            # strong password.  If a password is provided for cluster creation, username
+            # must be non-empty.
+        "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate
+            # to the cluster endpoint.
+        "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
+            # authenticate to the cluster endpoint.
+        "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of
+            # trust for the cluster.
       },
-      "expireTime": "A String", # [Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-      "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time.
-      "nodePools": [ # The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
-        { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
+      "expireTime": "A String", # [Output only] The time the cluster will be automatically
+          # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+      "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
+          # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+          # is sufficient for this number of instances. You must also have available
+          # firewall and routes quota.
+          # For requests, this field should only be used in lieu of a
+          # "node_pool" object, since this configuration (along with the
+          # "node_config") will be used to create a "NodePool" object with an
+          # auto-generated name. Do not use this and a node_pool at the same time.
+      "nodePools": [ # The node pools associated with this cluster.
+          # This field should not be set if "node_config" or "initial_node_count" are
+          # specified.
+        { # NodePool contains the name and configuration for a cluster's node pool.
+            # Node pools are a set of nodes (i.e. VM's), with a common configuration and
+            # specification, under the control of the cluster master. They may have a set
+            # of Kubernetes labels applied to them, which may be used to reference them
+            # during pod scheduling. They may also be resized up or down, to accommodate
+            # the workload.
           "status": "A String", # [Output only] The status of the nodes in this pool instance.
-          "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
+          "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+          "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
+              # node pool.
+            "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+                # pool. If enabled, the nodes in this node pool will be monitored and, if
+                # they fail health checks too many times, an automatic repair action will be
+                # triggered.
+            "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+                # the Auto Upgrades will proceed.
+              "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                  # with the description of the upgrade.
+              "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                  # with the approximate start time for the upgrades, in
+                  # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+            },
+            "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+                # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+                # up to date with the latest release version of Kubernetes.
+          },
           "name": "A String", # The name of the node pool.
-          "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
+          "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+              # groups](/compute/docs/instance-groups/) associated with this
+              # node pool.
             "A String",
           ],
-          "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
-            "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+          "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
+              # only if a valid configuration is present.
+              # adjust the size of the node pool to the current cluster usage.
+            "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+                # max_node_count.
             "enabled": True or False, # Is autoscaling enabled for this node pool.
-            "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+            "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+                # has to enough quota to scale up the cluster.
           },
           "version": "A String", # [Output only] The version of the Kubernetes of this node.
-          "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
-          "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
-            "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-              "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-              "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-            },
-            "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
-          },
+          "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
+              # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+              # is sufficient for this number of instances. You must also have available
+              # firewall and routes quota.
           "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-            "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-            "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+            "machineType": "A String", # The name of a Google Compute Engine [machine
+                # type](/compute/docs/machine-types) (e.g.
+                # `n1-standard-1`).
+                #
+                # If unspecified, the default machine type is
+                # `n1-standard-1`.
+            "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+                # valid sources or targets for network firewalls and are specified by
+                # the client during cluster or node pool creation. Each tag within the list
+                # must comply with RFC1035.
               "A String",
             ],
-            "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-            "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+            "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+                # https://cloud.google.com/compute/docs/instances/preemptible for more
+                # inforamtion about preemptible VM instances.
+            "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+                # These will added in addition to any default label(s) that
+                # Kubernetes may apply to the node.
+                # In case of conflict in label keys, the applied set may differ depending on
+                # the Kubernetes version -- it's best to assume the behavior is undefined
+                # and conflicts should be avoided.
+                # For more information, including usage and the valid values, see:
+                # http://kubernetes.io/v1.1/docs/user-guide/labels.html
               "a_key": "A String",
             },
-            "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-            "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
+            "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+                # no Service Account is specified, the "default" service account is used.
+            "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+                # node VMs under the "default" service account.
+                #
+                # The following scopes are recommended, but not required, and by default are
+                # not included:
+                #
+                # * `https://www.googleapis.com/auth/compute` is required for mounting
+                # persistent storage on your nodes.
+                # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+                # communicating with **gcr.io**
+                # (the [Google Container Registry](/container-registry/)).
+                #
+                # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+                # Monitoring are enabled, in which case their required scopes will be added.
               "A String",
             ],
-            "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-            "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-            "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-            "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
+            "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+                # The smallest allowed disk size is 10GB.
+                #
+                # If unspecified, the default disk size is 100GB.
+            "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+                #
+                # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+                # in length. These are reflected as part of a URL in the metadata server.
+                # Additionally, to avoid ambiguity, keys must not conflict with any other
+                # metadata keys for the project or be one of the four reserved keys:
+                # "instance-template", "kube-env", "startup-script", and "user-data"
+                #
+                # Values are free-form strings, and only have meaning as interpreted by
+                # the image running in the instance. The only restriction placed on them is
+                # that each value's size must be less than or equal to 32 KB.
+                #
+                # The total size of all keys and values must be less than 512 KB.
               "a_key": "A String",
             },
+            "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+                # the latest version of it will be used.
+            "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+                #
+                # The limit for this value is dependant upon the maximum number of
+                # disks available on a machine per zone. See:
+                # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+                # for more information.
           },
-          "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+          "statusMessage": "A String", # [Output only] Additional information about the current status of this
+              # node pool instance, if available.
         },
       ],
-      "monitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com` - the Google Cloud Monitoring service. * `none` - no metrics will be exported from the cluster. * if left as an empty string, `monitoring.googleapis.com` will be used.
-      "createTime": "A String", # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-      "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at `https://username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information.
+      "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
+          # Currently available options:
+          #
+          # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
+          # * `none` - no metrics will be exported from the cluster.
+          # * if left as an empty string, `monitoring.googleapis.com` will be used.
+      "createTime": "A String", # [Output only] The time the cluster was created, in
+          # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+      "name": "A String", # The name of this cluster. The name must be unique within this project
+          # and zone, and can be up to 40 characters with the following restrictions:
+          #
+          # * Lowercase letters, numbers, and hyphens only.
+          # * Must start with a letter.
+          # * Must end with a number or a letter.
+      "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
+          # The endpoint can be accessed from the internet at
+          # `https://username:password@endpoint/`.
+          #
+          # See the `masterAuth` property of this resource for username and
+          # password information.
       "currentNodeCount": 42, # [Output only] The number of nodes currently in the cluster.
-      "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
-      "initialClusterVersion": "A String", # [Output only] The software version of the master endpoint and kubelets used in the cluster when it was first created. The version can be upgraded over time.
-      "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes. See `nodeConfig` for the description of its properties. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. If unspecified, the defaults are used.
-        "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-        "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
-          "A String",
-        ],
-        "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-        "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
-          "a_key": "A String",
-        },
-        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-        "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
-          "A String",
-        ],
-        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-        "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-        "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-        "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
-          "a_key": "A String",
-        },
+      "zone": "A String", # [Output only] The name of the Google Compute Engine
+          # [zone](/compute/docs/zones#available) in which the cluster
+          # resides.
+      "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
+          # mode.
+        "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
+            # identities in the system, including service accounts, nodes, and
+            # controllers, will have statically granted permissions beyond those
+            # provided by the RBAC configuration or IAM.
       },
-      "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
-      "subnetwork": "A String", # The name of the Google Compute Engine [subnetwork](/compute/docs/subnetworks) to which the cluster is connected.
+      "initialClusterVersion": "A String", # The initial Kubernetes version for this cluster.  Valid versions are those
+          # found in validMasterVersions returned by getServerConfig.  The version can
+          # be upgraded over time; such upgrades are reflected in
+          # currentMasterVersion and currentNodeVersion.
+      "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes.
+          # See `nodeConfig` for the description of its properties.
+          # For requests, this field should only be used in lieu of a
+          # "node_pool" object, since this configuration (along with the
+          # "initial_node_count") will be used to create a "NodePool" object with an
+          # auto-generated name. Do not use this and a node_pool at the same time.
+          # For responses, this field will be populated with the node configuration of
+          # the first node pool.
+          #
+          # If unspecified, the defaults are used.
+        "machineType": "A String", # The name of a Google Compute Engine [machine
+            # type](/compute/docs/machine-types) (e.g.
+            # `n1-standard-1`).
+            #
+            # If unspecified, the default machine type is
+            # `n1-standard-1`.
+        "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+            # valid sources or targets for network firewalls and are specified by
+            # the client during cluster or node pool creation. Each tag within the list
+            # must comply with RFC1035.
+          "A String",
+        ],
+        "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+            # https://cloud.google.com/compute/docs/instances/preemptible for more
+            # inforamtion about preemptible VM instances.
+        "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+            # These will added in addition to any default label(s) that
+            # Kubernetes may apply to the node.
+            # In case of conflict in label keys, the applied set may differ depending on
+            # the Kubernetes version -- it's best to assume the behavior is undefined
+            # and conflicts should be avoided.
+            # For more information, including usage and the valid values, see:
+            # http://kubernetes.io/v1.1/docs/user-guide/labels.html
+          "a_key": "A String",
+        },
+        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+            # no Service Account is specified, the "default" service account is used.
+        "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+            # node VMs under the "default" service account.
+            #
+            # The following scopes are recommended, but not required, and by default are
+            # not included:
+            #
+            # * `https://www.googleapis.com/auth/compute` is required for mounting
+            # persistent storage on your nodes.
+            # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+            # communicating with **gcr.io**
+            # (the [Google Container Registry](/container-registry/)).
+            #
+            # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+            # Monitoring are enabled, in which case their required scopes will be added.
+          "A String",
+        ],
+        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+            # The smallest allowed disk size is 10GB.
+            #
+            # If unspecified, the default disk size is 100GB.
+        "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+            #
+            # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+            # in length. These are reflected as part of a URL in the metadata server.
+            # Additionally, to avoid ambiguity, keys must not conflict with any other
+            # metadata keys for the project or be one of the four reserved keys:
+            # "instance-template", "kube-env", "startup-script", and "user-data"
+            #
+            # Values are free-form strings, and only have meaning as interpreted by
+            # the image running in the instance. The only restriction placed on them is
+            # that each value's size must be less than or equal to 32 KB.
+            #
+            # The total size of all keys and values must be less than 512 KB.
+          "a_key": "A String",
+        },
+        "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+            # the latest version of it will be used.
+        "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+            #
+            # The limit for this value is dependant upon the maximum number of
+            # disks available on a machine per zone. See:
+            # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+            # for more information.
+      },
+      "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in
+          # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+          # notation (e.g. `10.96.0.0/14`). Leave blank to have
+          # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+      "subnetwork": "A String", # The name of the Google Compute Engine
+          # [subnetwork](/compute/docs/subnetworks) to which the
+          # cluster is connected.
+      "resourceLabels": { # The resource labels for the cluster to use to annotate any related GCE
+          # resources.
+        "a_key": "A String",
+      },
       "selfLink": "A String", # [Output only] Server-defined URL for the resource.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(projectId, zone, clusterId, x__xgafv=None)</code>
-  <pre>Deletes the cluster, including the Kubernetes endpoint and all worker nodes. Firewalls and routes that were configured during cluster creation are also deleted. Other Google Compute Engine resources that might be in use by the cluster (e.g. load balancer resources) will not be deleted if they weren't present at the initial create time.
+  <pre>Deletes the cluster, including the Kubernetes endpoint and all worker
+nodes.
+
+Firewalls and routes that were configured during cluster creation
+are also deleted.
+
+Other Google Compute Engine resources that might be in use by the cluster
+(e.g. load balancer resources) will not be deleted if they weren't present
+at the initial create time.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster to delete. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -265,254 +593,931 @@
   <pre>Gets the details of a specific cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster to retrieve. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # A Google Container Engine cluster.
-    "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range.
-    "addonsConfig": { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
-      "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
-        "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.
+    "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting
+        # containers. This is provisioned from within the `container_ipv4_cidr`
+        # range.
+    "addonsConfig": { # Configuration for the addons that can be automatically spun up in the # Configurations for the various addons available to run in the cluster.
+        # cluster, enabling additional functionality.
+      "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, # Configuration for the HTTP (L7) load balancing controller addon, which
+          # makes it easy to set up HTTP load balancers for services in a cluster.
+          # which makes it easy to set up HTTP load balancers for services in a cluster.
+        "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster.
+            # When enabled, it runs a small pod in the cluster that manages the load
+            # balancers.
       },
-      "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.
-        "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service.
+      "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
+          # increases or decreases the number of replica pods a replication controller
+          # has based on the resource usage of the existing pods.
+          # increases or decreases the number of replica pods a replication controller
+          # has based on the resource usage of the existing pods.
+        "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+            # When enabled, it ensures that a Heapster pod is running in the cluster,
+            # which is also used by the Cloud Monitoring service.
       },
     },
-    "locations": [ # The list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located.
+    "locations": [ # The list of Google Compute Engine
+        # [locations](/compute/docs/zones#available) in which the cluster's nodes
+        # should be located.
       "A String",
     ],
-    "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
-    "network": "A String", # The name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
-    "loggingService": "A String", # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com` - the Google Cloud Logging service. * `none` - no logs will be exported from the cluster. * if left as an empty string,`logging.googleapis.com` will be used.
-    "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.
+    "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
+        # API groups (e.g. v1alpha1) and features that may not be production ready in
+        # the kubernetes version of the master and nodes.
+        # The cluster has no SLA for uptime and master/node upgrades are disabled.
+        # Alpha enabled clusters are automatically deleted thirty days after
+        # creation.
+    "network": "A String", # The name of the Google Compute Engine
+        # [network](/compute/docs/networks-and-firewalls#networks) to which the
+        # cluster is connected. If left unspecified, the `default` network
+        # will be used.
+    "loggingService": "A String", # The logging service the cluster should use to write logs.
+        # Currently available options:
+        #
+        # * `logging.googleapis.com` - the Google Cloud Logging service.
+        # * `none` - no logs will be exported from the cluster.
+        # * if left as an empty string,`logging.googleapis.com` will be used.
+    "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+        # groups](/compute/docs/instance-groups/) associated with this
+        # cluster.
       "A String",
     ],
-    "zone": "A String", # [Output only] The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides.
-    "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
-    "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.
+    "statusMessage": "A String", # [Output only] Additional information about the current status of this
+        # cluster, if available.
+    "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
+        # this cluster, in
+        # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+        # notation (e.g. `1.2.3.4/29`). Service addresses are
+        # typically put in the last `/16` from the container CIDR.
     "status": "A String", # [Output only] The current status of this cluster.
     "description": "A String", # An optional description of this cluster.
-    "currentNodeVersion": "A String", # [Output only] The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.
+    "currentNodeVersion": "A String", # [Output only] The current version of the node software components.
+        # If they are currently at multiple versions because they're in the process
+        # of being upgraded, this reflects the minimum version of all nodes.
+    "labelFingerprint": "A String", # The fingerprint of the set of labels for this cluster.
     "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
-    "masterAuth": { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # The authentication information for accessing the master endpoint.
+    "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
+        # Authentication can be done using HTTP basic auth or using client
+        # certificates.
       "username": "A String", # The username to use for HTTP basic authentication to the master endpoint.
-      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password.
-      "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate to the cluster endpoint.
-      "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
-      "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of trust for the cluster.
+          # For clusters v1.6.0 and later, you can disable basic authentication by
+          # providing an empty username.
+      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+          # Because the master endpoint is open to the Internet, you should create a
+          # strong password.  If a password is provided for cluster creation, username
+          # must be non-empty.
+      "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate
+          # to the cluster endpoint.
+      "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
+          # authenticate to the cluster endpoint.
+      "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of
+          # trust for the cluster.
     },
-    "expireTime": "A String", # [Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time.
-    "nodePools": [ # The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
-      { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
+    "expireTime": "A String", # [Output only] The time the cluster will be automatically
+        # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
+        # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+        # is sufficient for this number of instances. You must also have available
+        # firewall and routes quota.
+        # For requests, this field should only be used in lieu of a
+        # "node_pool" object, since this configuration (along with the
+        # "node_config") will be used to create a "NodePool" object with an
+        # auto-generated name. Do not use this and a node_pool at the same time.
+    "nodePools": [ # The node pools associated with this cluster.
+        # This field should not be set if "node_config" or "initial_node_count" are
+        # specified.
+      { # NodePool contains the name and configuration for a cluster's node pool.
+          # Node pools are a set of nodes (i.e. VM's), with a common configuration and
+          # specification, under the control of the cluster master. They may have a set
+          # of Kubernetes labels applied to them, which may be used to reference them
+          # during pod scheduling. They may also be resized up or down, to accommodate
+          # the workload.
         "status": "A String", # [Output only] The status of the nodes in this pool instance.
-        "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
+            # node pool.
+          "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+              # pool. If enabled, the nodes in this node pool will be monitored and, if
+              # they fail health checks too many times, an automatic repair action will be
+              # triggered.
+          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+              # the Auto Upgrades will proceed.
+            "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                # with the description of the upgrade.
+            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                # with the approximate start time for the upgrades, in
+                # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+          },
+          "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+              # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+              # up to date with the latest release version of Kubernetes.
+        },
         "name": "A String", # The name of the node pool.
-        "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
+        "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+            # groups](/compute/docs/instance-groups/) associated with this
+            # node pool.
           "A String",
         ],
-        "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
-          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+        "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
+            # only if a valid configuration is present.
+            # adjust the size of the node pool to the current cluster usage.
+          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+              # max_node_count.
           "enabled": True or False, # Is autoscaling enabled for this node pool.
-          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+              # has to enough quota to scale up the cluster.
         },
         "version": "A String", # [Output only] The version of the Kubernetes of this node.
-        "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
-        "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
-          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-            "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-          },
-          "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
-        },
+        "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
+            # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+            # is sufficient for this number of instances. You must also have available
+            # firewall and routes quota.
         "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-          "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+          "machineType": "A String", # The name of a Google Compute Engine [machine
+              # type](/compute/docs/machine-types) (e.g.
+              # `n1-standard-1`).
+              #
+              # If unspecified, the default machine type is
+              # `n1-standard-1`.
+          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+              # valid sources or targets for network firewalls and are specified by
+              # the client during cluster or node pool creation. Each tag within the list
+              # must comply with RFC1035.
             "A String",
           ],
-          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+              # https://cloud.google.com/compute/docs/instances/preemptible for more
+              # inforamtion about preemptible VM instances.
+          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+              # These will added in addition to any default label(s) that
+              # Kubernetes may apply to the node.
+              # In case of conflict in label keys, the applied set may differ depending on
+              # the Kubernetes version -- it's best to assume the behavior is undefined
+              # and conflicts should be avoided.
+              # For more information, including usage and the valid values, see:
+              # http://kubernetes.io/v1.1/docs/user-guide/labels.html
             "a_key": "A String",
           },
-          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-          "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+              # no Service Account is specified, the "default" service account is used.
+          "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+              # node VMs under the "default" service account.
+              #
+              # The following scopes are recommended, but not required, and by default are
+              # not included:
+              #
+              # * `https://www.googleapis.com/auth/compute` is required for mounting
+              # persistent storage on your nodes.
+              # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+              # communicating with **gcr.io**
+              # (the [Google Container Registry](/container-registry/)).
+              #
+              # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+              # Monitoring are enabled, in which case their required scopes will be added.
             "A String",
           ],
-          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-          "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-          "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-          "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
+          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+              # The smallest allowed disk size is 10GB.
+              #
+              # If unspecified, the default disk size is 100GB.
+          "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+              #
+              # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+              # in length. These are reflected as part of a URL in the metadata server.
+              # Additionally, to avoid ambiguity, keys must not conflict with any other
+              # metadata keys for the project or be one of the four reserved keys:
+              # "instance-template", "kube-env", "startup-script", and "user-data"
+              #
+              # Values are free-form strings, and only have meaning as interpreted by
+              # the image running in the instance. The only restriction placed on them is
+              # that each value's size must be less than or equal to 32 KB.
+              #
+              # The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
+          "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+              # the latest version of it will be used.
+          "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+              #
+              # The limit for this value is dependant upon the maximum number of
+              # disks available on a machine per zone. See:
+              # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+              # for more information.
         },
-        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this
+            # node pool instance, if available.
       },
     ],
-    "monitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com` - the Google Cloud Monitoring service. * `none` - no metrics will be exported from the cluster. * if left as an empty string, `monitoring.googleapis.com` will be used.
-    "createTime": "A String", # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at `https://username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information.
+    "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
+        # Currently available options:
+        #
+        # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
+        # * `none` - no metrics will be exported from the cluster.
+        # * if left as an empty string, `monitoring.googleapis.com` will be used.
+    "createTime": "A String", # [Output only] The time the cluster was created, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "name": "A String", # The name of this cluster. The name must be unique within this project
+        # and zone, and can be up to 40 characters with the following restrictions:
+        #
+        # * Lowercase letters, numbers, and hyphens only.
+        # * Must start with a letter.
+        # * Must end with a number or a letter.
+    "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
+        # The endpoint can be accessed from the internet at
+        # `https://username:password@endpoint/`.
+        #
+        # See the `masterAuth` property of this resource for username and
+        # password information.
     "currentNodeCount": 42, # [Output only] The number of nodes currently in the cluster.
-    "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
-    "initialClusterVersion": "A String", # [Output only] The software version of the master endpoint and kubelets used in the cluster when it was first created. The version can be upgraded over time.
-    "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes. See `nodeConfig` for the description of its properties. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. If unspecified, the defaults are used.
-      "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-      "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
-        "A String",
-      ],
-      "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-      "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
-        "a_key": "A String",
-      },
-      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-      "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
-        "A String",
-      ],
-      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-      "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-      "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-      "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
-        "a_key": "A String",
-      },
+    "zone": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the cluster
+        # resides.
+    "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
+        # mode.
+      "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
+          # identities in the system, including service accounts, nodes, and
+          # controllers, will have statically granted permissions beyond those
+          # provided by the RBAC configuration or IAM.
     },
-    "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
-    "subnetwork": "A String", # The name of the Google Compute Engine [subnetwork](/compute/docs/subnetworks) to which the cluster is connected.
+    "initialClusterVersion": "A String", # The initial Kubernetes version for this cluster.  Valid versions are those
+        # found in validMasterVersions returned by getServerConfig.  The version can
+        # be upgraded over time; such upgrades are reflected in
+        # currentMasterVersion and currentNodeVersion.
+    "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes.
+        # See `nodeConfig` for the description of its properties.
+        # For requests, this field should only be used in lieu of a
+        # "node_pool" object, since this configuration (along with the
+        # "initial_node_count") will be used to create a "NodePool" object with an
+        # auto-generated name. Do not use this and a node_pool at the same time.
+        # For responses, this field will be populated with the node configuration of
+        # the first node pool.
+        #
+        # If unspecified, the defaults are used.
+      "machineType": "A String", # The name of a Google Compute Engine [machine
+          # type](/compute/docs/machine-types) (e.g.
+          # `n1-standard-1`).
+          #
+          # If unspecified, the default machine type is
+          # `n1-standard-1`.
+      "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+          # valid sources or targets for network firewalls and are specified by
+          # the client during cluster or node pool creation. Each tag within the list
+          # must comply with RFC1035.
+        "A String",
+      ],
+      "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+          # https://cloud.google.com/compute/docs/instances/preemptible for more
+          # inforamtion about preemptible VM instances.
+      "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+          # These will added in addition to any default label(s) that
+          # Kubernetes may apply to the node.
+          # In case of conflict in label keys, the applied set may differ depending on
+          # the Kubernetes version -- it's best to assume the behavior is undefined
+          # and conflicts should be avoided.
+          # For more information, including usage and the valid values, see:
+          # http://kubernetes.io/v1.1/docs/user-guide/labels.html
+        "a_key": "A String",
+      },
+      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+          # no Service Account is specified, the "default" service account is used.
+      "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+          # node VMs under the "default" service account.
+          #
+          # The following scopes are recommended, but not required, and by default are
+          # not included:
+          #
+          # * `https://www.googleapis.com/auth/compute` is required for mounting
+          # persistent storage on your nodes.
+          # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+          # communicating with **gcr.io**
+          # (the [Google Container Registry](/container-registry/)).
+          #
+          # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+          # Monitoring are enabled, in which case their required scopes will be added.
+        "A String",
+      ],
+      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+          # The smallest allowed disk size is 10GB.
+          #
+          # If unspecified, the default disk size is 100GB.
+      "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+          #
+          # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+          # in length. These are reflected as part of a URL in the metadata server.
+          # Additionally, to avoid ambiguity, keys must not conflict with any other
+          # metadata keys for the project or be one of the four reserved keys:
+          # "instance-template", "kube-env", "startup-script", and "user-data"
+          #
+          # Values are free-form strings, and only have meaning as interpreted by
+          # the image running in the instance. The only restriction placed on them is
+          # that each value's size must be less than or equal to 32 KB.
+          #
+          # The total size of all keys and values must be less than 512 KB.
+        "a_key": "A String",
+      },
+      "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+          # the latest version of it will be used.
+      "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+          #
+          # The limit for this value is dependant upon the maximum number of
+          # disks available on a machine per zone. See:
+          # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+          # for more information.
+    },
+    "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in
+        # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+        # notation (e.g. `10.96.0.0/14`). Leave blank to have
+        # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+    "subnetwork": "A String", # The name of the Google Compute Engine
+        # [subnetwork](/compute/docs/subnetworks) to which the
+        # cluster is connected.
+    "resourceLabels": { # The resource labels for the cluster to use to annotate any related GCE
+        # resources.
+      "a_key": "A String",
+    },
     "selfLink": "A String", # [Output only] Server-defined URL for the resource.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId, zone, x__xgafv=None)</code>
-  <pre>Lists all clusters owned by a project in either the specified zone or all zones.
+    <code class="details" id="legacyAbac">legacyAbac(projectId, zone, clusterId, body, x__xgafv=None)</code>
+  <pre>Enables or disables the ABAC authorization mechanism on a cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides, or "-" for all zones. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
+  clusterId: string, The name of the cluster to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
+      # a cluster.
+    "enabled": True or False, # Whether ABAC authorization will be enabled in the cluster.
+  }
+
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, zone, x__xgafv=None)</code>
+  <pre>Lists all clusters owned by a project in either the specified zone or all
+zones.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides, or "-" for all zones. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # ListClustersResponse is the result of ListClustersRequest.
-    "clusters": [ # A list of clusters in the project in the specified zone, or across all ones.
+    "missingZones": [ # If any zones are listed here, the list of clusters returned
+        # may be missing those zones.
+      "A String",
+    ],
+    "clusters": [ # A list of clusters in the project in the specified zone, or
+        # across all ones.
       { # A Google Container Engine cluster.
-        "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range.
-        "addonsConfig": { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
-          "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
-            "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.
+        "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting
+            # containers. This is provisioned from within the `container_ipv4_cidr`
+            # range.
+        "addonsConfig": { # Configuration for the addons that can be automatically spun up in the # Configurations for the various addons available to run in the cluster.
+            # cluster, enabling additional functionality.
+          "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, # Configuration for the HTTP (L7) load balancing controller addon, which
+              # makes it easy to set up HTTP load balancers for services in a cluster.
+              # which makes it easy to set up HTTP load balancers for services in a cluster.
+            "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster.
+                # When enabled, it runs a small pod in the cluster that manages the load
+                # balancers.
           },
-          "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.
-            "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service.
+          "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
+              # increases or decreases the number of replica pods a replication controller
+              # has based on the resource usage of the existing pods.
+              # increases or decreases the number of replica pods a replication controller
+              # has based on the resource usage of the existing pods.
+            "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+                # When enabled, it ensures that a Heapster pod is running in the cluster,
+                # which is also used by the Cloud Monitoring service.
           },
         },
-        "locations": [ # The list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located.
+        "locations": [ # The list of Google Compute Engine
+            # [locations](/compute/docs/zones#available) in which the cluster's nodes
+            # should be located.
           "A String",
         ],
-        "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
-        "network": "A String", # The name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
-        "loggingService": "A String", # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com` - the Google Cloud Logging service. * `none` - no logs will be exported from the cluster. * if left as an empty string,`logging.googleapis.com` will be used.
-        "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this cluster.
+        "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
+            # API groups (e.g. v1alpha1) and features that may not be production ready in
+            # the kubernetes version of the master and nodes.
+            # The cluster has no SLA for uptime and master/node upgrades are disabled.
+            # Alpha enabled clusters are automatically deleted thirty days after
+            # creation.
+        "network": "A String", # The name of the Google Compute Engine
+            # [network](/compute/docs/networks-and-firewalls#networks) to which the
+            # cluster is connected. If left unspecified, the `default` network
+            # will be used.
+        "loggingService": "A String", # The logging service the cluster should use to write logs.
+            # Currently available options:
+            #
+            # * `logging.googleapis.com` - the Google Cloud Logging service.
+            # * `none` - no logs will be exported from the cluster.
+            # * if left as an empty string,`logging.googleapis.com` will be used.
+        "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+            # groups](/compute/docs/instance-groups/) associated with this
+            # cluster.
           "A String",
         ],
-        "zone": "A String", # [Output only] The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides.
-        "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
-        "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this
+            # cluster, if available.
+        "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
+            # this cluster, in
+            # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+            # notation (e.g. `1.2.3.4/29`). Service addresses are
+            # typically put in the last `/16` from the container CIDR.
         "status": "A String", # [Output only] The current status of this cluster.
         "description": "A String", # An optional description of this cluster.
-        "currentNodeVersion": "A String", # [Output only] The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.
+        "currentNodeVersion": "A String", # [Output only] The current version of the node software components.
+            # If they are currently at multiple versions because they're in the process
+            # of being upgraded, this reflects the minimum version of all nodes.
+        "labelFingerprint": "A String", # The fingerprint of the set of labels for this cluster.
         "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
-        "masterAuth": { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # The authentication information for accessing the master endpoint.
+        "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
+            # Authentication can be done using HTTP basic auth or using client
+            # certificates.
           "username": "A String", # The username to use for HTTP basic authentication to the master endpoint.
-          "password": "A String", # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password.
-          "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate to the cluster endpoint.
-          "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.
-          "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of trust for the cluster.
+              # For clusters v1.6.0 and later, you can disable basic authentication by
+              # providing an empty username.
+          "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+              # Because the master endpoint is open to the Internet, you should create a
+              # strong password.  If a password is provided for cluster creation, username
+              # must be non-empty.
+          "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate
+              # to the cluster endpoint.
+          "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
+              # authenticate to the cluster endpoint.
+          "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of
+              # trust for the cluster.
         },
-        "expireTime": "A String", # [Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-        "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "node_config") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time.
-        "nodePools": [ # The node pools associated with this cluster. This field should not be set if "node_config" or "initial_node_count" are specified.
-          { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
+        "expireTime": "A String", # [Output only] The time the cluster will be automatically
+            # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
+            # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+            # is sufficient for this number of instances. You must also have available
+            # firewall and routes quota.
+            # For requests, this field should only be used in lieu of a
+            # "node_pool" object, since this configuration (along with the
+            # "node_config") will be used to create a "NodePool" object with an
+            # auto-generated name. Do not use this and a node_pool at the same time.
+        "nodePools": [ # The node pools associated with this cluster.
+            # This field should not be set if "node_config" or "initial_node_count" are
+            # specified.
+          { # NodePool contains the name and configuration for a cluster's node pool.
+              # Node pools are a set of nodes (i.e. VM's), with a common configuration and
+              # specification, under the control of the cluster master. They may have a set
+              # of Kubernetes labels applied to them, which may be used to reference them
+              # during pod scheduling. They may also be resized up or down, to accommodate
+              # the workload.
             "status": "A String", # [Output only] The status of the nodes in this pool instance.
-            "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
+            "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+            "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
+                # node pool.
+              "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+                  # pool. If enabled, the nodes in this node pool will be monitored and, if
+                  # they fail health checks too many times, an automatic repair action will be
+                  # triggered.
+              "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+                  # the Auto Upgrades will proceed.
+                "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                    # with the description of the upgrade.
+                "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                    # with the approximate start time for the upgrades, in
+                    # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+              },
+              "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+                  # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+                  # up to date with the latest release version of Kubernetes.
+            },
             "name": "A String", # The name of the node pool.
-            "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
+            "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+                # groups](/compute/docs/instance-groups/) associated with this
+                # node pool.
               "A String",
             ],
-            "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
-              "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+            "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
+                # only if a valid configuration is present.
+                # adjust the size of the node pool to the current cluster usage.
+              "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+                  # max_node_count.
               "enabled": True or False, # Is autoscaling enabled for this node pool.
-              "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+              "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+                  # has to enough quota to scale up the cluster.
             },
             "version": "A String", # [Output only] The version of the Kubernetes of this node.
-            "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
-            "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
-              "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-                "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-                "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-              },
-              "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
-            },
+            "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
+                # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+                # is sufficient for this number of instances. You must also have available
+                # firewall and routes quota.
             "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-              "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-              "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+              "machineType": "A String", # The name of a Google Compute Engine [machine
+                  # type](/compute/docs/machine-types) (e.g.
+                  # `n1-standard-1`).
+                  #
+                  # If unspecified, the default machine type is
+                  # `n1-standard-1`.
+              "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+                  # valid sources or targets for network firewalls and are specified by
+                  # the client during cluster or node pool creation. Each tag within the list
+                  # must comply with RFC1035.
                 "A String",
               ],
-              "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-              "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+              "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+                  # https://cloud.google.com/compute/docs/instances/preemptible for more
+                  # inforamtion about preemptible VM instances.
+              "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+                  # These will added in addition to any default label(s) that
+                  # Kubernetes may apply to the node.
+                  # In case of conflict in label keys, the applied set may differ depending on
+                  # the Kubernetes version -- it's best to assume the behavior is undefined
+                  # and conflicts should be avoided.
+                  # For more information, including usage and the valid values, see:
+                  # http://kubernetes.io/v1.1/docs/user-guide/labels.html
                 "a_key": "A String",
               },
-              "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-              "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
+              "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+                  # no Service Account is specified, the "default" service account is used.
+              "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+                  # node VMs under the "default" service account.
+                  #
+                  # The following scopes are recommended, but not required, and by default are
+                  # not included:
+                  #
+                  # * `https://www.googleapis.com/auth/compute` is required for mounting
+                  # persistent storage on your nodes.
+                  # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+                  # communicating with **gcr.io**
+                  # (the [Google Container Registry](/container-registry/)).
+                  #
+                  # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+                  # Monitoring are enabled, in which case their required scopes will be added.
                 "A String",
               ],
-              "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-              "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-              "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-              "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
+              "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+                  # The smallest allowed disk size is 10GB.
+                  #
+                  # If unspecified, the default disk size is 100GB.
+              "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+                  #
+                  # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+                  # in length. These are reflected as part of a URL in the metadata server.
+                  # Additionally, to avoid ambiguity, keys must not conflict with any other
+                  # metadata keys for the project or be one of the four reserved keys:
+                  # "instance-template", "kube-env", "startup-script", and "user-data"
+                  #
+                  # Values are free-form strings, and only have meaning as interpreted by
+                  # the image running in the instance. The only restriction placed on them is
+                  # that each value's size must be less than or equal to 32 KB.
+                  #
+                  # The total size of all keys and values must be less than 512 KB.
                 "a_key": "A String",
               },
+              "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+                  # the latest version of it will be used.
+              "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+                  #
+                  # The limit for this value is dependant upon the maximum number of
+                  # disks available on a machine per zone. See:
+                  # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+                  # for more information.
             },
-            "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+            "statusMessage": "A String", # [Output only] Additional information about the current status of this
+                # node pool instance, if available.
           },
         ],
-        "monitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com` - the Google Cloud Monitoring service. * `none` - no metrics will be exported from the cluster. * if left as an empty string, `monitoring.googleapis.com` will be used.
-        "createTime": "A String", # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-        "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at `https://username:password@endpoint/`. See the `masterAuth` property of this resource for username and password information.
+        "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
+            # Currently available options:
+            #
+            # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
+            # * `none` - no metrics will be exported from the cluster.
+            # * if left as an empty string, `monitoring.googleapis.com` will be used.
+        "createTime": "A String", # [Output only] The time the cluster was created, in
+            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        "name": "A String", # The name of this cluster. The name must be unique within this project
+            # and zone, and can be up to 40 characters with the following restrictions:
+            #
+            # * Lowercase letters, numbers, and hyphens only.
+            # * Must start with a letter.
+            # * Must end with a number or a letter.
+        "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
+            # The endpoint can be accessed from the internet at
+            # `https://username:password@endpoint/`.
+            #
+            # See the `masterAuth` property of this resource for username and
+            # password information.
         "currentNodeCount": 42, # [Output only] The number of nodes currently in the cluster.
-        "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
-        "initialClusterVersion": "A String", # [Output only] The software version of the master endpoint and kubelets used in the cluster when it was first created. The version can be upgraded over time.
-        "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes. See `nodeConfig` for the description of its properties. For requests, this field should only be used in lieu of a "node_pool" object, since this configuration (along with the "initial_node_count") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. If unspecified, the defaults are used.
-          "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
-            "A String",
-          ],
-          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
-            "a_key": "A String",
-          },
-          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-          "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
-            "A String",
-          ],
-          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-          "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-          "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-          "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
-            "a_key": "A String",
-          },
+        "zone": "A String", # [Output only] The name of the Google Compute Engine
+            # [zone](/compute/docs/zones#available) in which the cluster
+            # resides.
+        "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
+            # mode.
+          "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
+              # identities in the system, including service accounts, nodes, and
+              # controllers, will have statically granted permissions beyond those
+              # provided by the RBAC configuration or IAM.
         },
-        "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
-        "subnetwork": "A String", # The name of the Google Compute Engine [subnetwork](/compute/docs/subnetworks) to which the cluster is connected.
+        "initialClusterVersion": "A String", # The initial Kubernetes version for this cluster.  Valid versions are those
+            # found in validMasterVersions returned by getServerConfig.  The version can
+            # be upgraded over time; such upgrades are reflected in
+            # currentMasterVersion and currentNodeVersion.
+        "nodeConfig": { # Parameters that describe the nodes in a cluster. # Parameters used in creating the cluster's nodes.
+            # See `nodeConfig` for the description of its properties.
+            # For requests, this field should only be used in lieu of a
+            # "node_pool" object, since this configuration (along with the
+            # "initial_node_count") will be used to create a "NodePool" object with an
+            # auto-generated name. Do not use this and a node_pool at the same time.
+            # For responses, this field will be populated with the node configuration of
+            # the first node pool.
+            #
+            # If unspecified, the defaults are used.
+          "machineType": "A String", # The name of a Google Compute Engine [machine
+              # type](/compute/docs/machine-types) (e.g.
+              # `n1-standard-1`).
+              #
+              # If unspecified, the default machine type is
+              # `n1-standard-1`.
+          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+              # valid sources or targets for network firewalls and are specified by
+              # the client during cluster or node pool creation. Each tag within the list
+              # must comply with RFC1035.
+            "A String",
+          ],
+          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+              # https://cloud.google.com/compute/docs/instances/preemptible for more
+              # inforamtion about preemptible VM instances.
+          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+              # These will added in addition to any default label(s) that
+              # Kubernetes may apply to the node.
+              # In case of conflict in label keys, the applied set may differ depending on
+              # the Kubernetes version -- it's best to assume the behavior is undefined
+              # and conflicts should be avoided.
+              # For more information, including usage and the valid values, see:
+              # http://kubernetes.io/v1.1/docs/user-guide/labels.html
+            "a_key": "A String",
+          },
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+              # no Service Account is specified, the "default" service account is used.
+          "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+              # node VMs under the "default" service account.
+              #
+              # The following scopes are recommended, but not required, and by default are
+              # not included:
+              #
+              # * `https://www.googleapis.com/auth/compute` is required for mounting
+              # persistent storage on your nodes.
+              # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+              # communicating with **gcr.io**
+              # (the [Google Container Registry](/container-registry/)).
+              #
+              # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+              # Monitoring are enabled, in which case their required scopes will be added.
+            "A String",
+          ],
+          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+              # The smallest allowed disk size is 10GB.
+              #
+              # If unspecified, the default disk size is 100GB.
+          "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+              #
+              # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+              # in length. These are reflected as part of a URL in the metadata server.
+              # Additionally, to avoid ambiguity, keys must not conflict with any other
+              # metadata keys for the project or be one of the four reserved keys:
+              # "instance-template", "kube-env", "startup-script", and "user-data"
+              #
+              # Values are free-form strings, and only have meaning as interpreted by
+              # the image running in the instance. The only restriction placed on them is
+              # that each value's size must be less than or equal to 32 KB.
+              #
+              # The total size of all keys and values must be less than 512 KB.
+            "a_key": "A String",
+          },
+          "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+              # the latest version of it will be used.
+          "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+              #
+              # The limit for this value is dependant upon the maximum number of
+              # disks available on a machine per zone. See:
+              # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+              # for more information.
+        },
+        "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in
+            # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+            # notation (e.g. `10.96.0.0/14`). Leave blank to have
+            # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+        "subnetwork": "A String", # The name of the Google Compute Engine
+            # [subnetwork](/compute/docs/subnetworks) to which the
+            # cluster is connected.
+        "resourceLabels": { # The resource labels for the cluster to use to annotate any related GCE
+            # resources.
+          "a_key": "A String",
+        },
         "selfLink": "A String", # [Output only] Server-defined URL for the resource.
       },
     ],
-    "missingZones": [ # If any zones are listed here, the list of clusters returned may be missing those zones.
-      "A String",
-    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resourceLabels">resourceLabels(projectId, zone, clusterId, body, x__xgafv=None)</code>
+  <pre>Sets labels on a cluster.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
+  clusterId: string, The name of the cluster. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
+      # Engine cluster, which will in turn set them for Google Compute Engine
+      # resources used by that cluster
+    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource,
+        # used to detect conflicts. The fingerprint is initially generated by
+        # Container Engine and changes after every request to modify or update
+        # labels. You must always provide an up-to-date fingerprint hash when
+        # updating or changing labels. Make a <code>get()</code> request to the
+        # resource to get the latest fingerprint.
+    "resourceLabels": { # The labels to set for that cluster.
+      "a_key": "A String",
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setMasterAuth">setMasterAuth(projectId, zone, clusterId, body, x__xgafv=None)</code>
+  <pre>Used to set master auth materials. Currently supports :-
+Changing the admin password of a specific cluster.
+This can be either via password generation or explicitly set the password.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
+  clusterId: string, The name of the cluster to upgrade. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # SetMasterAuthRequest updates the admin password of a cluster.
+    "action": "A String", # The exact form of action to be taken on the master auth
+    "update": { # The authentication information for accessing the master endpoint. # A description of the update.
+        # Authentication can be done using HTTP basic auth or using client
+        # certificates.
+      "username": "A String", # The username to use for HTTP basic authentication to the master endpoint.
+          # For clusters v1.6.0 and later, you can disable basic authentication by
+          # providing an empty username.
+      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+          # Because the master endpoint is open to the Internet, you should create a
+          # strong password.  If a password is provided for cluster creation, username
+          # must be non-empty.
+      "clientKey": "A String", # [Output only] Base64-encoded private key used by clients to authenticate
+          # to the cluster endpoint.
+      "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
+          # authenticate to the cluster endpoint.
+      "clusterCaCertificate": "A String", # [Output only] Base64-encoded public certificate that is the root of
+          # trust for the cluster.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="startIpRotation">startIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</code>
+  <pre>Start master IP rotation.
+
+Args:
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
+  clusterId: string, The name of the cluster. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # StartIPRotationRequest creates a new IP for the cluster and then performs
+      # a node upgrade on each node pool to point to the new IP.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -521,52 +1526,98 @@
   <pre>Updates the settings of a specific cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster to upgrade. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # UpdateClusterRequest updates the settings of a cluster.
-    "update": { # ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided. # A description of the update.
-      "desiredLocations": [ # The desired list of Google Compute Engine [locations](/compute/docs/zones#available) in which the cluster's nodes should be located. Changing the locations a cluster is in will result in nodes being either created or removed from the cluster, depending on whether locations are being added or removed. This list must always include the cluster's primary zone.
+    "update": { # ClusterUpdate describes an update to the cluster. Exactly one update can # A description of the update.
+        # be applied to a cluster with each request, so at most one field can be
+        # provided.
+      "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if
+          # "desired_node_version", "desired_image_family" or
+          # "desired_node_pool_autoscaling" is specified and there is more than one
+          # node pool on the cluster.
+      "desiredAddonsConfig": { # Configuration for the addons that can be automatically spun up in the # Configurations for the various addons available to run in the cluster.
+          # cluster, enabling additional functionality.
+        "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, # Configuration for the HTTP (L7) load balancing controller addon, which
+            # makes it easy to set up HTTP load balancers for services in a cluster.
+            # which makes it easy to set up HTTP load balancers for services in a cluster.
+          "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster.
+              # When enabled, it runs a small pod in the cluster that manages the load
+              # balancers.
+        },
+        "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
+            # increases or decreases the number of replica pods a replication controller
+            # has based on the resource usage of the existing pods.
+            # increases or decreases the number of replica pods a replication controller
+            # has based on the resource usage of the existing pods.
+          "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+              # When enabled, it ensures that a Heapster pod is running in the cluster,
+              # which is also used by the Cloud Monitoring service.
+        },
+      },
+      "desiredMasterVersion": "A String", # The Kubernetes version to change the master to. The only valid value is the
+          # latest supported version. Use "-" to have the server automatically select
+          # the latest version.
+      "desiredLocations": [ # The desired list of Google Compute Engine
+          # [locations](/compute/docs/zones#available) in which the cluster's nodes
+          # should be located. Changing the locations a cluster is in will result
+          # in nodes being either created or removed from the cluster, depending on
+          # whether locations are being added or removed.
+          #
+          # This list must always include the cluster's primary zone.
         "A String",
       ],
-      "desiredAddonsConfig": { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
-        "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
-          "disabled": True or False, # Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.
-        },
-        "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.
-          "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service.
-        },
-      },
-      "desiredMasterVersion": "A String", # The Kubernetes version to change the master to. The only valid value is the latest supported version. Use "-" to have the server automatically select the latest version.
-      "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if "desired_node_version", "desired_image_family" or "desired_node_pool_autoscaling" is specified and there is more than one node pool on the cluster.
-      "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an upgrade). Use `-` to upgrade to the latest version supported by the server.
-      "desiredMonitoringService": "A String", # The monitoring service the cluster should use to write metrics. Currently available options: * "monitoring.googleapis.com" - the Google Cloud Monitoring service * "none" - no metrics will be exported from the cluster
-      "desiredNodePoolAutoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool.
-        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+      "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an
+          # upgrade). Use `-` to upgrade to the latest version supported by
+          # the server.
+      "desiredMonitoringService": "A String", # The monitoring service the cluster should use to write metrics.
+          # Currently available options:
+          #
+          # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
+          # * "none" - no metrics will be exported from the cluster
+      "desiredNodePoolAutoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for the node pool specified in
+          # desired_node_pool_id. If there is only one pool in the
+          # cluster and desired_node_pool_id is not provided then
+          # the change applies to that single node pool.
+          # adjust the size of the node pool to the current cluster usage.
+        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+            # max_node_count.
         "enabled": True or False, # Is autoscaling enabled for this node pool.
-        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+            # has to enough quota to scale up the cluster.
       },
-      "desiredImageType": "A String", # The desired image type for the node pool. NOTE: Set the "desired_node_pool" field as well.
+      "desiredImageType": "A String", # The desired image type for the node pool.
+          # NOTE: Set the "desired_node_pool" field as well.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/container_v1.projects.zones.clusters.nodePools.html b/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
index e897e8c..b870b56 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
+++ b/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
@@ -88,7 +88,7 @@
 <p class="firstline">Lists the node pools for a cluster.</p>
 <p class="toc_element">
   <code><a href="#rollback">rollback(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Roll back the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.</p>
+<p class="firstline">Roll back the previously Aborted or Failed NodePool upgrade.</p>
 <p class="toc_element">
   <code><a href="#setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the NodeManagement options for a node pool.</p>
@@ -98,72 +98,159 @@
   <pre>Creates a node pool for a cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # CreateNodePoolRequest creates a node pool for a cluster.
-    "nodePool": { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload. # The node pool to create.
+    "nodePool": { # NodePool contains the name and configuration for a cluster's node pool. # The node pool to create.
+        # Node pools are a set of nodes (i.e. VM's), with a common configuration and
+        # specification, under the control of the cluster master. They may have a set
+        # of Kubernetes labels applied to them, which may be used to reference them
+        # during pod scheduling. They may also be resized up or down, to accommodate
+        # the workload.
       "status": "A String", # [Output only] The status of the nodes in this pool instance.
-      "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
+      "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+      "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
+          # node pool.
+        "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+            # pool. If enabled, the nodes in this node pool will be monitored and, if
+            # they fail health checks too many times, an automatic repair action will be
+            # triggered.
+        "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+            # the Auto Upgrades will proceed.
+          "description": "A String", # [Output only] This field is set when upgrades are about to commence
+              # with the description of the upgrade.
+          "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+              # with the approximate start time for the upgrades, in
+              # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        },
+        "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+            # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+            # up to date with the latest release version of Kubernetes.
+      },
       "name": "A String", # The name of the node pool.
-      "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
+      "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+          # groups](/compute/docs/instance-groups/) associated with this
+          # node pool.
         "A String",
       ],
-      "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
-        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+      "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
+          # only if a valid configuration is present.
+          # adjust the size of the node pool to the current cluster usage.
+        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+            # max_node_count.
         "enabled": True or False, # Is autoscaling enabled for this node pool.
-        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+            # has to enough quota to scale up the cluster.
       },
       "version": "A String", # [Output only] The version of the Kubernetes of this node.
-      "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
-      "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
-        "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-          "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-          "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-        },
-        "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
-      },
+      "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
+          # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+          # is sufficient for this number of instances. You must also have available
+          # firewall and routes quota.
       "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-        "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-        "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+        "machineType": "A String", # The name of a Google Compute Engine [machine
+            # type](/compute/docs/machine-types) (e.g.
+            # `n1-standard-1`).
+            #
+            # If unspecified, the default machine type is
+            # `n1-standard-1`.
+        "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+            # valid sources or targets for network firewalls and are specified by
+            # the client during cluster or node pool creation. Each tag within the list
+            # must comply with RFC1035.
           "A String",
         ],
-        "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-        "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+        "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+            # https://cloud.google.com/compute/docs/instances/preemptible for more
+            # inforamtion about preemptible VM instances.
+        "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+            # These will added in addition to any default label(s) that
+            # Kubernetes may apply to the node.
+            # In case of conflict in label keys, the applied set may differ depending on
+            # the Kubernetes version -- it's best to assume the behavior is undefined
+            # and conflicts should be avoided.
+            # For more information, including usage and the valid values, see:
+            # http://kubernetes.io/v1.1/docs/user-guide/labels.html
           "a_key": "A String",
         },
-        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-        "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
+        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+            # no Service Account is specified, the "default" service account is used.
+        "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+            # node VMs under the "default" service account.
+            #
+            # The following scopes are recommended, but not required, and by default are
+            # not included:
+            #
+            # * `https://www.googleapis.com/auth/compute` is required for mounting
+            # persistent storage on your nodes.
+            # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+            # communicating with **gcr.io**
+            # (the [Google Container Registry](/container-registry/)).
+            #
+            # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+            # Monitoring are enabled, in which case their required scopes will be added.
           "A String",
         ],
-        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-        "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-        "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-        "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
+        "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+            # The smallest allowed disk size is 10GB.
+            #
+            # If unspecified, the default disk size is 100GB.
+        "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+            #
+            # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+            # in length. These are reflected as part of a URL in the metadata server.
+            # Additionally, to avoid ambiguity, keys must not conflict with any other
+            # metadata keys for the project or be one of the four reserved keys:
+            # "instance-template", "kube-env", "startup-script", and "user-data"
+            #
+            # Values are free-form strings, and only have meaning as interpreted by
+            # the image running in the instance. The only restriction placed on them is
+            # that each value's size must be less than or equal to 32 KB.
+            #
+            # The total size of all keys and values must be less than 512 KB.
           "a_key": "A String",
         },
+        "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+            # the latest version of it will be used.
+        "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+            #
+            # The limit for this value is dependant upon the maximum number of
+            # disks available on a machine per zone. See:
+            # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+            # for more information.
       },
-      "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+      "statusMessage": "A String", # [Output only] Additional information about the current status of this
+          # node pool instance, if available.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -172,24 +259,33 @@
   <pre>Deletes a node pool from a cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster. (required)
   nodePoolId: string, The name of the node pool to delete. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -198,57 +294,141 @@
   <pre>Retrieves the node pool requested.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster. (required)
   nodePoolId: string, The name of the node pool. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
+    { # NodePool contains the name and configuration for a cluster's node pool.
+      # Node pools are a set of nodes (i.e. VM's), with a common configuration and
+      # specification, under the control of the cluster master. They may have a set
+      # of Kubernetes labels applied to them, which may be used to reference them
+      # during pod scheduling. They may also be resized up or down, to accommodate
+      # the workload.
     "status": "A String", # [Output only] The status of the nodes in this pool instance.
-    "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
+    "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+    "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
+        # node pool.
+      "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+          # pool. If enabled, the nodes in this node pool will be monitored and, if
+          # they fail health checks too many times, an automatic repair action will be
+          # triggered.
+      "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+          # the Auto Upgrades will proceed.
+        "description": "A String", # [Output only] This field is set when upgrades are about to commence
+            # with the description of the upgrade.
+        "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+            # with the approximate start time for the upgrades, in
+            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+      },
+      "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+          # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+          # up to date with the latest release version of Kubernetes.
+    },
     "name": "A String", # The name of the node pool.
-    "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
+    "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+        # groups](/compute/docs/instance-groups/) associated with this
+        # node pool.
       "A String",
     ],
-    "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
-      "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+    "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
+        # only if a valid configuration is present.
+        # adjust the size of the node pool to the current cluster usage.
+      "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+          # max_node_count.
       "enabled": True or False, # Is autoscaling enabled for this node pool.
-      "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+      "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+          # has to enough quota to scale up the cluster.
     },
     "version": "A String", # [Output only] The version of the Kubernetes of this node.
-    "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
-    "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
-      "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-        "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-        "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-      },
-      "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
-    },
+    "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
+        # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+        # is sufficient for this number of instances. You must also have available
+        # firewall and routes quota.
     "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-      "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-      "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+      "machineType": "A String", # The name of a Google Compute Engine [machine
+          # type](/compute/docs/machine-types) (e.g.
+          # `n1-standard-1`).
+          #
+          # If unspecified, the default machine type is
+          # `n1-standard-1`.
+      "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+          # valid sources or targets for network firewalls and are specified by
+          # the client during cluster or node pool creation. Each tag within the list
+          # must comply with RFC1035.
         "A String",
       ],
-      "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-      "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+      "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+          # https://cloud.google.com/compute/docs/instances/preemptible for more
+          # inforamtion about preemptible VM instances.
+      "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+          # These will added in addition to any default label(s) that
+          # Kubernetes may apply to the node.
+          # In case of conflict in label keys, the applied set may differ depending on
+          # the Kubernetes version -- it's best to assume the behavior is undefined
+          # and conflicts should be avoided.
+          # For more information, including usage and the valid values, see:
+          # http://kubernetes.io/v1.1/docs/user-guide/labels.html
         "a_key": "A String",
       },
-      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-      "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
+      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+          # no Service Account is specified, the "default" service account is used.
+      "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+          # node VMs under the "default" service account.
+          #
+          # The following scopes are recommended, but not required, and by default are
+          # not included:
+          #
+          # * `https://www.googleapis.com/auth/compute` is required for mounting
+          # persistent storage on your nodes.
+          # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+          # communicating with **gcr.io**
+          # (the [Google Container Registry](/container-registry/)).
+          #
+          # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+          # Monitoring are enabled, in which case their required scopes will be added.
         "A String",
       ],
-      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-      "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-      "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-      "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
+      "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+          # The smallest allowed disk size is 10GB.
+          #
+          # If unspecified, the default disk size is 100GB.
+      "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+          #
+          # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+          # in length. These are reflected as part of a URL in the metadata server.
+          # Additionally, to avoid ambiguity, keys must not conflict with any other
+          # metadata keys for the project or be one of the four reserved keys:
+          # "instance-template", "kube-env", "startup-script", and "user-data"
+          #
+          # Values are free-form strings, and only have meaning as interpreted by
+          # the image running in the instance. The only restriction placed on them is
+          # that each value's size must be less than or equal to 32 KB.
+          #
+          # The total size of all keys and values must be less than 512 KB.
         "a_key": "A String",
       },
+      "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+          # the latest version of it will be used.
+      "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+          #
+          # The limit for this value is dependant upon the maximum number of
+          # disks available on a machine per zone. See:
+          # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+          # for more information.
     },
-    "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+    "statusMessage": "A String", # [Output only] Additional information about the current status of this
+        # node pool instance, if available.
   }</pre>
 </div>
 
@@ -257,58 +437,142 @@
   <pre>Lists the node pools for a cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://developers.google.com/console/help/new/#projectnumber). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # ListNodePoolsResponse is the result of ListNodePoolsRequest.
     "nodePools": [ # A list of node pools for a cluster.
-      { # NodePool contains the name and configuration for a cluster's node pool. Node pools are a set of nodes (i.e. VM's), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
+      { # NodePool contains the name and configuration for a cluster's node pool.
+          # Node pools are a set of nodes (i.e. VM's), with a common configuration and
+          # specification, under the control of the cluster master. They may have a set
+          # of Kubernetes labels applied to them, which may be used to reference them
+          # during pod scheduling. They may also be resized up or down, to accommodate
+          # the workload.
         "status": "A String", # [Output only] The status of the nodes in this pool instance.
-        "statusMessage": "A String", # [Output only] Additional information about the current status of this node pool instance, if available.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
+            # node pool.
+          "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+              # pool. If enabled, the nodes in this node pool will be monitored and, if
+              # they fail health checks too many times, an automatic repair action will be
+              # triggered.
+          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+              # the Auto Upgrades will proceed.
+            "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                # with the description of the upgrade.
+            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                # with the approximate start time for the upgrades, in
+                # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+          },
+          "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+              # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+              # up to date with the latest release version of Kubernetes.
+        },
         "name": "A String", # The name of the node pool.
-        "instanceGroupUrls": [ # [Output only] The resource URLs of [instance groups](/compute/docs/instance-groups/) associated with this node pool.
+        "instanceGroupUrls": [ # [Output only] The resource URLs of [instance
+            # groups](/compute/docs/instance-groups/) associated with this
+            # node pool.
           "A String",
         ],
-        "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
-          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <= max_node_count.
+        "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
+            # only if a valid configuration is present.
+            # adjust the size of the node pool to the current cluster usage.
+          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+              # max_node_count.
           "enabled": True or False, # Is autoscaling enabled for this node pool.
-          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There has to enough quota to scale up the cluster.
+          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+              # has to enough quota to scale up the cluster.
         },
         "version": "A String", # [Output only] The version of the Kubernetes of this node.
-        "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota.
-        "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
-          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-            "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-          },
-          "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
-        },
+        "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
+            # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+            # is sufficient for this number of instances. You must also have available
+            # firewall and routes quota.
         "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-          "machineType": "A String", # The name of a Google Compute Engine [machine type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified, the default machine type is `n1-standard-1`.
-          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during cluster or node pool creation. Each tag within the list must comply with RFC1035.
+          "machineType": "A String", # The name of a Google Compute Engine [machine
+              # type](/compute/docs/machine-types) (e.g.
+              # `n1-standard-1`).
+              #
+              # If unspecified, the default machine type is
+              # `n1-standard-1`.
+          "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
+              # valid sources or targets for network firewalls and are specified by
+              # the client during cluster or node pool creation. Each tag within the list
+              # must comply with RFC1035.
             "A String",
           ],
-          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See: https://cloud.google.com/compute/docs/instances/preemptible for more inforamtion about preemptible VM instances.
-          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node. In case of conflict in label keys, the applied set may differ depending on the Kubernetes version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
+          "preemptible": True or False, # Whether the nodes are created as preemptible VM instances. See:
+              # https://cloud.google.com/compute/docs/instances/preemptible for more
+              # inforamtion about preemptible VM instances.
+          "labels": { # The map of Kubernetes labels (key/value pairs) to be applied to each node.
+              # These will added in addition to any default label(s) that
+              # Kubernetes may apply to the node.
+              # In case of conflict in label keys, the applied set may differ depending on
+              # the Kubernetes version -- it's best to assume the behavior is undefined
+              # and conflicts should be avoided.
+              # For more information, including usage and the valid values, see:
+              # http://kubernetes.io/v1.1/docs/user-guide/labels.html
             "a_key": "A String",
           },
-          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If no Service Account is specified, the "default" service account is used.
-          "oauthScopes": [ # The set of Google API scopes to be made available on all of the node VMs under the "default" service account. The following scopes are recommended, but not required, and by default are not included: * `https://www.googleapis.com/auth/compute` is required for mounting persistent storage on your nodes. * `https://www.googleapis.com/auth/devstorage.read_only` is required for communicating with **gcr.io** (the [Google Container Registry](/container-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+              # no Service Account is specified, the "default" service account is used.
+          "oauthScopes": [ # The set of Google API scopes to be made available on all of the
+              # node VMs under the "default" service account.
+              #
+              # The following scopes are recommended, but not required, and by default are
+              # not included:
+              #
+              # * `https://www.googleapis.com/auth/compute` is required for mounting
+              # persistent storage on your nodes.
+              # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+              # communicating with **gcr.io**
+              # (the [Google Container Registry](/container-registry/)).
+              #
+              # If unspecified, no scopes are added, unless Cloud Logging or Cloud
+              # Monitoring are enabled, in which case their required scopes will be added.
             "A String",
           ],
-          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.
-          "localSsdCount": 42, # The number of local SSD disks to be attached to the node. The limit for this value is dependant upon the maximum number of disks available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for more information.
-          "imageType": "A String", # The image type to use for this node. Note that for a given image type, the latest version of it will be used.
-          "metadata": { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the four reserved keys: "instance-template", "kube-env", "startup-script", and "user-data" Values are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on them is that each value's size must be less than or equal to 32 KB. The total size of all keys and values must be less than 512 KB.
+          "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
+              # The smallest allowed disk size is 10GB.
+              #
+              # If unspecified, the default disk size is 100GB.
+          "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
+              #
+              # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
+              # in length. These are reflected as part of a URL in the metadata server.
+              # Additionally, to avoid ambiguity, keys must not conflict with any other
+              # metadata keys for the project or be one of the four reserved keys:
+              # "instance-template", "kube-env", "startup-script", and "user-data"
+              #
+              # Values are free-form strings, and only have meaning as interpreted by
+              # the image running in the instance. The only restriction placed on them is
+              # that each value's size must be less than or equal to 32 KB.
+              #
+              # The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
+          "imageType": "A String", # The image type to use for this node. Note that for a given image type,
+              # the latest version of it will be used.
+          "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
+              #
+              # The limit for this value is dependant upon the maximum number of
+              # disks available on a machine per zone. See:
+              # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+              # for more information.
         },
-        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this
+            # node pool instance, if available.
       },
     ],
   }</pre>
@@ -316,33 +580,45 @@
 
 <div class="method">
     <code class="details" id="rollback">rollback(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
-  <pre>Roll back the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.
+  <pre>Roll back the previously Aborted or Failed NodePool upgrade.
+This will be an no-op if the last upgrade successfully completed.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster to rollback. (required)
   nodePoolId: string, The name of the node pool to rollback. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed.
+{ # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
+      # NodePool upgrade. This will be an no-op if the last upgrade successfully
+      # completed.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -351,37 +627,58 @@
   <pre>Sets the NodeManagement options for a node pool.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   clusterId: string, The name of the cluster to update. (required)
   nodePoolId: string, The name of the node pool to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # SetNodePoolManagementRequest sets the node management properties of a node pool.
-    "management": { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for the node pool.
-      "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
-        "description": "A String", # [Output only] This field is set when upgrades are about to commence with the description of the upgrade.
-        "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+{ # SetNodePoolManagementRequest sets the node management properties of a node
+      # pool.
+    "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for the node pool.
+        # node pool.
+      "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+          # pool. If enabled, the nodes in this node pool will be monitored and, if
+          # they fail health checks too many times, an automatic repair action will be
+          # triggered.
+      "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+          # the Auto Upgrades will proceed.
+        "description": "A String", # [Output only] This field is set when upgrades are about to commence
+            # with the description of the upgrade.
+        "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+            # with the approximate start time for the upgrades, in
+            # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       },
-      "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+      "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+          # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+          # up to date with the latest release version of Kubernetes.
     },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/container_v1.projects.zones.html b/docs/dyn/container_v1.projects.zones.html
index 47dc6f2..7bf66d0 100644
--- a/docs/dyn/container_v1.projects.zones.html
+++ b/docs/dyn/container_v1.projects.zones.html
@@ -93,9 +93,14 @@
   <pre>Returns configuration info about the Container Engine service.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) to return operations for. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available)
+to return operations for. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/container_v1.projects.zones.operations.html b/docs/dyn/container_v1.projects.zones.operations.html
index 0ef563a..19e9aca 100644
--- a/docs/dyn/container_v1.projects.zones.operations.html
+++ b/docs/dyn/container_v1.projects.zones.operations.html
@@ -89,8 +89,10 @@
   <pre>Cancels the specified operation.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the operation resides. (required)
   operationId: string, The server-assigned `name` of the operation. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -99,11 +101,22 @@
   }
 
   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 `{}`.
+    { # 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>
 
@@ -112,23 +125,32 @@
   <pre>Gets the specified operation.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the cluster resides. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine
+[zone](/compute/docs/zones#available) in which the cluster
+resides. (required)
   operationId: string, The server-assigned `name` of the operation. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+    { # This operation resource represents operations that may have happened or are
+      # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
-    "name": "A String", # The server-assigned ID for the operation.
-    "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-    "detail": "A String", # Detailed operation progress, if available.
-    "selfLink": "A String", # Server-defined URL for the resource.
-    "operationType": "A String", # The operation type.
     "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "name": "A String", # The server-assigned ID for the operation.
+    "zone": "A String", # The name of the Google Compute Engine
+        # [zone](/compute/docs/zones#available) in which the operation
+        # is taking place.
+    "detail": "A String", # Detailed operation progress, if available.
     "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
   }</pre>
 </div>
 
@@ -137,27 +159,36 @@
   <pre>Lists all operations in a project in a specific zone or all zones.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available) to return operations for, or `-` for all zones. (required)
+  projectId: string, The Google Developers Console [project ID or project
+number](https://support.google.com/cloud/answer/6158840). (required)
+  zone: string, The name of the Google Compute Engine [zone](/compute/docs/zones#available)
+to return operations for, or `-` for all zones. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
     { # ListOperationsResponse is the result of ListOperationsRequest.
     "operations": [ # A list of operations in the project in the specified zone.
-      { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
+      { # This operation resource represents operations that may have happened or are
+          # happening on the cluster. All fields are output only.
         "status": "A String", # The current status of the operation.
-        "name": "A String", # The server-assigned ID for the operation.
-        "zone": "A String", # The name of the Google Compute Engine [zone](/compute/docs/zones#available) in which the operation is taking place.
-        "detail": "A String", # Detailed operation progress, if available.
-        "selfLink": "A String", # Server-defined URL for the resource.
-        "operationType": "A String", # The operation type.
         "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+        "name": "A String", # The server-assigned ID for the operation.
+        "zone": "A String", # The name of the Google Compute Engine
+            # [zone](/compute/docs/zones#available) in which the operation
+            # is taking place.
+        "detail": "A String", # Detailed operation progress, if available.
         "targetLink": "A String", # Server-defined URL for the target of the operation.
+        "operationType": "A String", # The operation type.
+        "selfLink": "A String", # Server-defined URL for the resource.
       },
     ],
-    "missingZones": [ # If any zones are listed here, the list of operations returned may be missing the operations from those zones.
+    "missingZones": [ # If any zones are listed here, the list of operations returned
+        # may be missing the operations from those zones.
       "A String",
     ],
   }</pre>
diff --git a/docs/dyn/content_v2.accounts.html b/docs/dyn/content_v2.accounts.html
index b9cb347..26ac978 100644
--- a/docs/dyn/content_v2.accounts.html
+++ b/docs/dyn/content_v2.accounts.html
@@ -78,6 +78,9 @@
   <code><a href="#authinfo">authinfo()</a></code></p>
 <p class="firstline">Returns information about the authenticated user.</p>
 <p class="toc_element">
+  <code><a href="#claimwebsite">claimwebsite(merchantId, accountId, overwrite=None)</a></code></p>
+<p class="firstline">Claims the website of a Merchant Center sub-account. This method can only be called for multi-client accounts.</p>
+<p class="toc_element">
   <code><a href="#custombatch">custombatch(body, dryRun=None)</a></code></p>
 <p class="firstline">Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.</p>
 <p class="toc_element">
@@ -126,6 +129,23 @@
 </div>
 
 <div class="method">
+    <code class="details" id="claimwebsite">claimwebsite(merchantId, accountId, overwrite=None)</code>
+  <pre>Claims the website of a Merchant Center sub-account. This method can only be called for multi-client accounts.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account whose website is claimed. (required)
+  overwrite: boolean, Flag to remove any existing claim on the requested website by another account and replace it with a claim from this account.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "content#accountsClaimWebsiteResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsClaimWebsiteResponse".
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
   <pre>Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.
 
@@ -136,8 +156,6 @@
 {
     "entries": [ # The request entries to be processed in the batch.
       { # A batch entry encoding a single non-batch accounts request.
-        "batchId": 42, # An entry ID, unique within the batch request.
-        "method": "A String",
         "account": { # Account data. # The account to create or update. Only defined if the method is insert or update.
             "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
             "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
@@ -160,7 +178,10 @@
             ],
           },
         "merchantId": "A String", # The ID of the managing account.
-        "accountId": "A String", # The ID of the account to get or delete. Only defined if the method is get or delete.
+        "batchId": 42, # An entry ID, unique within the batch request.
+        "method": "A String",
+        "overwrite": True or False, # Only applicable if the method is claimwebsite. Indicates whether or not to take the claim from another account in case there is a conflict.
+        "accountId": "A String", # The ID of the targeted account. Only defined if the method is get, delete or claimwebsite.
       },
     ],
   }
@@ -175,7 +196,7 @@
     "entries": [ # The result of the execution of the batch requests.
       { # A batch entry encoding a single non-batch accounts response.
         "batchId": 42, # The ID of the request entry this entry responds to.
-        "account": { # Account data. # The retrieved, created, or updated account. Not defined if the method was delete.
+        "account": { # Account data. # The retrieved, created, or updated account. Not defined if the method was delete or claimwebsite.
             "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
             "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
             "name": "A String", # Display name for the account.
diff --git a/docs/dyn/content_v2.accountshipping.html b/docs/dyn/content_v2.accountshipping.html
deleted file mode 100644
index e5e11b6..0000000
--- a/docs/dyn/content_v2.accountshipping.html
+++ /dev/null
@@ -1,1281 +0,0 @@
-<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="content_v2.html">Content API for Shopping</a> . <a href="content_v2.accountshipping.html">accountshipping</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#custombatch">custombatch(body, dryRun=None)</a></code></p>
-<p class="firstline">Retrieves and updates the shipping settings of multiple accounts in a single request.</p>
-<p class="toc_element">
-  <code><a href="#get">get(merchantId, accountId)</a></code></p>
-<p class="firstline">Retrieves the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
-<p class="toc_element">
-  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
-<p class="firstline">Lists the shipping settings of the sub-accounts in your Merchant Center account. This method can only be called for multi-client accounts.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(merchantId, accountId, body, dryRun=None)</a></code></p>
-<p class="firstline">Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(merchantId, accountId, body, dryRun=None)</a></code></p>
-<p class="firstline">Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="custombatch">custombatch(body, dryRun=None)</code>
-  <pre>Retrieves and updates the shipping settings of multiple accounts in a single request.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "entries": [ # The request entries to be processed in the batch.
-      { # A batch entry encoding a single non-batch accountshipping request.
-        "batchId": 42, # An entry ID, unique within the batch request.
-        "method": "A String",
-        "accountShipping": { # The shipping settings of a merchant account. # The account shipping settings to update. Only defined if the method is update.
-          "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-          "carrierRates": [ # Carrier-based shipping calculations.
-            { # A carrier-calculated shipping rate.
-              "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-              "name": "A String", # The name of the carrier rate.
-              "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-              "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-              "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-              "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-              "modifierFlatRate": { # Additive shipping rate modifier.
-                "currency": "A String", # The currency of the price.
-                "value": "A String", # The price represented as a number.
-              },
-            },
-          ],
-          "locationGroups": [ # Location groups for shipping.
-            { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-              "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-                { # A postal code range, that can be either:
-                    # - A range of postal codes (e.g., start=12340, end=12359)
-                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                },
-              ],
-              "country": "A String", # The CLDR territory code of the country in which this location group is.
-              "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-                "A String",
-              ],
-              "name": "A String", # The name of the location group.
-              "postalCodes": [ # A postal code representing a city or a set of cities.
-                  # - A single postal code (e.g., 12345)
-                  # - A postal code prefix followed by a star (e.g., 1234*)
-                "A String",
-              ],
-            },
-          ],
-          "services": [ # Shipping services describing shipping fees calculation.
-            { # Shipping services provided in a country.
-              "name": "A String", # The name of this shipping service.
-              "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-              "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-                "rateTable": "A String", # Name of the rate table to use for the calculation.
-                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-                  "currency": "A String", # The currency of the price.
-                  "value": "A String", # The price represented as a number.
-                },
-              },
-              "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-              "active": True or False, # Whether the shipping service is available.
-              "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-                  # - The tree root should have no condition and no calculation method.
-                  # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-                  # - The last child of an element must have no condition and matches all elements not previously matched.
-                  # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-                "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-                  "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-                  "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-                  "rateTable": "A String", # Name of the rate table to use for the calculation.
-                  "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-                  "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                },
-                "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                    "value": "A String", # The weight represented as a number.
-                    "unit": "A String", # The weight unit.
-                  },
-                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                      # - A range of postal codes (e.g., start=12340, end=12359)
-                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                  },
-                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-                },
-                "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-                  # Object with schema name: AccountShippingShippingServiceCostRule
-                ],
-              },
-            },
-          ],
-          "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-          "rateTables": [ # Rate tables definitions.
-            { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-              "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-                {
-                  "rate": { # The rate applicable if the cell conditions are matched.
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                  "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-                    "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                      "value": "A String", # The weight represented as a number.
-                      "unit": "A String", # The weight unit.
-                    },
-                    "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-                    "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-                    "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                        # - A range of postal codes (e.g., start=12340, end=12359)
-                        # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                      "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                      "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                    },
-                    "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                      "currency": "A String", # The currency of the price.
-                      "value": "A String", # The price represented as a number.
-                    },
-                    "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-                    "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-                  },
-                },
-              ],
-              "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-              "name": "A String", # The name of the rate table.
-            },
-          ],
-        },
-        "merchantId": "A String", # The ID of the managing account.
-        "accountId": "A String", # The ID of the account for which to get/update account shipping settings.
-      },
-    ],
-  }
-
-  dryRun: boolean, Flag to run the request in dry-run mode.
-
-Returns:
-  An object of the form:
-
-    {
-    "kind": "content#accountshippingCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingCustomBatchResponse".
-    "entries": [ # The result of the execution of the batch requests.
-      { # A batch entry encoding a single non-batch accountshipping response.
-        "batchId": 42, # The ID of the request entry this entry responds to.
-        "kind": "content#accountshippingCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingCustomBatchResponseEntry".
-        "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
-          "message": "A String", # The message of the first error in errors.
-          "code": 42, # The HTTP status of the first error in errors.
-          "errors": [ # A list of errors.
-            { # An error returned by the API.
-              "reason": "A String", # The error code.
-              "domain": "A String", # The domain of the error.
-              "message": "A String", # A description of the error.
-            },
-          ],
-        },
-        "accountShipping": { # The shipping settings of a merchant account. # The retrieved or updated account shipping settings.
-          "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-          "carrierRates": [ # Carrier-based shipping calculations.
-            { # A carrier-calculated shipping rate.
-              "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-              "name": "A String", # The name of the carrier rate.
-              "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-              "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-              "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-              "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-              "modifierFlatRate": { # Additive shipping rate modifier.
-                "currency": "A String", # The currency of the price.
-                "value": "A String", # The price represented as a number.
-              },
-            },
-          ],
-          "locationGroups": [ # Location groups for shipping.
-            { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-              "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-                { # A postal code range, that can be either:
-                    # - A range of postal codes (e.g., start=12340, end=12359)
-                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                },
-              ],
-              "country": "A String", # The CLDR territory code of the country in which this location group is.
-              "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-                "A String",
-              ],
-              "name": "A String", # The name of the location group.
-              "postalCodes": [ # A postal code representing a city or a set of cities.
-                  # - A single postal code (e.g., 12345)
-                  # - A postal code prefix followed by a star (e.g., 1234*)
-                "A String",
-              ],
-            },
-          ],
-          "services": [ # Shipping services describing shipping fees calculation.
-            { # Shipping services provided in a country.
-              "name": "A String", # The name of this shipping service.
-              "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-              "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-                "rateTable": "A String", # Name of the rate table to use for the calculation.
-                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-                  "currency": "A String", # The currency of the price.
-                  "value": "A String", # The price represented as a number.
-                },
-              },
-              "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-              "active": True or False, # Whether the shipping service is available.
-              "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-                  # - The tree root should have no condition and no calculation method.
-                  # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-                  # - The last child of an element must have no condition and matches all elements not previously matched.
-                  # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-                "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-                  "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-                  "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-                  "rateTable": "A String", # Name of the rate table to use for the calculation.
-                  "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-                  "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                },
-                "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                    "value": "A String", # The weight represented as a number.
-                    "unit": "A String", # The weight unit.
-                  },
-                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                      # - A range of postal codes (e.g., start=12340, end=12359)
-                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                  },
-                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-                },
-                "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-                  # Object with schema name: AccountShippingShippingServiceCostRule
-                ],
-              },
-            },
-          ],
-          "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-          "rateTables": [ # Rate tables definitions.
-            { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-              "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-                {
-                  "rate": { # The rate applicable if the cell conditions are matched.
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                  "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-                    "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                      "value": "A String", # The weight represented as a number.
-                      "unit": "A String", # The weight unit.
-                    },
-                    "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-                    "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-                    "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                        # - A range of postal codes (e.g., start=12340, end=12359)
-                        # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                      "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                      "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                    },
-                    "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                      "currency": "A String", # The currency of the price.
-                      "value": "A String", # The price represented as a number.
-                    },
-                    "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-                    "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-                  },
-                },
-              ],
-              "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-              "name": "A String", # The name of the rate table.
-            },
-          ],
-        },
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(merchantId, accountId)</code>
-  <pre>Retrieves the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.
-
-Args:
-  merchantId: string, The ID of the managing account. (required)
-  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
-
-Returns:
-  An object of the form:
-
-    { # The shipping settings of a merchant account.
-    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-    "carrierRates": [ # Carrier-based shipping calculations.
-      { # A carrier-calculated shipping rate.
-        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-        "name": "A String", # The name of the carrier rate.
-        "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-        "modifierFlatRate": { # Additive shipping rate modifier.
-          "currency": "A String", # The currency of the price.
-          "value": "A String", # The price represented as a number.
-        },
-      },
-    ],
-    "locationGroups": [ # Location groups for shipping.
-      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-          { # A postal code range, that can be either:
-              # - A range of postal codes (e.g., start=12340, end=12359)
-              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-            "start": "A String", # The first (inclusive) postal code or prefix of the range.
-            "end": "A String", # The last (inclusive) postal code or prefix of the range.
-          },
-        ],
-        "country": "A String", # The CLDR territory code of the country in which this location group is.
-        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-          "A String",
-        ],
-        "name": "A String", # The name of the location group.
-        "postalCodes": [ # A postal code representing a city or a set of cities.
-            # - A single postal code (e.g., 12345)
-            # - A postal code prefix followed by a star (e.g., 1234*)
-          "A String",
-        ],
-      },
-    ],
-    "services": [ # Shipping services describing shipping fees calculation.
-      { # Shipping services provided in a country.
-        "name": "A String", # The name of this shipping service.
-        "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-        "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-          "rateTable": "A String", # Name of the rate table to use for the calculation.
-          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-        },
-        "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-        "active": True or False, # Whether the shipping service is available.
-        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-            # - The tree root should have no condition and no calculation method.
-            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-            # - The last child of an element must have no condition and matches all elements not previously matched.
-            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-            "rateTable": "A String", # Name of the rate table to use for the calculation.
-            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-          },
-          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-              "value": "A String", # The weight represented as a number.
-              "unit": "A String", # The weight unit.
-            },
-            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                # - A range of postal codes (e.g., start=12340, end=12359)
-                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-              "start": "A String", # The first (inclusive) postal code or prefix of the range.
-              "end": "A String", # The last (inclusive) postal code or prefix of the range.
-            },
-            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-          },
-          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-            # Object with schema name: AccountShippingShippingServiceCostRule
-          ],
-        },
-      },
-    ],
-    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-    "rateTables": [ # Rate tables definitions.
-      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-          {
-            "rate": { # The rate applicable if the cell conditions are matched.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                "value": "A String", # The weight represented as a number.
-                "unit": "A String", # The weight unit.
-              },
-              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                  # - A range of postal codes (e.g., start=12340, end=12359)
-                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                "end": "A String", # The last (inclusive) postal code or prefix of the range.
-              },
-              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                "currency": "A String", # The currency of the price.
-                "value": "A String", # The price represented as a number.
-              },
-              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-            },
-          },
-        ],
-        "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-        "name": "A String", # The name of the rate table.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
-  <pre>Lists the shipping settings of the sub-accounts in your Merchant Center account. This method can only be called for multi-client accounts.
-
-Args:
-  merchantId: string, The ID of the managing account. (required)
-  pageToken: string, The token returned by the previous request.
-  maxResults: integer, The maximum number of shipping settings to return in the response, used for paging.
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The token for the retrieval of the next page of account shipping settings.
-    "kind": "content#accountshippingListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingListResponse".
-    "resources": [
-      { # The shipping settings of a merchant account.
-        "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-        "carrierRates": [ # Carrier-based shipping calculations.
-          { # A carrier-calculated shipping rate.
-            "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-            "name": "A String", # The name of the carrier rate.
-            "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-            "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-            "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-            "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-            "modifierFlatRate": { # Additive shipping rate modifier.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-          },
-        ],
-        "locationGroups": [ # Location groups for shipping.
-          { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-            "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-              { # A postal code range, that can be either:
-                  # - A range of postal codes (e.g., start=12340, end=12359)
-                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                "end": "A String", # The last (inclusive) postal code or prefix of the range.
-              },
-            ],
-            "country": "A String", # The CLDR territory code of the country in which this location group is.
-            "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-              "A String",
-            ],
-            "name": "A String", # The name of the location group.
-            "postalCodes": [ # A postal code representing a city or a set of cities.
-                # - A single postal code (e.g., 12345)
-                # - A postal code prefix followed by a star (e.g., 1234*)
-              "A String",
-            ],
-          },
-        ],
-        "services": [ # Shipping services describing shipping fees calculation.
-          { # Shipping services provided in a country.
-            "name": "A String", # The name of this shipping service.
-            "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-            "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-            "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-              "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-              "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-              "rateTable": "A String", # Name of the rate table to use for the calculation.
-              "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-              "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-                "currency": "A String", # The currency of the price.
-                "value": "A String", # The price represented as a number.
-              },
-            },
-            "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-            "active": True or False, # Whether the shipping service is available.
-            "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-                # - The tree root should have no condition and no calculation method.
-                # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-                # - The last child of an element must have no condition and matches all elements not previously matched.
-                # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-                "rateTable": "A String", # Name of the rate table to use for the calculation.
-                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-                  "currency": "A String", # The currency of the price.
-                  "value": "A String", # The price represented as a number.
-                },
-              },
-              "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-                "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                  "value": "A String", # The weight represented as a number.
-                  "unit": "A String", # The weight unit.
-                },
-                "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-                "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-                "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                    # - A range of postal codes (e.g., start=12340, end=12359)
-                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                },
-                "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                  "currency": "A String", # The currency of the price.
-                  "value": "A String", # The price represented as a number.
-                },
-                "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-                "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-              },
-              "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-                # Object with schema name: AccountShippingShippingServiceCostRule
-              ],
-            },
-          },
-        ],
-        "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-        "rateTables": [ # Rate tables definitions.
-          { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-            "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-              {
-                "rate": { # The rate applicable if the cell conditions are matched.
-                  "currency": "A String", # The currency of the price.
-                  "value": "A String", # The price represented as a number.
-                },
-                "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                    "value": "A String", # The weight represented as a number.
-                    "unit": "A String", # The weight unit.
-                  },
-                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                      # - A range of postal codes (e.g., start=12340, end=12359)
-                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
-                  },
-                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                    "currency": "A String", # The currency of the price.
-                    "value": "A String", # The price represented as a number.
-                  },
-                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-                },
-              },
-            ],
-            "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-            "name": "A String", # The name of the rate table.
-          },
-        ],
-      },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(merchantId, accountId, body, dryRun=None)</code>
-  <pre>Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account. This method supports patch semantics.
-
-Args:
-  merchantId: string, The ID of the managing account. (required)
-  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The shipping settings of a merchant account.
-  "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-  "carrierRates": [ # Carrier-based shipping calculations.
-    { # A carrier-calculated shipping rate.
-      "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-      "name": "A String", # The name of the carrier rate.
-      "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-      "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-      "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-      "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-      "modifierFlatRate": { # Additive shipping rate modifier.
-        "currency": "A String", # The currency of the price.
-        "value": "A String", # The price represented as a number.
-      },
-    },
-  ],
-  "locationGroups": [ # Location groups for shipping.
-    { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-      "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-        { # A postal code range, that can be either:
-            # - A range of postal codes (e.g., start=12340, end=12359)
-            # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-          "start": "A String", # The first (inclusive) postal code or prefix of the range.
-          "end": "A String", # The last (inclusive) postal code or prefix of the range.
-        },
-      ],
-      "country": "A String", # The CLDR territory code of the country in which this location group is.
-      "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-        "A String",
-      ],
-      "name": "A String", # The name of the location group.
-      "postalCodes": [ # A postal code representing a city or a set of cities.
-          # - A single postal code (e.g., 12345)
-          # - A postal code prefix followed by a star (e.g., 1234*)
-        "A String",
-      ],
-    },
-  ],
-  "services": [ # Shipping services describing shipping fees calculation.
-    { # Shipping services provided in a country.
-      "name": "A String", # The name of this shipping service.
-      "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-      "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-      "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-        "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-        "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-        "rateTable": "A String", # Name of the rate table to use for the calculation.
-        "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-        "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-          "currency": "A String", # The currency of the price.
-          "value": "A String", # The price represented as a number.
-        },
-      },
-      "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-      "active": True or False, # Whether the shipping service is available.
-      "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-          # - The tree root should have no condition and no calculation method.
-          # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-          # - The last child of an element must have no condition and matches all elements not previously matched.
-          # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-          "rateTable": "A String", # Name of the rate table to use for the calculation.
-          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-        },
-        "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-          "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-            "value": "A String", # The weight represented as a number.
-            "unit": "A String", # The weight unit.
-          },
-          "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-          "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-          "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-              # - A range of postal codes (e.g., start=12340, end=12359)
-              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-            "start": "A String", # The first (inclusive) postal code or prefix of the range.
-            "end": "A String", # The last (inclusive) postal code or prefix of the range.
-          },
-          "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-          "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-          "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-        },
-        "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-          # Object with schema name: AccountShippingShippingServiceCostRule
-        ],
-      },
-    },
-  ],
-  "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-  "rateTables": [ # Rate tables definitions.
-    { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-      "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-        {
-          "rate": { # The rate applicable if the cell conditions are matched.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-          "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-              "value": "A String", # The weight represented as a number.
-              "unit": "A String", # The weight unit.
-            },
-            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                # - A range of postal codes (e.g., start=12340, end=12359)
-                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-              "start": "A String", # The first (inclusive) postal code or prefix of the range.
-              "end": "A String", # The last (inclusive) postal code or prefix of the range.
-            },
-            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-          },
-        },
-      ],
-      "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-      "name": "A String", # The name of the rate table.
-    },
-  ],
-}
-
-  dryRun: boolean, Flag to run the request in dry-run mode.
-
-Returns:
-  An object of the form:
-
-    { # The shipping settings of a merchant account.
-    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-    "carrierRates": [ # Carrier-based shipping calculations.
-      { # A carrier-calculated shipping rate.
-        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-        "name": "A String", # The name of the carrier rate.
-        "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-        "modifierFlatRate": { # Additive shipping rate modifier.
-          "currency": "A String", # The currency of the price.
-          "value": "A String", # The price represented as a number.
-        },
-      },
-    ],
-    "locationGroups": [ # Location groups for shipping.
-      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-          { # A postal code range, that can be either:
-              # - A range of postal codes (e.g., start=12340, end=12359)
-              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-            "start": "A String", # The first (inclusive) postal code or prefix of the range.
-            "end": "A String", # The last (inclusive) postal code or prefix of the range.
-          },
-        ],
-        "country": "A String", # The CLDR territory code of the country in which this location group is.
-        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-          "A String",
-        ],
-        "name": "A String", # The name of the location group.
-        "postalCodes": [ # A postal code representing a city or a set of cities.
-            # - A single postal code (e.g., 12345)
-            # - A postal code prefix followed by a star (e.g., 1234*)
-          "A String",
-        ],
-      },
-    ],
-    "services": [ # Shipping services describing shipping fees calculation.
-      { # Shipping services provided in a country.
-        "name": "A String", # The name of this shipping service.
-        "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-        "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-          "rateTable": "A String", # Name of the rate table to use for the calculation.
-          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-        },
-        "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-        "active": True or False, # Whether the shipping service is available.
-        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-            # - The tree root should have no condition and no calculation method.
-            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-            # - The last child of an element must have no condition and matches all elements not previously matched.
-            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-            "rateTable": "A String", # Name of the rate table to use for the calculation.
-            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-          },
-          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-              "value": "A String", # The weight represented as a number.
-              "unit": "A String", # The weight unit.
-            },
-            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                # - A range of postal codes (e.g., start=12340, end=12359)
-                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-              "start": "A String", # The first (inclusive) postal code or prefix of the range.
-              "end": "A String", # The last (inclusive) postal code or prefix of the range.
-            },
-            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-          },
-          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-            # Object with schema name: AccountShippingShippingServiceCostRule
-          ],
-        },
-      },
-    ],
-    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-    "rateTables": [ # Rate tables definitions.
-      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-          {
-            "rate": { # The rate applicable if the cell conditions are matched.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                "value": "A String", # The weight represented as a number.
-                "unit": "A String", # The weight unit.
-              },
-              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                  # - A range of postal codes (e.g., start=12340, end=12359)
-                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                "end": "A String", # The last (inclusive) postal code or prefix of the range.
-              },
-              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                "currency": "A String", # The currency of the price.
-                "value": "A String", # The price represented as a number.
-              },
-              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-            },
-          },
-        ],
-        "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-        "name": "A String", # The name of the rate table.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(merchantId, accountId, body, dryRun=None)</code>
-  <pre>Updates the shipping settings of the account. This method can only be called for accounts to which the managing account has access: either the managing account itself or sub-accounts if the managing account is a multi-client account.
-
-Args:
-  merchantId: string, The ID of the managing account. (required)
-  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The shipping settings of a merchant account.
-  "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-  "carrierRates": [ # Carrier-based shipping calculations.
-    { # A carrier-calculated shipping rate.
-      "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-      "name": "A String", # The name of the carrier rate.
-      "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-      "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-      "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-      "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-      "modifierFlatRate": { # Additive shipping rate modifier.
-        "currency": "A String", # The currency of the price.
-        "value": "A String", # The price represented as a number.
-      },
-    },
-  ],
-  "locationGroups": [ # Location groups for shipping.
-    { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-      "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-        { # A postal code range, that can be either:
-            # - A range of postal codes (e.g., start=12340, end=12359)
-            # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-          "start": "A String", # The first (inclusive) postal code or prefix of the range.
-          "end": "A String", # The last (inclusive) postal code or prefix of the range.
-        },
-      ],
-      "country": "A String", # The CLDR territory code of the country in which this location group is.
-      "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-        "A String",
-      ],
-      "name": "A String", # The name of the location group.
-      "postalCodes": [ # A postal code representing a city or a set of cities.
-          # - A single postal code (e.g., 12345)
-          # - A postal code prefix followed by a star (e.g., 1234*)
-        "A String",
-      ],
-    },
-  ],
-  "services": [ # Shipping services describing shipping fees calculation.
-    { # Shipping services provided in a country.
-      "name": "A String", # The name of this shipping service.
-      "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-      "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-      "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-        "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-        "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-        "rateTable": "A String", # Name of the rate table to use for the calculation.
-        "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-        "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-          "currency": "A String", # The currency of the price.
-          "value": "A String", # The price represented as a number.
-        },
-      },
-      "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-      "active": True or False, # Whether the shipping service is available.
-      "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-          # - The tree root should have no condition and no calculation method.
-          # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-          # - The last child of an element must have no condition and matches all elements not previously matched.
-          # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-          "rateTable": "A String", # Name of the rate table to use for the calculation.
-          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-        },
-        "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-          "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-            "value": "A String", # The weight represented as a number.
-            "unit": "A String", # The weight unit.
-          },
-          "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-          "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-          "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-              # - A range of postal codes (e.g., start=12340, end=12359)
-              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-            "start": "A String", # The first (inclusive) postal code or prefix of the range.
-            "end": "A String", # The last (inclusive) postal code or prefix of the range.
-          },
-          "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-          "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-          "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-        },
-        "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-          # Object with schema name: AccountShippingShippingServiceCostRule
-        ],
-      },
-    },
-  ],
-  "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-  "rateTables": [ # Rate tables definitions.
-    { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-      "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-        {
-          "rate": { # The rate applicable if the cell conditions are matched.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-          "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-              "value": "A String", # The weight represented as a number.
-              "unit": "A String", # The weight unit.
-            },
-            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                # - A range of postal codes (e.g., start=12340, end=12359)
-                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-              "start": "A String", # The first (inclusive) postal code or prefix of the range.
-              "end": "A String", # The last (inclusive) postal code or prefix of the range.
-            },
-            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-          },
-        },
-      ],
-      "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-      "name": "A String", # The name of the rate table.
-    },
-  ],
-}
-
-  dryRun: boolean, Flag to run the request in dry-run mode.
-
-Returns:
-  An object of the form:
-
-    { # The shipping settings of a merchant account.
-    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
-    "carrierRates": [ # Carrier-based shipping calculations.
-      { # A carrier-calculated shipping rate.
-        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
-        "name": "A String", # The name of the carrier rate.
-        "saleCountry": "A String", # The sale country for which this carrier rate is valid, represented as a CLDR territory code.
-        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
-        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
-        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
-        "modifierFlatRate": { # Additive shipping rate modifier.
-          "currency": "A String", # The currency of the price.
-          "value": "A String", # The price represented as a number.
-        },
-      },
-    ],
-    "locationGroups": [ # Location groups for shipping.
-      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
-        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
-          { # A postal code range, that can be either:
-              # - A range of postal codes (e.g., start=12340, end=12359)
-              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-            "start": "A String", # The first (inclusive) postal code or prefix of the range.
-            "end": "A String", # The last (inclusive) postal code or prefix of the range.
-          },
-        ],
-        "country": "A String", # The CLDR territory code of the country in which this location group is.
-        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
-          "A String",
-        ],
-        "name": "A String", # The name of the location group.
-        "postalCodes": [ # A postal code representing a city or a set of cities.
-            # - A single postal code (e.g., 12345)
-            # - A postal code prefix followed by a star (e.g., 1234*)
-          "A String",
-        ],
-      },
-    ],
-    "services": [ # Shipping services describing shipping fees calculation.
-      { # Shipping services provided in a country.
-        "name": "A String", # The name of this shipping service.
-        "saleCountry": "A String", # The CLDR territory code of the sale country for which this service can be used.
-        "maxDaysInTransit": "A String", # The maximum number of days in transit. Must be a value between 0 and 250 included. A value of 0 means same day delivery.
-        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
-          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-          "rateTable": "A String", # Name of the rate table to use for the calculation.
-          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-            "currency": "A String", # The currency of the price.
-            "value": "A String", # The price represented as a number.
-          },
-        },
-        "minDaysInTransit": "A String", # The minimum number of days in transit. Must be a value between 0 and maxDaysIntransit included. A value of 0 means same day delivery.
-        "active": True or False, # Whether the shipping service is available.
-        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
-            # - The tree root should have no condition and no calculation method.
-            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
-            # - The last child of an element must have no condition and matches all elements not previously matched.
-            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
-          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
-            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
-            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
-            "rateTable": "A String", # Name of the rate table to use for the calculation.
-            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
-            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-          },
-          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
-            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-              "value": "A String", # The weight represented as a number.
-              "unit": "A String", # The weight unit.
-            },
-            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                # - A range of postal codes (e.g., start=12340, end=12359)
-                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-              "start": "A String", # The first (inclusive) postal code or prefix of the range.
-              "end": "A String", # The last (inclusive) postal code or prefix of the range.
-            },
-            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-          },
-          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
-            # Object with schema name: AccountShippingShippingServiceCostRule
-          ],
-        },
-      },
-    ],
-    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
-    "rateTables": [ # Rate tables definitions.
-      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
-        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
-          {
-            "rate": { # The rate applicable if the cell conditions are matched.
-              "currency": "A String", # The currency of the price.
-              "value": "A String", # The price represented as a number.
-            },
-            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
-              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
-                "value": "A String", # The weight represented as a number.
-                "unit": "A String", # The weight unit.
-              },
-              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
-              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
-              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
-                  # - A range of postal codes (e.g., start=12340, end=12359)
-                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
-                "start": "A String", # The first (inclusive) postal code or prefix of the range.
-                "end": "A String", # The last (inclusive) postal code or prefix of the range.
-              },
-              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
-                "currency": "A String", # The currency of the price.
-                "value": "A String", # The price represented as a number.
-              },
-              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
-              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
-            },
-          },
-        ],
-        "saleCountry": "A String", # The sale country for which this table is valid, represented as a CLDR territory code.
-        "name": "A String", # The name of the rate table.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/content_v2.accountstatuses.html b/docs/dyn/content_v2.accountstatuses.html
index 5472b42..0dd7a19 100644
--- a/docs/dyn/content_v2.accountstatuses.html
+++ b/docs/dyn/content_v2.accountstatuses.html
@@ -128,6 +128,7 @@
         },
         "accountStatus": { # The status of an account, i.e., information about its products, which is computed offline and not returned immediately at insertion time. # The requested account status. Defined if and only if the request was successful.
           "kind": "content#accountStatus", # Identifies what kind of resource this is. Value: the fixed string "content#accountStatus".
+          "websiteClaimed": True or False, # Whether the account's website is claimed or not.
           "dataQualityIssues": [ # A list of data quality issues.
             {
               "displayedValue": "A String", # Actual value displayed on the landing page.
@@ -170,6 +171,7 @@
 
     { # The status of an account, i.e., information about its products, which is computed offline and not returned immediately at insertion time.
     "kind": "content#accountStatus", # Identifies what kind of resource this is. Value: the fixed string "content#accountStatus".
+    "websiteClaimed": True or False, # Whether the account's website is claimed or not.
     "dataQualityIssues": [ # A list of data quality issues.
       {
         "displayedValue": "A String", # Actual value displayed on the landing page.
@@ -214,6 +216,7 @@
     "resources": [
       { # The status of an account, i.e., information about its products, which is computed offline and not returned immediately at insertion time.
         "kind": "content#accountStatus", # Identifies what kind of resource this is. Value: the fixed string "content#accountStatus".
+        "websiteClaimed": True or False, # Whether the account's website is claimed or not.
         "dataQualityIssues": [ # A list of data quality issues.
           {
             "displayedValue": "A String", # Actual value displayed on the landing page.
diff --git a/docs/dyn/content_v2.html b/docs/dyn/content_v2.html
index 6337ce1..21702f6 100644
--- a/docs/dyn/content_v2.html
+++ b/docs/dyn/content_v2.html
@@ -80,11 +80,6 @@
 <p class="firstline">Returns the accounts Resource.</p>
 
 <p class="toc_element">
-  <code><a href="content_v2.accountshipping.html">accountshipping()</a></code>
-</p>
-<p class="firstline">Returns the accountshipping Resource.</p>
-
-<p class="toc_element">
   <code><a href="content_v2.accountstatuses.html">accountstatuses()</a></code>
 </p>
 <p class="firstline">Returns the accountstatuses Resource.</p>
diff --git a/docs/dyn/content_v2.orders.html b/docs/dyn/content_v2.orders.html
index e5fad2d..7c9b3a3 100644
--- a/docs/dyn/content_v2.orders.html
+++ b/docs/dyn/content_v2.orders.html
@@ -82,10 +82,10 @@
 <p class="firstline">Sandbox only. Moves a test order from state "inProgress" to state "pendingShipment". This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
   <code><a href="#cancel">cancel(merchantId, orderId, body)</a></code></p>
-<p class="firstline">Cancels all line items in an order. This method can only be called for non-multi-client accounts.</p>
+<p class="firstline">Cancels all line items in an order, making a full refund. This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
   <code><a href="#cancellineitem">cancellineitem(merchantId, orderId, body)</a></code></p>
-<p class="firstline">Cancels a line item. This method can only be called for non-multi-client accounts.</p>
+<p class="firstline">Cancels a line item, making a full refund. This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
   <code><a href="#createtestorder">createtestorder(merchantId, body)</a></code></p>
 <p class="firstline">Sandbox only. Creates a test order. This method can only be called for non-multi-client accounts.</p>
@@ -165,7 +165,7 @@
 
 <div class="method">
     <code class="details" id="cancel">cancel(merchantId, orderId, body)</code>
-  <pre>Cancels all line items in an order. This method can only be called for non-multi-client accounts.
+  <pre>Cancels all line items in an order, making a full refund. This method can only be called for non-multi-client accounts.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
@@ -191,7 +191,7 @@
 
 <div class="method">
     <code class="details" id="cancellineitem">cancellineitem(merchantId, orderId, body)</code>
-  <pre>Cancels a line item. This method can only be called for non-multi-client accounts.
+  <pre>Cancels a line item, making a full refund. This method can only be called for non-multi-client accounts.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
diff --git a/docs/dyn/content_v2.productstatuses.html b/docs/dyn/content_v2.productstatuses.html
index 7977fd4..e807d72 100644
--- a/docs/dyn/content_v2.productstatuses.html
+++ b/docs/dyn/content_v2.productstatuses.html
@@ -75,20 +75,20 @@
 <h1><a href="content_v2.html">Content API for Shopping</a> . <a href="content_v2.productstatuses.html">productstatuses</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#custombatch">custombatch(body)</a></code></p>
+  <code><a href="#custombatch">custombatch(body, includeAttributes=None)</a></code></p>
 <p class="firstline">Gets the statuses of multiple products in a single request. This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
-  <code><a href="#get">get(merchantId, productId)</a></code></p>
+  <code><a href="#get">get(merchantId, productId, includeAttributes=None)</a></code></p>
 <p class="firstline">Gets the status of a product from your Merchant Center account. This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
-  <code><a href="#list">list(merchantId, includeInvalidInsertedItems=None, pageToken=None, maxResults=None)</a></code></p>
+  <code><a href="#list">list(merchantId, includeInvalidInsertedItems=None, pageToken=None, maxResults=None, includeAttributes=None)</a></code></p>
 <p class="firstline">Lists the statuses of the products in your Merchant Center account. This method can only be called for non-multi-client accounts.</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="custombatch">custombatch(body)</code>
+    <code class="details" id="custombatch">custombatch(body, includeAttributes=None)</code>
   <pre>Gets the statuses of multiple products in a single request. This method can only be called for non-multi-client accounts.
 
 Args:
@@ -106,6 +106,7 @@
     ],
   }
 
+  includeAttributes: boolean, Flag to include full product data in the results of this request. The default value is false.
 
 Returns:
   An object of the form:
@@ -161,12 +162,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(merchantId, productId)</code>
+    <code class="details" id="get">get(merchantId, productId, includeAttributes=None)</code>
   <pre>Gets the status of a product from your Merchant Center account. This method can only be called for non-multi-client accounts.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
   productId: string, The ID of the product. (required)
+  includeAttributes: boolean, Flag to include full product data in the result of this get request. The default value is false.
 
 Returns:
   An object of the form:
@@ -202,7 +204,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(merchantId, includeInvalidInsertedItems=None, pageToken=None, maxResults=None)</code>
+    <code class="details" id="list">list(merchantId, includeInvalidInsertedItems=None, pageToken=None, maxResults=None, includeAttributes=None)</code>
   <pre>Lists the statuses of the products in your Merchant Center account. This method can only be called for non-multi-client accounts.
 
 Args:
@@ -210,6 +212,7 @@
   includeInvalidInsertedItems: boolean, Flag to include the invalid inserted items in the result of the list request. By default the invalid items are not shown (the default value is false).
   pageToken: string, The token returned by the previous request.
   maxResults: integer, The maximum number of product statuses to return in the response, used for paging.
+  includeAttributes: boolean, Flag to include full product data in the results of the list request. The default value is false.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/content_v2.shippingsettings.html b/docs/dyn/content_v2.shippingsettings.html
index bf4e978..36f9c84 100644
--- a/docs/dyn/content_v2.shippingsettings.html
+++ b/docs/dyn/content_v2.shippingsettings.html
@@ -106,7 +106,7 @@
 
 {
     "entries": [ # The request entries to be processed in the batch.
-      { # A batch entry encoding a single non-batch accountshipping request.
+      { # A batch entry encoding a single non-batch shippingsettings request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "method": "A String",
         "merchantId": "A String", # The ID of the managing account.
diff --git a/docs/dyn/content_v2sandbox.orders.html b/docs/dyn/content_v2sandbox.orders.html
index f11416e..7b9a80b 100644
--- a/docs/dyn/content_v2sandbox.orders.html
+++ b/docs/dyn/content_v2sandbox.orders.html
@@ -82,10 +82,10 @@
 <p class="firstline">Sandbox only. Moves a test order from state "inProgress" to state "pendingShipment". This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
   <code><a href="#cancel">cancel(merchantId, orderId, body)</a></code></p>
-<p class="firstline">Cancels all line items in an order. This method can only be called for non-multi-client accounts.</p>
+<p class="firstline">Cancels all line items in an order, making a full refund. This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
   <code><a href="#cancellineitem">cancellineitem(merchantId, orderId, body)</a></code></p>
-<p class="firstline">Cancels a line item. This method can only be called for non-multi-client accounts.</p>
+<p class="firstline">Cancels a line item, making a full refund. This method can only be called for non-multi-client accounts.</p>
 <p class="toc_element">
   <code><a href="#createtestorder">createtestorder(merchantId, body)</a></code></p>
 <p class="firstline">Sandbox only. Creates a test order. This method can only be called for non-multi-client accounts.</p>
@@ -165,7 +165,7 @@
 
 <div class="method">
     <code class="details" id="cancel">cancel(merchantId, orderId, body)</code>
-  <pre>Cancels all line items in an order. This method can only be called for non-multi-client accounts.
+  <pre>Cancels all line items in an order, making a full refund. This method can only be called for non-multi-client accounts.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
@@ -191,7 +191,7 @@
 
 <div class="method">
     <code class="details" id="cancellineitem">cancellineitem(merchantId, orderId, body)</code>
-  <pre>Cancels a line item. This method can only be called for non-multi-client accounts.
+  <pre>Cancels a line item, making a full refund. This method can only be called for non-multi-client accounts.
 
 Args:
   merchantId: string, The ID of the managing account. (required)
diff --git a/docs/dyn/dataflow_v1b3.projects.html b/docs/dyn/dataflow_v1b3.projects.html
index a723b9e..0a4d6b7 100644
--- a/docs/dyn/dataflow_v1b3.projects.html
+++ b/docs/dyn/dataflow_v1b3.projects.html
@@ -109,6 +109,10 @@
             #
             # The VM should be identified by the labels attached to the WorkerMessage that
             # this health ping belongs to.
+          "vmStartupTime": "A String", # The time the VM was booted.
+          "reportInterval": "A String", # The interval at which the worker is sending health reports.
+              # The default value of 0 should be interpreted as the field is not being
+              # explicitly set by the worker.
           "pods": [ # The pods running on the worker. See:
               # http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
               #
@@ -118,10 +122,6 @@
               "a_key": "", # Properties of the object.
             },
           ],
-          "reportInterval": "A String", # The interval at which the worker is sending health reports.
-              # The default value of 0 should be interpreted as the field is not being
-              # explicitly set by the worker.
-          "vmStartupTime": "A String", # The time the VM was booted.
           "vmIsHealthy": True or False, # Whether the VM is healthy.
         },
         "labels": { # Labels are used to group WorkerMessages.
@@ -141,11 +141,11 @@
             # go/df-resource-signals.
           "cpuTime": [ # CPU utilization samples.
             { # Modeled after information exposed by /proc/stat.
-              "timestamp": "A String", # Timestamp of the measurement.
-              "rate": 3.14, # Average CPU utilization rate (% non-idle cpu / second) since previous
-                  # sample.
               "totalMs": "A String", # Total active CPU time across all cores (ie., non-idle) in milliseconds
                   # since start-up.
+              "rate": 3.14, # Average CPU utilization rate (% non-idle cpu / second) since previous
+                  # sample.
+              "timestamp": "A String", # Timestamp of the measurement.
             },
           ],
         },
@@ -194,6 +194,7 @@
         "time": "A String", # The timestamp of the worker_message.
       },
     ],
+    "location": "A String", # The location which contains the job
   }
 
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.debug.html b/docs/dyn/dataflow_v1b3.projects.jobs.debug.html
index 6435170..616ccd4 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.debug.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.debug.html
@@ -95,6 +95,7 @@
     "workerId": "A String", # The worker id, i.e., VM hostname.
     "componentId": "A String", # The internal component id for which debug configuration is
         # requested.
+    "location": "A String", # The location which contains the job specified by job_id.
   }
 
   x__xgafv: string, V1 error format.
@@ -123,6 +124,7 @@
 { # Request to send encoded debug information.
     "workerId": "A String", # The worker id, i.e., VM hostname.
     "data": "A String", # The encoded debug information.
+    "location": "A String", # The location which contains the job specified by job_id.
     "componentId": "A String", # The internal component id for which debug information is sent.
   }
 
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.html b/docs/dyn/dataflow_v1b3.projects.jobs.html
index cf4b668..596aac6 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.html
@@ -141,10 +141,21 @@
         # 
         # The name must match the regular expression
         # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "location": "A String", # The location that contains this job.
     "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
         # `JOB_STATE_UPDATED`), this field contains the ID of that job.
     "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
     "labels": { # User-defined labels for this job.
         # 
         # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -156,13 +167,14 @@
         # size.
       "a_key": "A String",
     },
-    "location": "A String", # The location that contains this job.
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
         # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
     "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
       "version": { # A structure describing which components and their versions of the service
           # are required in order to run the job.
@@ -216,49 +228,6 @@
             # multiple pools, in order to match the various computational
             # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-              # are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-              # service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-              # the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-              # will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
-          "metadata": { # Metadata to set on the Google Compute Engine VMs.
-            "a_key": "A String",
-          },
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-              # `TEARDOWN_NEVER`.
-              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-              # down.
-              #
-              # If the workers are not torn down by the service, they will
-              # continue to run and use Google Compute Engine VM resources in the
-              # user's project until they are explicitly terminated by the user.
-              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-              # policy except for small, manually supervised test jobs.
-              #
-              # If unknown or unspecified, the service will attempt to choose a reasonable
-              # default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-              # service will choose a number of threads (according to the number of cores
-              # on the selected machine type for batch, or 1 by convention for streaming).
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "poolArgs": { # Extra arguments for this worker pool.
-            "a_key": "", # Properties of the object. Contains field @type with type URL.
-          },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-              # execute the job.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
           "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
               # using the standard Dataflow task runner.  Users should ignore
               # this field.
@@ -271,17 +240,7 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "root".
             "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-            "vmId": "A String", # The ID string of the VM.
-            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                # access the Cloud Dataflow API.
-              "A String",
-            ],
             "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
               "reportingEnabled": True or False, # Whether to send work progress updates to the service.
               "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -308,14 +267,15 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "wheel".
-            "languageHint": "A String", # The suggested backend language.
-            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                # console.
-            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-            "logDir": "A String", # The directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "vmId": "A String", # The ID string of the VM.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
             "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                 #
                 # When workers access Google Cloud APIs, they logically do so via
@@ -325,6 +285,14 @@
                 # Locators".
                 #
                 # If not specified, the default value is "http://www.googleapis.com/"
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
             "harnessCommand": "A String", # The command to launch the worker harness.
             "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                 # temporary storage.
@@ -334,33 +302,18 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
           },
-          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-              # select a default set of packages which are useful to worker
-              # harnesses written in a particular language.
-          "packages": [ # Packages to be installed on workers.
-            { # The packages that must be installed in order for a worker to run the
-                # steps of the Cloud Dataflow job that will be assigned to its worker
-                # pool.
-                #
-                # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                # might use this to install jars containing the user's code and all of the
-                # various dependencies (libraries, data files, etc.) required in order
-                # for that code to run.
-              "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is:
-                  #
-                  # Google Cloud Storage:
-                  #
-                  #   storage.googleapis.com/{bucket}
-                  #   bucket.storage.googleapis.com/
-            },
-          ],
-          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-            "algorithm": "A String", # The algorithm to use for autoscaling.
-          },
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -386,10 +339,69 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "ipConfiguration": "A String", # Configuration for VM IPs.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "poolArgs": { # Extra arguments for this worker pool.
+            "a_key": "", # Properties of the object. Contains field @type with type URL.
+          },
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
               # attempt to choose a reasonable default.
           "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
               # harness, residing in Google Container Registry.
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
+          "packages": [ # Packages to be installed on workers.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
+              "name": "A String", # The name of the package.
+            },
+          ],
+          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+            "algorithm": "A String", # The algorithm to use for autoscaling.
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "metadata": { # Metadata to set on the Google Compute Engine VMs.
+            "a_key": "A String",
+          },
         },
       ],
     },
@@ -408,16 +420,13 @@
           ],
           "displayData": [ # Transform-specific display data.
             { # Data provided with a pipeline or transform to provide descriptive info.
-              "key": "A String", # The key identifying the display data.
-                  # This is intended to be used as a label for the display data
-                  # when viewed in a dax monitoring system.
               "shortStrValue": "A String", # A possible additional shorter value to display.
                   # For example a java_class_name_value of com.mypackage.MyDoFn
                   # will be stored with MyDoFn as the short_str_value and
                   # com.mypackage.MyDoFn as the java_class_name value.
                   # short_str_value can be displayed and java_class_name_value
                   # will be displayed as a tooltip.
-              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "url": "A String", # An optional full URL.
               "floatValue": 3.14, # Contains value if the data is of float type.
               "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -428,8 +437,11 @@
               "label": "A String", # An optional label to display in a dax UI for the element.
               "boolValue": True or False, # Contains value if the data is of a boolean type.
               "strValue": "A String", # Contains value if the data is of string type.
-              "durationValue": "A String", # Contains value if the data is of duration type.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
               "int64Value": "A String", # Contains value if the data is of int64 type.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
             },
           ],
           "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -440,16 +452,13 @@
       ],
       "displayData": [ # Pipeline level display data.
         { # Data provided with a pipeline or transform to provide descriptive info.
-          "key": "A String", # The key identifying the display data.
-              # This is intended to be used as a label for the display data
-              # when viewed in a dax monitoring system.
           "shortStrValue": "A String", # A possible additional shorter value to display.
               # For example a java_class_name_value of com.mypackage.MyDoFn
               # will be stored with MyDoFn as the short_str_value and
               # com.mypackage.MyDoFn as the java_class_name value.
               # short_str_value can be displayed and java_class_name_value
               # will be displayed as a tooltip.
-          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "url": "A String", # An optional full URL.
           "floatValue": 3.14, # Contains value if the data is of float type.
           "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -460,8 +469,11 @@
           "label": "A String", # An optional label to display in a dax UI for the element.
           "boolValue": True or False, # Contains value if the data is of a boolean type.
           "strValue": "A String", # Contains value if the data is of string type.
-          "durationValue": "A String", # Contains value if the data is of duration type.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
           "int64Value": "A String", # Contains value if the data is of int64 type.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
         },
       ],
       "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -545,17 +557,7 @@
             # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentState": "A String", # The current state of the job.
-        # 
-        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-        # specified.
-        # 
-        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-        # terminal state. After a job has reached a terminal state, no
-        # further state updates may be made.
-        # 
-        # This field may be mutated by the Cloud Dataflow service;
-        # callers cannot mutate it.
+    "currentStateTime": "A String", # The timestamp associated with the current state.
     "tempFiles": [ # A set of files the system should be aware of that are used
         # for temporary storage. These temporary files will be
         # removed on job completion.
@@ -570,11 +572,17 @@
         #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
+    "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+      { # A message describing the state of a particular execution stage.
+        "executionStageName": "A String", # The name of the execution stage.
+        "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+        "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+      },
+    ],
     "type": "A String", # The type of Cloud Dataflow job.
-    "id": "A String", # The unique ID of this job.
-        # 
-        # This field is set by the Cloud Dataflow service when the Job is
-        # created, and is immutable for the life of the job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
     "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
         # of the job it replaced.
         # 
@@ -631,10 +639,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -646,13 +665,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -706,49 +726,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -761,17 +738,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -798,14 +765,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -815,6 +783,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -824,33 +800,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -876,10 +837,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -898,16 +918,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -918,8 +935,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -930,16 +950,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -950,8 +967,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -1035,17 +1055,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -1060,11 +1070,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
@@ -1128,10 +1144,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -1143,13 +1170,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -1203,49 +1231,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -1258,17 +1243,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -1295,14 +1270,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -1312,6 +1288,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -1321,33 +1305,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -1373,10 +1342,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -1395,16 +1423,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1415,8 +1440,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -1427,16 +1455,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1447,8 +1472,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -1532,17 +1560,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -1557,11 +1575,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
@@ -1615,12 +1639,9 @@
             # This holds the count of the aggregated values and is used in combination
             # with mean_sum above to obtain the actual mean aggregate value.
             # The only possible value type is Long.
-        "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
-            # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
-            # The specified aggregation kind is case-insensitive.
-            #
-            # If omitted, this is not an aggregated value but instead
-            # a single metric sample value.
+        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+            # reporting work progress; it will be filled in responses from the
+            # metrics API.
         "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
             # possible value type is a list of Values whose type can be Long, Double,
             # or String, according to the metric's type.  All Values in the list must
@@ -1639,19 +1660,23 @@
             "a_key": "A String",
           },
         },
-        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
-            # This holds the sum of the aggregated values and is used in combination
-            # with mean_count below to obtain the actual mean aggregate value.
-            # The only possible value types are Long and Double.
         "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
             # value accumulated since the worker started working on this WorkItem.
             # By default this is false, indicating that this metric is reported
             # as a delta that is not associated with any WorkItem.
-        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
-            # reporting work progress; it will be filled in responses from the
-            # metrics API.
+        "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+            # "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
+            # The specified aggregation kind is case-insensitive.
+            #
+            # If omitted, this is not an aggregated value but instead
+            # a single metric sample value.
         "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
             # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+            # This holds the sum of the aggregated values and is used in combination
+            # with mean_count below to obtain the actual mean aggregate value.
+            # The only possible value types are Long and Double.
+        "distribution": "", # A struct value describing properties of a distribution of numeric values.
         "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
             # service.
       },
@@ -1685,6 +1710,11 @@
     { # Response to a request to list Cloud Dataflow jobs.  This may be a partial
       # response, depending on the page size in the ListJobsRequest.
     "nextPageToken": "A String", # Set if there may be more results than fit in this response.
+    "failedLocation": [ # Zero or more messages describing locations that failed to respond.
+      { # Indicates which location failed to respond to a request for data.
+        "name": "A String", # The name of the failed location.
+      },
+    ],
     "jobs": [ # A subset of the requested job information.
       { # Defines a job to be run by the Cloud Dataflow service.
           "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
@@ -1710,10 +1740,21 @@
               #
               # The name must match the regular expression
               # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-          "currentStateTime": "A String", # The timestamp associated with the current state.
+          "location": "A String", # The location that contains this job.
           "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
               # `JOB_STATE_UPDATED`), this field contains the ID of that job.
           "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+          "currentState": "A String", # The current state of the job.
+              #
+              # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+              # specified.
+              #
+              # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+              # terminal state. After a job has reached a terminal state, no
+              # further state updates may be made.
+              #
+              # This field may be mutated by the Cloud Dataflow service;
+              # callers cannot mutate it.
           "labels": { # User-defined labels for this job.
               #
               # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -1725,13 +1766,14 @@
               # size.
             "a_key": "A String",
           },
-          "location": "A String", # The location that contains this job.
-          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-              # Cloud Dataflow service.
           "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
               # corresponding name prefixes of the new job.
             "a_key": "A String",
           },
+          "id": "A String", # The unique ID of this job.
+              #
+              # This field is set by the Cloud Dataflow service when the Job is
+              # created, and is immutable for the life of the job.
           "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
             "version": { # A structure describing which components and their versions of the service
                 # are required in order to run the job.
@@ -1785,49 +1827,6 @@
                   # multiple pools, in order to match the various computational
                   # requirements of the various stages of the job.
                 "diskSourceImage": "A String", # Fully qualified source image for disks.
-                "ipConfiguration": "A String", # Configuration for VM IPs.
-                "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                    # are supported.
-                "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                    # service will attempt to choose a reasonable default.
-                "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                    # the service will use the network "default".
-                "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                    # will attempt to choose a reasonable default.
-                "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                    # attempt to choose a reasonable default.
-                "metadata": { # Metadata to set on the Google Compute Engine VMs.
-                  "a_key": "A String",
-                },
-                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                    # Compute Engine API.
-                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                    # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                    # `TEARDOWN_NEVER`.
-                    # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                    # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                    # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                    # down.
-                    #
-                    # If the workers are not torn down by the service, they will
-                    # continue to run and use Google Compute Engine VM resources in the
-                    # user's project until they are explicitly terminated by the user.
-                    # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                    # policy except for small, manually supervised test jobs.
-                    #
-                    # If unknown or unspecified, the service will attempt to choose a reasonable
-                    # default.
-                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                    # service will choose a number of threads (according to the number of cores
-                    # on the selected machine type for batch, or 1 by convention for streaming).
-                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                    # the form "regions/REGION/subnetworks/SUBNETWORK".
-                "poolArgs": { # Extra arguments for this worker pool.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                    # execute the job.  If zero or unspecified, the service will
-                    # attempt to choose a reasonable default.
                 "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                     # using the standard Dataflow task runner.  Users should ignore
                     # this field.
@@ -1840,17 +1839,7 @@
                       # Google Cloud Storage:
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
-                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                      # taskrunner; e.g. "root".
                   "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-                  "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-                  "vmId": "A String", # The ID string of the VM.
-                  "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-                  "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-                  "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                      # access the Cloud Dataflow API.
-                    "A String",
-                  ],
                   "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                     "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                     "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -1877,14 +1866,15 @@
                         #   storage.googleapis.com/{bucket}/{object}
                         #   bucket.storage.googleapis.com/{object}
                   },
-                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                      # taskrunner; e.g. "wheel".
-                  "languageHint": "A String", # The suggested backend language.
-                  "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                      # console.
-                  "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-                  "logDir": "A String", # The directory on the VM to store logs.
-                  "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                  "vmId": "A String", # The ID string of the VM.
+                  "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                  "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                  "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                      # access the Cloud Dataflow API.
+                    "A String",
+                  ],
+                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "root".
                   "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                       #
                       # When workers access Google Cloud APIs, they logically do so via
@@ -1894,6 +1884,14 @@
                       # Locators".
                       #
                       # If not specified, the default value is "http://www.googleapis.com/"
+                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "wheel".
+                  "languageHint": "A String", # The suggested backend language.
+                  "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                      # console.
+                  "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                  "logDir": "A String", # The directory on the VM to store logs.
+                  "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
                   "harnessCommand": "A String", # The command to launch the worker harness.
                   "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                       # temporary storage.
@@ -1903,33 +1901,18 @@
                       # Google Cloud Storage:
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
+                  "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
                 },
-                "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                    # select a default set of packages which are useful to worker
-                    # harnesses written in a particular language.
-                "packages": [ # Packages to be installed on workers.
-                  { # The packages that must be installed in order for a worker to run the
-                      # steps of the Cloud Dataflow job that will be assigned to its worker
-                      # pool.
-                      #
-                      # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                      # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                      # might use this to install jars containing the user's code and all of the
-                      # various dependencies (libraries, data files, etc.) required in order
-                      # for that code to run.
-                    "name": "A String", # The name of the package.
-                    "location": "A String", # The resource to read the package from. The supported resource type is:
-                        #
-                        # Google Cloud Storage:
-                        #
-                        #   storage.googleapis.com/{bucket}
-                        #   bucket.storage.googleapis.com/
-                  },
-                ],
-                "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-                  "algorithm": "A String", # The algorithm to use for autoscaling.
-                },
+                "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                    # are supported.
+                "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                    # service will attempt to choose a reasonable default.
+                "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                    # the service will use the network "default".
+                "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
                 "dataDisks": [ # Data disks that are used by a VM in this workflow.
                   { # Describes the data disk used by a workflow job.
                     "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -1955,10 +1938,69 @@
                         # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                   },
                 ],
-                "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                    # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                    # `TEARDOWN_NEVER`.
+                    # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                    # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                    # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                    # down.
+                    #
+                    # If the workers are not torn down by the service, they will
+                    # continue to run and use Google Compute Engine VM resources in the
+                    # user's project until they are explicitly terminated by the user.
+                    # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                    # policy except for small, manually supervised test jobs.
+                    #
+                    # If unknown or unspecified, the service will attempt to choose a reasonable
+                    # default.
+                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                    # Compute Engine API.
+                "ipConfiguration": "A String", # Configuration for VM IPs.
+                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                    # service will choose a number of threads (according to the number of cores
+                    # on the selected machine type for batch, or 1 by convention for streaming).
+                "poolArgs": { # Extra arguments for this worker pool.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                    # execute the job.  If zero or unspecified, the service will
                     # attempt to choose a reasonable default.
                 "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                     # harness, residing in Google Container Registry.
+                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                    # the form "regions/REGION/subnetworks/SUBNETWORK".
+                "packages": [ # Packages to be installed on workers.
+                  { # The packages that must be installed in order for a worker to run the
+                      # steps of the Cloud Dataflow job that will be assigned to its worker
+                      # pool.
+                      #
+                      # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                      # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                      # might use this to install jars containing the user's code and all of the
+                      # various dependencies (libraries, data files, etc.) required in order
+                      # for that code to run.
+                    "location": "A String", # The resource to read the package from. The supported resource type is:
+                        #
+                        # Google Cloud Storage:
+                        #
+                        #   storage.googleapis.com/{bucket}
+                        #   bucket.storage.googleapis.com/
+                    "name": "A String", # The name of the package.
+                  },
+                ],
+                "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+                  "algorithm": "A String", # The algorithm to use for autoscaling.
+                },
+                "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                    # select a default set of packages which are useful to worker
+                    # harnesses written in a particular language.
+                "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "metadata": { # Metadata to set on the Google Compute Engine VMs.
+                  "a_key": "A String",
+                },
               },
             ],
           },
@@ -1977,16 +2019,13 @@
                 ],
                 "displayData": [ # Transform-specific display data.
                   { # Data provided with a pipeline or transform to provide descriptive info.
-                    "key": "A String", # The key identifying the display data.
-                        # This is intended to be used as a label for the display data
-                        # when viewed in a dax monitoring system.
                     "shortStrValue": "A String", # A possible additional shorter value to display.
                         # For example a java_class_name_value of com.mypackage.MyDoFn
                         # will be stored with MyDoFn as the short_str_value and
                         # com.mypackage.MyDoFn as the java_class_name value.
                         # short_str_value can be displayed and java_class_name_value
                         # will be displayed as a tooltip.
-                    "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                    "durationValue": "A String", # Contains value if the data is of duration type.
                     "url": "A String", # An optional full URL.
                     "floatValue": 3.14, # Contains value if the data is of float type.
                     "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1997,8 +2036,11 @@
                     "label": "A String", # An optional label to display in a dax UI for the element.
                     "boolValue": True or False, # Contains value if the data is of a boolean type.
                     "strValue": "A String", # Contains value if the data is of string type.
-                    "durationValue": "A String", # Contains value if the data is of duration type.
+                    "key": "A String", # The key identifying the display data.
+                        # This is intended to be used as a label for the display data
+                        # when viewed in a dax monitoring system.
                     "int64Value": "A String", # Contains value if the data is of int64 type.
+                    "timestampValue": "A String", # Contains value if the data is of timestamp type.
                   },
                 ],
                 "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -2009,16 +2051,13 @@
             ],
             "displayData": [ # Pipeline level display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2029,8 +2068,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -2114,17 +2156,7 @@
                   # step with respect to all other steps in the Cloud Dataflow job.
             },
           ],
-          "currentState": "A String", # The current state of the job.
-              #
-              # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-              # specified.
-              #
-              # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-              # terminal state. After a job has reached a terminal state, no
-              # further state updates may be made.
-              #
-              # This field may be mutated by the Cloud Dataflow service;
-              # callers cannot mutate it.
+          "currentStateTime": "A String", # The timestamp associated with the current state.
           "tempFiles": [ # A set of files the system should be aware of that are used
               # for temporary storage. These temporary files will be
               # removed on job completion.
@@ -2139,11 +2171,17 @@
               #    bucket.storage.googleapis.com/{object}
             "A String",
           ],
+          "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+              # callers cannot mutate it.
+            { # A message describing the state of a particular execution stage.
+              "executionStageName": "A String", # The name of the execution stage.
+              "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+              "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+            },
+          ],
           "type": "A String", # The type of Cloud Dataflow job.
-          "id": "A String", # The unique ID of this job.
-              #
-              # This field is set by the Cloud Dataflow service when the Job is
-              # created, and is immutable for the life of the job.
+          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+              # Cloud Dataflow service.
           "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
               # of the job it replaced.
               #
@@ -2165,11 +2203,6 @@
           },
         },
     ],
-    "failedLocation": [ # Zero or more messages describing locations that failed to respond.
-      { # Indicates which location failed to respond to a request for data.
-        "name": "A String", # The name of the failed location.
-      },
-    ],
   }</pre>
 </div>
 
@@ -2221,10 +2254,21 @@
         # 
         # The name must match the regular expression
         # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "location": "A String", # The location that contains this job.
     "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
         # `JOB_STATE_UPDATED`), this field contains the ID of that job.
     "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
     "labels": { # User-defined labels for this job.
         # 
         # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -2236,13 +2280,14 @@
         # size.
       "a_key": "A String",
     },
-    "location": "A String", # The location that contains this job.
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
         # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
     "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
       "version": { # A structure describing which components and their versions of the service
           # are required in order to run the job.
@@ -2296,49 +2341,6 @@
             # multiple pools, in order to match the various computational
             # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-              # are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-              # service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-              # the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-              # will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
-          "metadata": { # Metadata to set on the Google Compute Engine VMs.
-            "a_key": "A String",
-          },
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-              # `TEARDOWN_NEVER`.
-              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-              # down.
-              #
-              # If the workers are not torn down by the service, they will
-              # continue to run and use Google Compute Engine VM resources in the
-              # user's project until they are explicitly terminated by the user.
-              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-              # policy except for small, manually supervised test jobs.
-              #
-              # If unknown or unspecified, the service will attempt to choose a reasonable
-              # default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-              # service will choose a number of threads (according to the number of cores
-              # on the selected machine type for batch, or 1 by convention for streaming).
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "poolArgs": { # Extra arguments for this worker pool.
-            "a_key": "", # Properties of the object. Contains field @type with type URL.
-          },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-              # execute the job.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
           "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
               # using the standard Dataflow task runner.  Users should ignore
               # this field.
@@ -2351,17 +2353,7 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "root".
             "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-            "vmId": "A String", # The ID string of the VM.
-            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                # access the Cloud Dataflow API.
-              "A String",
-            ],
             "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
               "reportingEnabled": True or False, # Whether to send work progress updates to the service.
               "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -2388,14 +2380,15 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "wheel".
-            "languageHint": "A String", # The suggested backend language.
-            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                # console.
-            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-            "logDir": "A String", # The directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "vmId": "A String", # The ID string of the VM.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
             "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                 #
                 # When workers access Google Cloud APIs, they logically do so via
@@ -2405,6 +2398,14 @@
                 # Locators".
                 #
                 # If not specified, the default value is "http://www.googleapis.com/"
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
             "harnessCommand": "A String", # The command to launch the worker harness.
             "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                 # temporary storage.
@@ -2414,33 +2415,18 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
           },
-          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-              # select a default set of packages which are useful to worker
-              # harnesses written in a particular language.
-          "packages": [ # Packages to be installed on workers.
-            { # The packages that must be installed in order for a worker to run the
-                # steps of the Cloud Dataflow job that will be assigned to its worker
-                # pool.
-                #
-                # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                # might use this to install jars containing the user's code and all of the
-                # various dependencies (libraries, data files, etc.) required in order
-                # for that code to run.
-              "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is:
-                  #
-                  # Google Cloud Storage:
-                  #
-                  #   storage.googleapis.com/{bucket}
-                  #   bucket.storage.googleapis.com/
-            },
-          ],
-          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-            "algorithm": "A String", # The algorithm to use for autoscaling.
-          },
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -2466,10 +2452,69 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "ipConfiguration": "A String", # Configuration for VM IPs.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "poolArgs": { # Extra arguments for this worker pool.
+            "a_key": "", # Properties of the object. Contains field @type with type URL.
+          },
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
               # attempt to choose a reasonable default.
           "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
               # harness, residing in Google Container Registry.
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
+          "packages": [ # Packages to be installed on workers.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
+              "name": "A String", # The name of the package.
+            },
+          ],
+          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+            "algorithm": "A String", # The algorithm to use for autoscaling.
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "metadata": { # Metadata to set on the Google Compute Engine VMs.
+            "a_key": "A String",
+          },
         },
       ],
     },
@@ -2488,16 +2533,13 @@
           ],
           "displayData": [ # Transform-specific display data.
             { # Data provided with a pipeline or transform to provide descriptive info.
-              "key": "A String", # The key identifying the display data.
-                  # This is intended to be used as a label for the display data
-                  # when viewed in a dax monitoring system.
               "shortStrValue": "A String", # A possible additional shorter value to display.
                   # For example a java_class_name_value of com.mypackage.MyDoFn
                   # will be stored with MyDoFn as the short_str_value and
                   # com.mypackage.MyDoFn as the java_class_name value.
                   # short_str_value can be displayed and java_class_name_value
                   # will be displayed as a tooltip.
-              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "url": "A String", # An optional full URL.
               "floatValue": 3.14, # Contains value if the data is of float type.
               "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2508,8 +2550,11 @@
               "label": "A String", # An optional label to display in a dax UI for the element.
               "boolValue": True or False, # Contains value if the data is of a boolean type.
               "strValue": "A String", # Contains value if the data is of string type.
-              "durationValue": "A String", # Contains value if the data is of duration type.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
               "int64Value": "A String", # Contains value if the data is of int64 type.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
             },
           ],
           "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -2520,16 +2565,13 @@
       ],
       "displayData": [ # Pipeline level display data.
         { # Data provided with a pipeline or transform to provide descriptive info.
-          "key": "A String", # The key identifying the display data.
-              # This is intended to be used as a label for the display data
-              # when viewed in a dax monitoring system.
           "shortStrValue": "A String", # A possible additional shorter value to display.
               # For example a java_class_name_value of com.mypackage.MyDoFn
               # will be stored with MyDoFn as the short_str_value and
               # com.mypackage.MyDoFn as the java_class_name value.
               # short_str_value can be displayed and java_class_name_value
               # will be displayed as a tooltip.
-          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "url": "A String", # An optional full URL.
           "floatValue": 3.14, # Contains value if the data is of float type.
           "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2540,8 +2582,11 @@
           "label": "A String", # An optional label to display in a dax UI for the element.
           "boolValue": True or False, # Contains value if the data is of a boolean type.
           "strValue": "A String", # Contains value if the data is of string type.
-          "durationValue": "A String", # Contains value if the data is of duration type.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
           "int64Value": "A String", # Contains value if the data is of int64 type.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
         },
       ],
       "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -2625,17 +2670,7 @@
             # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentState": "A String", # The current state of the job.
-        # 
-        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-        # specified.
-        # 
-        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-        # terminal state. After a job has reached a terminal state, no
-        # further state updates may be made.
-        # 
-        # This field may be mutated by the Cloud Dataflow service;
-        # callers cannot mutate it.
+    "currentStateTime": "A String", # The timestamp associated with the current state.
     "tempFiles": [ # A set of files the system should be aware of that are used
         # for temporary storage. These temporary files will be
         # removed on job completion.
@@ -2650,11 +2685,17 @@
         #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
+    "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+      { # A message describing the state of a particular execution stage.
+        "executionStageName": "A String", # The name of the execution stage.
+        "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+        "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+      },
+    ],
     "type": "A String", # The type of Cloud Dataflow job.
-    "id": "A String", # The unique ID of this job.
-        # 
-        # This field is set by the Cloud Dataflow service when the Job is
-        # created, and is immutable for the life of the job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
     "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
         # of the job it replaced.
         # 
@@ -2709,10 +2750,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -2724,13 +2776,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -2784,49 +2837,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -2839,17 +2849,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -2876,14 +2876,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -2893,6 +2894,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -2902,33 +2911,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -2954,10 +2948,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -2976,16 +3029,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2996,8 +3046,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -3008,16 +3061,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -3028,8 +3078,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -3113,17 +3166,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -3138,11 +3181,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.messages.html b/docs/dyn/dataflow_v1b3.projects.jobs.messages.html
index 3861e84..8095fc8 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.messages.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.messages.html
@@ -110,12 +110,36 @@
 
     { # Response to a request to list job messages.
     "nextPageToken": "A String", # The token to obtain the next page of results if there are more.
+    "autoscalingEvents": [ # Autoscaling events in ascending timestamp order.
+      { # A structured message reporting an autoscaling decision made by the Dataflow
+          # service.
+        "eventType": "A String", # The type of autoscaling event to report.
+        "currentNumWorkers": "A String", # The current number of workers the job has.
+        "description": { # A rich message format, including a human readable string, a key for # A message describing why the system decided to adjust the current
+            # number of workers, why it failed, or why the system decided to
+            # not make any changes to the number of workers.
+            # identifying the message, and structured data associated with the message for
+            # programmatic consumption.
+          "messageKey": "A String", # Idenfier for this message type.  Used by external systems to
+              # internationalize or personalize message.
+          "messageText": "A String", # Human-readable version of message.
+          "parameters": [ # The structured data associated with this message.
+            { # Structured data associated with this message.
+              "value": "", # Value for this parameter.
+              "key": "A String", # Key or name for this parameter.
+            },
+          ],
+        },
+        "targetNumWorkers": "A String", # The target number of workers the worker pool wants to resize to use.
+        "time": "A String", # The time this event was emitted to indicate a new target or current
+            # num_workers value.
+      },
+    ],
     "jobMessages": [ # Messages in ascending timestamp order.
       { # A particular message pertaining to a Dataflow job.
         "messageImportance": "A String", # Importance level of the message.
         "messageText": "A String", # The text of the message.
-        "id": "A String", # Identifies the message.  This is automatically generated by the
-            # service; the caller should treat it as an opaque string.
+        "id": "A String", # Deprecated.
         "time": "A String", # The timestamp of the message.
       },
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html b/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
index c62f654..6e1a288 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
@@ -118,7 +118,7 @@
     "workItems": [ # A list of the leased WorkItems.
       { # WorkItem represents basic information about a WorkItem to be executed
           # in the cloud.
-        "configuration": "A String", # Work item-specific configuration as an opaque blob.
+        "reportStatusInterval": "A String", # Recommended reporting interval.
         "leaseExpireTime": "A String", # Time when the lease on this Work will expire.
         "seqMapTask": { # Describes a particular function to invoke. # Additional information for SeqMapTask WorkItems.
           "inputs": [ # Information about each of the inputs.
@@ -498,8 +498,9 @@
                         # this should correspond to the tag of some MultiOutputInfo.
                   },
                 ],
-                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
-                    # intermediate store between the GBK and the CombineValues.
+                "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
+                  "a_key": "", # Properties of the object.
+                },
                 "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
                     # CombineValues instruction lifted into this instruction.
                 "valueCombiningFn": { # The value combining function to invoke.
@@ -513,9 +514,8 @@
                       # to the list of instructions in this input's instruction's
                       # containing MapTask.
                 },
-                "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
-                  "a_key": "", # Properties of the object.
-                },
+                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                    # intermediate store between the GBK and the CombineValues.
               },
               "write": { # An instruction that writes records. # Additional information for Write instructions.
                   # Takes one input, produces no outputs.
@@ -645,26 +645,13 @@
           ],
         },
         "jobId": "A String", # Identifies the workflow job this WorkItem belongs to.
-        "reportStatusInterval": "A String", # Recommended reporting interval.
+        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "streamingSetupTask": { # A task which initializes part of a streaming Dataflow job. # Additional information for StreamingSetupTask WorkItems.
           "workerHarnessPort": 42, # The TCP port used by the worker to communicate with the Dataflow
               # worker harness.
           "drain": True or False, # The user has requested drain.
           "streamingComputationTopology": { # Global topology of the streaming Dataflow job, including all # The global topology of the streaming Dataflow job.
               # computations and their sharded locations.
-            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
-              { # Data disk assignment for a given VM instance.
-                "vmInstance": "A String", # VM instance name the data disks mounted to, for example
-                    # "myproject-1014-104817-4c2-harness-0".
-                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in
-                    # this list defines which persistent directory the disk is mounted to, for
-                    # example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
-                    # { "myproject-1014-104817-4c2-harness-0-disk-1" }.
-                  "A String",
-                ],
-              },
-            ],
-            "persistentStateVersion": 42, # Version number for persistent state.
             "computations": [ # The computations associated with a streaming Dataflow job.
               { # All configuration data for a particular Computation.
                 "inputs": [ # The inputs to the computation.
@@ -751,7 +738,6 @@
                 ],
                 "computationId": "A String", # The ID of the computation.
                 "systemStageName": "A String", # The system stage name.
-                "userStageName": "A String", # The user stage name.
                 "stateFamilies": [ # The state family values.
                   { # State family configuration.
                     "stateFamily": "A String", # The state family value.
@@ -760,10 +746,23 @@
                 ],
               },
             ],
+            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
+              { # Data disk assignment for a given VM instance.
+                "vmInstance": "A String", # VM instance name the data disks mounted to, for example
+                    # "myproject-1014-104817-4c2-harness-0".
+                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in
+                    # this list defines which persistent directory the disk is mounted to, for
+                    # example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
+                    # { "myproject-1014-104817-4c2-harness-0-disk-1" }.
+                  "A String",
+                ],
+              },
+            ],
+            "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
             "userStageToComputationNameMap": { # Maps user stage names to stable computation names.
               "a_key": "A String",
             },
-            "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
+            "persistentStateVersion": 42, # Version number for persistent state.
           },
           "receiveWorkPort": 42, # The TCP port on which the worker should listen for messages from
               # other streaming computation workers.
@@ -773,6 +772,9 @@
           "userStepToStateFamilyNameMap": { # Map from user step names to state families.
             "a_key": "A String",
           },
+          "windmillServicePort": "A String", # If present, the worker must use this port to communicate with Windmill
+              # Service dispatchers. Only applicable when windmill_service_endpoint is
+              # specified.
           "streamingComputationConfigs": [ # Set of computation configuration information.
             { # Configuration information for a single streaming computation.
               "computationId": "A String", # Unique identifier for this computation.
@@ -922,8 +924,9 @@
                             # this should correspond to the tag of some MultiOutputInfo.
                       },
                     ],
-                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
-                        # intermediate store between the GBK and the CombineValues.
+                    "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
+                      "a_key": "", # Properties of the object.
+                    },
                     "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
                         # CombineValues instruction lifted into this instruction.
                     "valueCombiningFn": { # The value combining function to invoke.
@@ -937,9 +940,8 @@
                           # to the list of instructions in this input's instruction's
                           # containing MapTask.
                     },
-                    "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
-                      "a_key": "", # Properties of the object.
-                    },
+                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                        # intermediate store between the GBK and the CombineValues.
                   },
                   "write": { # An instruction that writes records. # Additional information for Write instructions.
                       # Takes one input, produces no outputs.
@@ -1069,6 +1071,9 @@
               ],
             },
           ],
+          "windmillServiceEndpoint": "A String", # If present, the worker must use this endpoint to communicate with Windmill
+              # Service dispatchers, otherwise the worker must continue to use whatever
+              # endpoint it had been using.
         },
         "packages": [ # Any required packages that need to be fetched in order to execute
             # this WorkItem.
@@ -1081,13 +1086,13 @@
               # might use this to install jars containing the user's code and all of the
               # various dependencies (libraries, data files, etc.) required in order
               # for that code to run.
-            "name": "A String", # The name of the package.
             "location": "A String", # The resource to read the package from. The supported resource type is:
                 #
                 # Google Cloud Storage:
                 #
                 #   storage.googleapis.com/{bucket}
                 #   bucket.storage.googleapis.com/
+            "name": "A String", # The name of the package.
           },
         ],
         "shellTask": { # A task which consists of a shell command for the worker to execute. # Additional information for ShellTask WorkItems.
@@ -1096,17 +1101,11 @@
         },
         "streamingComputationTask": { # A task which describes what action should be performed for the specified # Additional information for StreamingComputationTask WorkItems.
             # streaming computation ranges.
-          "dataDisks": [ # Describes the set of data disks this task should apply to.
-            { # Describes mounted data disk.
-              "dataDisk": "A String", # The name of the data disk.
-                  # This name is local to the Google Cloud Platform project and uniquely
-                  # identifies the disk within that project, for example
-                  # "myproject-1014-104817-4c2-harness-0-disk-1".
-            },
-          ],
+          "taskType": "A String", # A type of streaming computation task.
           "computationRanges": [ # Contains ranges of a streaming computation this task should apply to.
             { # Describes full or partial data disk assignment information of the computation
                 # ranges.
+              "computationId": "A String", # The ID of the computation.
               "rangeAssignments": [ # Data disk assignments for ranges from this computation.
                 { # Data disk assignment information for a specific key-range of a sharded
                     # computation.
@@ -1120,10 +1119,16 @@
                       # "myproject-1014-104817-4c2-harness-0-disk-1".
                 },
               ],
-              "computationId": "A String", # The ID of the computation.
             },
           ],
-          "taskType": "A String", # A type of streaming computation task.
+          "dataDisks": [ # Describes the set of data disks this task should apply to.
+            { # Describes mounted data disk.
+              "dataDisk": "A String", # The name of the data disk.
+                  # This name is local to the Google Cloud Platform project and uniquely
+                  # identifies the disk within that project, for example
+                  # "myproject-1014-104817-4c2-harness-0-disk-1".
+            },
+          ],
         },
       },
     ],
@@ -1182,7 +1187,7 @@
               # error message is needed, put the localized message in the error details or
               # localize it in the client. The optional error details may contain arbitrary
               # information about the error. There is a predefined set of error detail types
-              # in the package `google.rpc` which can be used for common error conditions.
+              # in the package `google.rpc` that can be used for common error conditions.
               #
               # # Language mapping
               #
@@ -1205,7 +1210,7 @@
               #     errors.
               #
               # - Workflow errors. A typical workflow has multiple steps. Each step may
-              #     have a `Status` message for error reporting purpose.
+              #     have a `Status` message for error reporting.
               #
               # - Batch operations. If a client uses batch request and batch response, the
               #     `Status` message should be used directly inside batch response, one for
@@ -1409,8 +1414,7 @@
           "end": True or False, # Position is past all other positions. Also useful for the end
               # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
           "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
               # position. A ConcatPosition can be used by a reader of a source that
@@ -1418,7 +1422,8 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "byteOffset": "A String", # Position is a byte offset.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
         "sourceFork": { # DEPRECATED in favor of DynamicSourceSplit. # DEPRECATED in favor of dynamic_source_split.
           "residualSource": { # Specification of one of the bundles produced as a result of splitting # DEPRECATED
@@ -1539,7 +1544,7 @@
               },
             },
           },
-          "primary": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
+          "residual": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
             "derivationMode": "A String", # DEPRECATED
             "source": { # A source that records can be read and decoded from. # DEPRECATED
               "codec": { # The codec to use to decode data read from the source.
@@ -1595,7 +1600,7 @@
               },
             },
           },
-          "residual": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
+          "primary": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
             "derivationMode": "A String", # DEPRECATED
             "source": { # A source that records can be read and decoded from. # DEPRECATED
               "codec": { # The codec to use to decode data read from the source.
@@ -1800,6 +1805,7 @@
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
             },
+            "boolean": True or False, # Boolean value for And, Or.
             "integerList": { # A metric value representing a list of integers. # List of integers, for Set.
               "elements": [ # Elements of the list.
                 { # A representation of an int64, n, that is immune to precision loss when
@@ -1813,6 +1819,9 @@
                 # value accumulated since the worker started working on this WorkItem.
                 # By default this is false, indicating that this counter is reported
                 # as a delta.
+            "shortId": "A String", # The service-generated short identifier for this counter.
+                # The short_id -> (name, metadata) mapping is constant for the lifetime of
+                # a job.
             "floatingPointMean": { # A representation of a floating point mean metric contribution. # Floating point mean aggregation value for Mean.
               "count": { # A representation of an int64, n, that is immune to precision loss when # The number of values being aggregated.
                   # encoded in JSON.
@@ -1821,10 +1830,7 @@
               },
               "sum": 3.14, # The sum of all values being aggregated.
             },
-            "shortId": "A String", # The service-generated short identifier for this counter.
-                # The short_id -> (name, metadata) mapping is constant for the lifetime of
-                # a job.
-            "boolean": True or False, # Boolean value for And, Or.
+            "internal": "", # Value for internally-defined counters used by the Dataflow service.
             "structuredNameAndMetadata": { # A single message which encapsulates structured name and metadata for a given # Counter structured name and metadata.
                 # counter.
               "name": { # Identifies a counter within a per-job namespace. Counters whose structured # Structured name of the counter.
@@ -1848,39 +1854,52 @@
                 "description": "A String", # Human-readable description of the counter semantics.
               },
             },
-            "internal": "", # Value for internally-defined counters used by the Dataflow service.
+            "nameAndKind": { # Basic metadata about a counter. # Counter name and aggregation type.
+              "kind": "A String", # Counter aggregation kind.
+              "name": "A String", # Name of the counter.
+            },
             "integer": { # A representation of an int64, n, that is immune to precision loss when # Integer value for Sum, Max, Min.
                 # encoded in JSON.
               "lowBits": 42, # The low order bits: n & 0xffffffff.
               "highBits": 42, # The high order bits, including the sign: n >> 32.
             },
-            "nameAndKind": { # Basic metadata about a counter. # Counter name and aggregation type.
-              "kind": "A String", # Counter aggregation kind.
-              "name": "A String", # Name of the counter.
-            },
             "distribution": { # A metric value representing a distribution. # Distribution data
               "count": { # A representation of an int64, n, that is immune to precision loss when # The count of the number of elements present in the distribution.
                   # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
-              "max": { # A representation of an int64, n, that is immune to precision loss when # The maximum value present in the distribution.
-                  # encoded in JSON.
-                "lowBits": 42, # The low order bits: n & 0xffffffff.
-                "highBits": 42, # The high order bits, including the sign: n >> 32.
-              },
-              "sumOfSquares": 3.14, # Use a double since the sum of squares is likely to overflow int64.
-              "sum": { # A representation of an int64, n, that is immune to precision loss when # Use an int64 since we'd prefer the added precision. If overflow is a common
-                  # problem we can detect it and use an additional int64 or a double.
-                  # encoded in JSON.
-                "lowBits": 42, # The low order bits: n & 0xffffffff.
-                "highBits": 42, # The high order bits, including the sign: n >> 32.
-              },
               "min": { # A representation of an int64, n, that is immune to precision loss when # The minimum value present in the distribution.
                   # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
+              "max": { # A representation of an int64, n, that is immune to precision loss when # The maximum value present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "sum": { # A representation of an int64, n, that is immune to precision loss when # Use an int64 since we'd prefer the added precision. If overflow is a common
+                  # problem we can detect it and use an additional int64 or a double.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "sumOfSquares": 3.14, # Use a double since the sum of squares is likely to overflow int64.
+              "logBuckets": [ # (Optional) Logarithmic histogram of values.
+                  # Each log may be in no more than one bucket. Order does not matter.
+                { # Bucket of values for Distribution's logarithmic histogram.
+                  "count": "A String", # Number of values in this bucket.
+                  "log": 42, # floor(log2(value)); defined to be zero for nonpositive values.
+                      #   log(-1) = 0
+                      #   log(0) = 0
+                      #   log(1) = 0
+                      #   log(2) = 1
+                      #   log(3) = 1
+                      #   log(4) = 2
+                      #   log(5) = 2
+                },
+              ],
             },
             "stringList": { # A metric value representing a list of strings. # List of strings, for Set.
               "elements": [ # Elements of the list.
@@ -1896,8 +1915,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -1905,7 +1923,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
@@ -1916,12 +1935,9 @@
                 # This holds the count of the aggregated values and is used in combination
                 # with mean_sum above to obtain the actual mean aggregate value.
                 # The only possible value type is Long.
-            "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
-                # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
-                # The specified aggregation kind is case-insensitive.
-                #
-                # If omitted, this is not an aggregated value but instead
-                # a single metric sample value.
+            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+                # reporting work progress; it will be filled in responses from the
+                # metrics API.
             "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
                 # possible value type is a list of Values whose type can be Long, Double,
                 # or String, according to the metric's type.  All Values in the list must
@@ -1940,19 +1956,23 @@
                 "a_key": "A String",
               },
             },
-            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
-                # This holds the sum of the aggregated values and is used in combination
-                # with mean_count below to obtain the actual mean aggregate value.
-                # The only possible value types are Long and Double.
             "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
                 # value accumulated since the worker started working on this WorkItem.
                 # By default this is false, indicating that this metric is reported
                 # as a delta that is not associated with any WorkItem.
-            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
-                # reporting work progress; it will be filled in responses from the
-                # metrics API.
+            "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+                # "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
+                # The specified aggregation kind is case-insensitive.
+                #
+                # If omitted, this is not an aggregated value but instead
+                # a single metric sample value.
             "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
                 # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+                # This holds the sum of the aggregated values and is used in combination
+                # with mean_count below to obtain the actual mean aggregate value.
+                # The only possible value types are Long and Double.
+            "distribution": "", # A struct value describing properties of a distribution of numeric values.
             "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
                 # service.
           },
@@ -1966,8 +1986,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -1975,7 +1994,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingParallelism": { # Represents the level of parallelism in a WorkItem's input, # Total amount of parallelism in the input of this task that remains,
               # (i.e. can be delegated to this task and any new tasks via dynamic
@@ -2054,8 +2074,7 @@
           "end": True or False, # Position is past all other positions. Also useful for the end
               # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
           "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
               # position. A ConcatPosition can be used by a reader of a source that
@@ -2063,16 +2082,17 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "byteOffset": "A String", # Position is a byte offset.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
-        "leaseExpireTime": "A String", # Time at which the current lease will expire.
-        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker.
-            # Note: If the report call fails for whatever reason, the worker should
-            # reuse this index for subsequent report attempts.
         "harnessData": { # Other data returned by the service, specific to the particular
             # worker harness.
           "a_key": "", # Properties of the object.
         },
+        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker.
+            # Note: If the report call fails for whatever reason, the worker should
+            # reuse this index for subsequent report attempts.
+        "leaseExpireTime": "A String", # Time at which the current lease will expire.
         "metricShortId": [ # The short ids that workers should use in subsequent metric updates.
             # Workers should strive to use short ids whenever possible, but it is ok
             # to request the short_id again if a worker lost track of it
@@ -2096,8 +2116,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -2105,7 +2124,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
         },
         "suggestedStopPoint": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of split_request.
@@ -2115,8 +2135,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -2124,7 +2143,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.html b/docs/dyn/dataflow_v1b3.projects.locations.html
index fa802c3..c41574f 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.html
@@ -79,4 +79,145 @@
 </p>
 <p class="firstline">Returns the jobs Resource.</p>
 
+<p class="toc_element">
+  <code><a href="dataflow_v1b3.projects.locations.templates.html">templates()</a></code>
+</p>
+<p class="firstline">Returns the templates Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#workerMessages">workerMessages(projectId, location, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Send a worker_message to the service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="workerMessages">workerMessages(projectId, location, body, x__xgafv=None)</code>
+  <pre>Send a worker_message to the service.
+
+Args:
+  projectId: string, The project to send the WorkerMessages to. (required)
+  location: string, The location which contains the job (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request for sending worker messages to the service.
+    "workerMessages": [ # The WorkerMessages to send.
+      { # WorkerMessage provides information to the backend about a worker.
+        "workerHealthReport": { # WorkerHealthReport contains information about the health of a worker. # The health of a worker.
+            #
+            # The VM should be identified by the labels attached to the WorkerMessage that
+            # this health ping belongs to.
+          "vmStartupTime": "A String", # The time the VM was booted.
+          "reportInterval": "A String", # The interval at which the worker is sending health reports.
+              # The default value of 0 should be interpreted as the field is not being
+              # explicitly set by the worker.
+          "pods": [ # The pods running on the worker. See:
+              # http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
+              #
+              # This field is used by the worker to send the status of the indvidual
+              # containers running on each worker.
+            {
+              "a_key": "", # Properties of the object.
+            },
+          ],
+          "vmIsHealthy": True or False, # Whether the VM is healthy.
+        },
+        "labels": { # Labels are used to group WorkerMessages.
+            # For example, a worker_message about a particular container
+            # might have the labels:
+            # { "JOB_ID": "2015-04-22",
+            #   "WORKER_ID": "wordcount-vm-2015…"
+            #   "CONTAINER_TYPE": "worker",
+            #   "CONTAINER_ID": "ac1234def"}
+            # Label tags typically correspond to Label enum values. However, for ease
+            # of development other strings can be used as tags. LABEL_UNSPECIFIED should
+            # not be used here.
+          "a_key": "A String",
+        },
+        "workerMetrics": { # Worker metrics exported from workers. This contains resource utilization # Resource metrics reported by workers.
+            # metrics accumulated from a variety of sources. For more information, see
+            # go/df-resource-signals.
+          "cpuTime": [ # CPU utilization samples.
+            { # Modeled after information exposed by /proc/stat.
+              "totalMs": "A String", # Total active CPU time across all cores (ie., non-idle) in milliseconds
+                  # since start-up.
+              "rate": 3.14, # Average CPU utilization rate (% non-idle cpu / second) since previous
+                  # sample.
+              "timestamp": "A String", # Timestamp of the measurement.
+            },
+          ],
+        },
+        "workerMessageCode": { # A message code is used to report status and error messages to the service. # A worker message code.
+            # The message codes are intended to be machine readable. The service will
+            # take care of translating these into user understandable messages if
+            # necessary.
+            #
+            # Example use cases:
+            #   1. Worker processes reporting successful startup.
+            #   2. Worker processes reporting specific errors (e.g. package staging
+            #      failure).
+          "code": "A String", # The code is a string intended for consumption by a machine that identifies
+              # the type of message being sent.
+              # Examples:
+              #  1. "HARNESS_STARTED" might be used to indicate the worker harness has
+              #      started.
+              #  2. "GCS_DOWNLOAD_ERROR" might be used to indicate an error downloading
+              #     a GCS file as part of the boot process of one of the worker containers.
+              #
+              # This is a string and not an enum to make it easy to add new codes without
+              # waiting for an API change.
+          "parameters": { # Parameters contains specific information about the code.
+              #
+              # This is a struct to allow parameters of different types.
+              #
+              # Examples:
+              #  1. For a "HARNESS_STARTED" message parameters might provide the name
+              #     of the worker and additional data like timing information.
+              #  2. For a "GCS_DOWNLOAD_ERROR" parameters might contain fields listing
+              #     the GCS objects being downloaded and fields containing errors.
+              #
+              # In general complex data structures should be avoided. If a worker
+              # needs to send a specific and complicated data structure then please
+              # consider defining a new proto and adding it to the data oneof in
+              # WorkerMessageResponse.
+              #
+              # Conventions:
+              #  Parameters should only be used for information that isn't typically passed
+              #  as a label.
+              #  hostname and other worker identifiers should almost always be passed
+              #  as labels since they will be included on most messages.
+            "a_key": "", # Properties of the object.
+          },
+        },
+        "time": "A String", # The timestamp of the worker_message.
+      },
+    ],
+    "location": "A String", # The location which contains the job
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response to the worker messages.
+    "workerMessageResponses": [ # The servers response to the worker messages.
+      { # A worker_message response allows the server to pass information to the
+          # sender.
+        "workerHealthReportResponse": { # WorkerHealthReportResponse contains information returned to the worker # The service's response to a worker's health report.
+            # in response to a health ping.
+          "reportInterval": "A String", # A positive value indicates the worker should change its reporting interval
+              # to the specified value.
+              #
+              # The default value of zero means no change in report rate is requested by
+              # the server.
+        },
+        "workerMetricsResponse": { # Service-side response to WorkerMessage reporting resource utilization. # Service's response to reporting worker metrics (currently empty).
+        },
+      },
+    ],
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.debug.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.debug.html
new file mode 100644
index 0000000..3f9e38e
--- /dev/null
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.debug.html
@@ -0,0 +1,146 @@
+<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="dataflow_v1b3.html">Google Dataflow API</a> . <a href="dataflow_v1b3.projects.html">projects</a> . <a href="dataflow_v1b3.projects.locations.html">locations</a> . <a href="dataflow_v1b3.projects.locations.jobs.html">jobs</a> . <a href="dataflow_v1b3.projects.locations.jobs.debug.html">debug</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getConfig">getConfig(projectId, location, jobId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Get encoded debug configuration for component. Not cacheable.</p>
+<p class="toc_element">
+  <code><a href="#sendCapture">sendCapture(projectId, location, jobId, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Send encoded debug capture data for component.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getConfig">getConfig(projectId, location, jobId, body, x__xgafv=None)</code>
+  <pre>Get encoded debug configuration for component. Not cacheable.
+
+Args:
+  projectId: string, The project id. (required)
+  location: string, The location which contains the job specified by job_id. (required)
+  jobId: string, The job id. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to get updated debug configuration for component.
+    "workerId": "A String", # The worker id, i.e., VM hostname.
+    "componentId": "A String", # The internal component id for which debug configuration is
+        # requested.
+    "location": "A String", # The location which contains the job specified by job_id.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response to a get debug configuration request.
+    "config": "A String", # The encoded debug configuration for the requested component.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sendCapture">sendCapture(projectId, location, jobId, body, x__xgafv=None)</code>
+  <pre>Send encoded debug capture data for component.
+
+Args:
+  projectId: string, The project id. (required)
+  location: string, The location which contains the job specified by job_id. (required)
+  jobId: string, The job id. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request to send encoded debug information.
+    "workerId": "A String", # The worker id, i.e., VM hostname.
+    "data": "A String", # The encoded debug information.
+    "location": "A String", # The location which contains the job specified by job_id.
+    "componentId": "A String", # The internal component id for which debug information is sent.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response to a send capture request.
+      # nothing
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
index 211911c..60c1c61 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
@@ -75,6 +75,11 @@
 <h1><a href="dataflow_v1b3.html">Google Dataflow API</a> . <a href="dataflow_v1b3.projects.html">projects</a> . <a href="dataflow_v1b3.projects.locations.html">locations</a> . <a href="dataflow_v1b3.projects.locations.jobs.html">jobs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="dataflow_v1b3.projects.locations.jobs.debug.html">debug()</a></code>
+</p>
+<p class="firstline">Returns the debug Resource.</p>
+
+<p class="toc_element">
   <code><a href="dataflow_v1b3.projects.locations.jobs.messages.html">messages()</a></code>
 </p>
 <p class="firstline">Returns the messages Resource.</p>
@@ -137,10 +142,21 @@
         # 
         # The name must match the regular expression
         # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "location": "A String", # The location that contains this job.
     "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
         # `JOB_STATE_UPDATED`), this field contains the ID of that job.
     "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
     "labels": { # User-defined labels for this job.
         # 
         # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -152,13 +168,14 @@
         # size.
       "a_key": "A String",
     },
-    "location": "A String", # The location that contains this job.
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
         # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
     "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
       "version": { # A structure describing which components and their versions of the service
           # are required in order to run the job.
@@ -212,49 +229,6 @@
             # multiple pools, in order to match the various computational
             # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-              # are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-              # service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-              # the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-              # will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
-          "metadata": { # Metadata to set on the Google Compute Engine VMs.
-            "a_key": "A String",
-          },
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-              # `TEARDOWN_NEVER`.
-              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-              # down.
-              #
-              # If the workers are not torn down by the service, they will
-              # continue to run and use Google Compute Engine VM resources in the
-              # user's project until they are explicitly terminated by the user.
-              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-              # policy except for small, manually supervised test jobs.
-              #
-              # If unknown or unspecified, the service will attempt to choose a reasonable
-              # default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-              # service will choose a number of threads (according to the number of cores
-              # on the selected machine type for batch, or 1 by convention for streaming).
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "poolArgs": { # Extra arguments for this worker pool.
-            "a_key": "", # Properties of the object. Contains field @type with type URL.
-          },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-              # execute the job.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
           "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
               # using the standard Dataflow task runner.  Users should ignore
               # this field.
@@ -267,17 +241,7 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "root".
             "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-            "vmId": "A String", # The ID string of the VM.
-            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                # access the Cloud Dataflow API.
-              "A String",
-            ],
             "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
               "reportingEnabled": True or False, # Whether to send work progress updates to the service.
               "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -304,14 +268,15 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "wheel".
-            "languageHint": "A String", # The suggested backend language.
-            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                # console.
-            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-            "logDir": "A String", # The directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "vmId": "A String", # The ID string of the VM.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
             "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                 #
                 # When workers access Google Cloud APIs, they logically do so via
@@ -321,6 +286,14 @@
                 # Locators".
                 #
                 # If not specified, the default value is "http://www.googleapis.com/"
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
             "harnessCommand": "A String", # The command to launch the worker harness.
             "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                 # temporary storage.
@@ -330,33 +303,18 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
           },
-          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-              # select a default set of packages which are useful to worker
-              # harnesses written in a particular language.
-          "packages": [ # Packages to be installed on workers.
-            { # The packages that must be installed in order for a worker to run the
-                # steps of the Cloud Dataflow job that will be assigned to its worker
-                # pool.
-                #
-                # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                # might use this to install jars containing the user's code and all of the
-                # various dependencies (libraries, data files, etc.) required in order
-                # for that code to run.
-              "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is:
-                  #
-                  # Google Cloud Storage:
-                  #
-                  #   storage.googleapis.com/{bucket}
-                  #   bucket.storage.googleapis.com/
-            },
-          ],
-          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-            "algorithm": "A String", # The algorithm to use for autoscaling.
-          },
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -382,10 +340,69 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "ipConfiguration": "A String", # Configuration for VM IPs.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "poolArgs": { # Extra arguments for this worker pool.
+            "a_key": "", # Properties of the object. Contains field @type with type URL.
+          },
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
               # attempt to choose a reasonable default.
           "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
               # harness, residing in Google Container Registry.
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
+          "packages": [ # Packages to be installed on workers.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
+              "name": "A String", # The name of the package.
+            },
+          ],
+          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+            "algorithm": "A String", # The algorithm to use for autoscaling.
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "metadata": { # Metadata to set on the Google Compute Engine VMs.
+            "a_key": "A String",
+          },
         },
       ],
     },
@@ -404,16 +421,13 @@
           ],
           "displayData": [ # Transform-specific display data.
             { # Data provided with a pipeline or transform to provide descriptive info.
-              "key": "A String", # The key identifying the display data.
-                  # This is intended to be used as a label for the display data
-                  # when viewed in a dax monitoring system.
               "shortStrValue": "A String", # A possible additional shorter value to display.
                   # For example a java_class_name_value of com.mypackage.MyDoFn
                   # will be stored with MyDoFn as the short_str_value and
                   # com.mypackage.MyDoFn as the java_class_name value.
                   # short_str_value can be displayed and java_class_name_value
                   # will be displayed as a tooltip.
-              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "url": "A String", # An optional full URL.
               "floatValue": 3.14, # Contains value if the data is of float type.
               "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -424,8 +438,11 @@
               "label": "A String", # An optional label to display in a dax UI for the element.
               "boolValue": True or False, # Contains value if the data is of a boolean type.
               "strValue": "A String", # Contains value if the data is of string type.
-              "durationValue": "A String", # Contains value if the data is of duration type.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
               "int64Value": "A String", # Contains value if the data is of int64 type.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
             },
           ],
           "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -436,16 +453,13 @@
       ],
       "displayData": [ # Pipeline level display data.
         { # Data provided with a pipeline or transform to provide descriptive info.
-          "key": "A String", # The key identifying the display data.
-              # This is intended to be used as a label for the display data
-              # when viewed in a dax monitoring system.
           "shortStrValue": "A String", # A possible additional shorter value to display.
               # For example a java_class_name_value of com.mypackage.MyDoFn
               # will be stored with MyDoFn as the short_str_value and
               # com.mypackage.MyDoFn as the java_class_name value.
               # short_str_value can be displayed and java_class_name_value
               # will be displayed as a tooltip.
-          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "url": "A String", # An optional full URL.
           "floatValue": 3.14, # Contains value if the data is of float type.
           "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -456,8 +470,11 @@
           "label": "A String", # An optional label to display in a dax UI for the element.
           "boolValue": True or False, # Contains value if the data is of a boolean type.
           "strValue": "A String", # Contains value if the data is of string type.
-          "durationValue": "A String", # Contains value if the data is of duration type.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
           "int64Value": "A String", # Contains value if the data is of int64 type.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
         },
       ],
       "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -541,17 +558,7 @@
             # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentState": "A String", # The current state of the job.
-        # 
-        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-        # specified.
-        # 
-        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-        # terminal state. After a job has reached a terminal state, no
-        # further state updates may be made.
-        # 
-        # This field may be mutated by the Cloud Dataflow service;
-        # callers cannot mutate it.
+    "currentStateTime": "A String", # The timestamp associated with the current state.
     "tempFiles": [ # A set of files the system should be aware of that are used
         # for temporary storage. These temporary files will be
         # removed on job completion.
@@ -566,11 +573,17 @@
         #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
+    "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+      { # A message describing the state of a particular execution stage.
+        "executionStageName": "A String", # The name of the execution stage.
+        "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+        "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+      },
+    ],
     "type": "A String", # The type of Cloud Dataflow job.
-    "id": "A String", # The unique ID of this job.
-        # 
-        # This field is set by the Cloud Dataflow service when the Job is
-        # created, and is immutable for the life of the job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
     "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
         # of the job it replaced.
         # 
@@ -626,10 +639,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -641,13 +665,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -701,49 +726,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -756,17 +738,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -793,14 +765,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -810,6 +783,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -819,33 +800,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -871,10 +837,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -893,16 +918,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -913,8 +935,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -925,16 +950,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -945,8 +967,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -1030,17 +1055,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -1055,11 +1070,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
@@ -1123,10 +1144,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -1138,13 +1170,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -1198,49 +1231,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -1253,17 +1243,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -1290,14 +1270,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -1307,6 +1288,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -1316,33 +1305,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -1368,10 +1342,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -1390,16 +1423,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1410,8 +1440,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -1422,16 +1455,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1442,8 +1472,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -1527,17 +1560,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -1552,11 +1575,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
@@ -1610,12 +1639,9 @@
             # This holds the count of the aggregated values and is used in combination
             # with mean_sum above to obtain the actual mean aggregate value.
             # The only possible value type is Long.
-        "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
-            # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
-            # The specified aggregation kind is case-insensitive.
-            #
-            # If omitted, this is not an aggregated value but instead
-            # a single metric sample value.
+        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+            # reporting work progress; it will be filled in responses from the
+            # metrics API.
         "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
             # possible value type is a list of Values whose type can be Long, Double,
             # or String, according to the metric's type.  All Values in the list must
@@ -1634,19 +1660,23 @@
             "a_key": "A String",
           },
         },
-        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
-            # This holds the sum of the aggregated values and is used in combination
-            # with mean_count below to obtain the actual mean aggregate value.
-            # The only possible value types are Long and Double.
         "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
             # value accumulated since the worker started working on this WorkItem.
             # By default this is false, indicating that this metric is reported
             # as a delta that is not associated with any WorkItem.
-        "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
-            # reporting work progress; it will be filled in responses from the
-            # metrics API.
+        "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+            # "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
+            # The specified aggregation kind is case-insensitive.
+            #
+            # If omitted, this is not an aggregated value but instead
+            # a single metric sample value.
         "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
             # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+        "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+            # This holds the sum of the aggregated values and is used in combination
+            # with mean_count below to obtain the actual mean aggregate value.
+            # The only possible value types are Long and Double.
+        "distribution": "", # A struct value describing properties of a distribution of numeric values.
         "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
             # service.
       },
@@ -1680,6 +1710,11 @@
     { # Response to a request to list Cloud Dataflow jobs.  This may be a partial
       # response, depending on the page size in the ListJobsRequest.
     "nextPageToken": "A String", # Set if there may be more results than fit in this response.
+    "failedLocation": [ # Zero or more messages describing locations that failed to respond.
+      { # Indicates which location failed to respond to a request for data.
+        "name": "A String", # The name of the failed location.
+      },
+    ],
     "jobs": [ # A subset of the requested job information.
       { # Defines a job to be run by the Cloud Dataflow service.
           "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
@@ -1705,10 +1740,21 @@
               #
               # The name must match the regular expression
               # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-          "currentStateTime": "A String", # The timestamp associated with the current state.
+          "location": "A String", # The location that contains this job.
           "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
               # `JOB_STATE_UPDATED`), this field contains the ID of that job.
           "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+          "currentState": "A String", # The current state of the job.
+              #
+              # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+              # specified.
+              #
+              # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+              # terminal state. After a job has reached a terminal state, no
+              # further state updates may be made.
+              #
+              # This field may be mutated by the Cloud Dataflow service;
+              # callers cannot mutate it.
           "labels": { # User-defined labels for this job.
               #
               # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -1720,13 +1766,14 @@
               # size.
             "a_key": "A String",
           },
-          "location": "A String", # The location that contains this job.
-          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-              # Cloud Dataflow service.
           "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
               # corresponding name prefixes of the new job.
             "a_key": "A String",
           },
+          "id": "A String", # The unique ID of this job.
+              #
+              # This field is set by the Cloud Dataflow service when the Job is
+              # created, and is immutable for the life of the job.
           "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
             "version": { # A structure describing which components and their versions of the service
                 # are required in order to run the job.
@@ -1780,49 +1827,6 @@
                   # multiple pools, in order to match the various computational
                   # requirements of the various stages of the job.
                 "diskSourceImage": "A String", # Fully qualified source image for disks.
-                "ipConfiguration": "A String", # Configuration for VM IPs.
-                "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                    # are supported.
-                "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                    # service will attempt to choose a reasonable default.
-                "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                    # the service will use the network "default".
-                "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                    # will attempt to choose a reasonable default.
-                "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                    # attempt to choose a reasonable default.
-                "metadata": { # Metadata to set on the Google Compute Engine VMs.
-                  "a_key": "A String",
-                },
-                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                    # Compute Engine API.
-                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                    # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                    # `TEARDOWN_NEVER`.
-                    # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                    # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                    # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                    # down.
-                    #
-                    # If the workers are not torn down by the service, they will
-                    # continue to run and use Google Compute Engine VM resources in the
-                    # user's project until they are explicitly terminated by the user.
-                    # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                    # policy except for small, manually supervised test jobs.
-                    #
-                    # If unknown or unspecified, the service will attempt to choose a reasonable
-                    # default.
-                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                    # service will choose a number of threads (according to the number of cores
-                    # on the selected machine type for batch, or 1 by convention for streaming).
-                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                    # the form "regions/REGION/subnetworks/SUBNETWORK".
-                "poolArgs": { # Extra arguments for this worker pool.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                    # execute the job.  If zero or unspecified, the service will
-                    # attempt to choose a reasonable default.
                 "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                     # using the standard Dataflow task runner.  Users should ignore
                     # this field.
@@ -1835,17 +1839,7 @@
                       # Google Cloud Storage:
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
-                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                      # taskrunner; e.g. "root".
                   "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-                  "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-                  "vmId": "A String", # The ID string of the VM.
-                  "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-                  "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-                  "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                      # access the Cloud Dataflow API.
-                    "A String",
-                  ],
                   "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                     "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                     "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -1872,14 +1866,15 @@
                         #   storage.googleapis.com/{bucket}/{object}
                         #   bucket.storage.googleapis.com/{object}
                   },
-                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                      # taskrunner; e.g. "wheel".
-                  "languageHint": "A String", # The suggested backend language.
-                  "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                      # console.
-                  "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-                  "logDir": "A String", # The directory on the VM to store logs.
-                  "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                  "vmId": "A String", # The ID string of the VM.
+                  "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                  "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                  "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                      # access the Cloud Dataflow API.
+                    "A String",
+                  ],
+                  "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "root".
                   "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                       #
                       # When workers access Google Cloud APIs, they logically do so via
@@ -1889,6 +1884,14 @@
                       # Locators".
                       #
                       # If not specified, the default value is "http://www.googleapis.com/"
+                  "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                      # taskrunner; e.g. "wheel".
+                  "languageHint": "A String", # The suggested backend language.
+                  "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                      # console.
+                  "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                  "logDir": "A String", # The directory on the VM to store logs.
+                  "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
                   "harnessCommand": "A String", # The command to launch the worker harness.
                   "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                       # temporary storage.
@@ -1898,33 +1901,18 @@
                       # Google Cloud Storage:
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
+                  "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
                 },
-                "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                    # select a default set of packages which are useful to worker
-                    # harnesses written in a particular language.
-                "packages": [ # Packages to be installed on workers.
-                  { # The packages that must be installed in order for a worker to run the
-                      # steps of the Cloud Dataflow job that will be assigned to its worker
-                      # pool.
-                      #
-                      # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                      # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                      # might use this to install jars containing the user's code and all of the
-                      # various dependencies (libraries, data files, etc.) required in order
-                      # for that code to run.
-                    "name": "A String", # The name of the package.
-                    "location": "A String", # The resource to read the package from. The supported resource type is:
-                        #
-                        # Google Cloud Storage:
-                        #
-                        #   storage.googleapis.com/{bucket}
-                        #   bucket.storage.googleapis.com/
-                  },
-                ],
-                "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-                  "algorithm": "A String", # The algorithm to use for autoscaling.
-                },
+                "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                    # are supported.
+                "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                    # service will attempt to choose a reasonable default.
+                "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                    # the service will use the network "default".
+                "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
                 "dataDisks": [ # Data disks that are used by a VM in this workflow.
                   { # Describes the data disk used by a workflow job.
                     "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -1950,10 +1938,69 @@
                         # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                   },
                 ],
-                "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                    # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                    # `TEARDOWN_NEVER`.
+                    # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                    # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                    # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                    # down.
+                    #
+                    # If the workers are not torn down by the service, they will
+                    # continue to run and use Google Compute Engine VM resources in the
+                    # user's project until they are explicitly terminated by the user.
+                    # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                    # policy except for small, manually supervised test jobs.
+                    #
+                    # If unknown or unspecified, the service will attempt to choose a reasonable
+                    # default.
+                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                    # Compute Engine API.
+                "ipConfiguration": "A String", # Configuration for VM IPs.
+                "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                    # service will choose a number of threads (according to the number of cores
+                    # on the selected machine type for batch, or 1 by convention for streaming).
+                "poolArgs": { # Extra arguments for this worker pool.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+                "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                    # execute the job.  If zero or unspecified, the service will
                     # attempt to choose a reasonable default.
                 "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                     # harness, residing in Google Container Registry.
+                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                    # the form "regions/REGION/subnetworks/SUBNETWORK".
+                "packages": [ # Packages to be installed on workers.
+                  { # The packages that must be installed in order for a worker to run the
+                      # steps of the Cloud Dataflow job that will be assigned to its worker
+                      # pool.
+                      #
+                      # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                      # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                      # might use this to install jars containing the user's code and all of the
+                      # various dependencies (libraries, data files, etc.) required in order
+                      # for that code to run.
+                    "location": "A String", # The resource to read the package from. The supported resource type is:
+                        #
+                        # Google Cloud Storage:
+                        #
+                        #   storage.googleapis.com/{bucket}
+                        #   bucket.storage.googleapis.com/
+                    "name": "A String", # The name of the package.
+                  },
+                ],
+                "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+                  "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+                  "algorithm": "A String", # The algorithm to use for autoscaling.
+                },
+                "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                    # select a default set of packages which are useful to worker
+                    # harnesses written in a particular language.
+                "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "metadata": { # Metadata to set on the Google Compute Engine VMs.
+                  "a_key": "A String",
+                },
               },
             ],
           },
@@ -1972,16 +2019,13 @@
                 ],
                 "displayData": [ # Transform-specific display data.
                   { # Data provided with a pipeline or transform to provide descriptive info.
-                    "key": "A String", # The key identifying the display data.
-                        # This is intended to be used as a label for the display data
-                        # when viewed in a dax monitoring system.
                     "shortStrValue": "A String", # A possible additional shorter value to display.
                         # For example a java_class_name_value of com.mypackage.MyDoFn
                         # will be stored with MyDoFn as the short_str_value and
                         # com.mypackage.MyDoFn as the java_class_name value.
                         # short_str_value can be displayed and java_class_name_value
                         # will be displayed as a tooltip.
-                    "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                    "durationValue": "A String", # Contains value if the data is of duration type.
                     "url": "A String", # An optional full URL.
                     "floatValue": 3.14, # Contains value if the data is of float type.
                     "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1992,8 +2036,11 @@
                     "label": "A String", # An optional label to display in a dax UI for the element.
                     "boolValue": True or False, # Contains value if the data is of a boolean type.
                     "strValue": "A String", # Contains value if the data is of string type.
-                    "durationValue": "A String", # Contains value if the data is of duration type.
+                    "key": "A String", # The key identifying the display data.
+                        # This is intended to be used as a label for the display data
+                        # when viewed in a dax monitoring system.
                     "int64Value": "A String", # Contains value if the data is of int64 type.
+                    "timestampValue": "A String", # Contains value if the data is of timestamp type.
                   },
                 ],
                 "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -2004,16 +2051,13 @@
             ],
             "displayData": [ # Pipeline level display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2024,8 +2068,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -2109,17 +2156,7 @@
                   # step with respect to all other steps in the Cloud Dataflow job.
             },
           ],
-          "currentState": "A String", # The current state of the job.
-              #
-              # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-              # specified.
-              #
-              # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-              # terminal state. After a job has reached a terminal state, no
-              # further state updates may be made.
-              #
-              # This field may be mutated by the Cloud Dataflow service;
-              # callers cannot mutate it.
+          "currentStateTime": "A String", # The timestamp associated with the current state.
           "tempFiles": [ # A set of files the system should be aware of that are used
               # for temporary storage. These temporary files will be
               # removed on job completion.
@@ -2134,11 +2171,17 @@
               #    bucket.storage.googleapis.com/{object}
             "A String",
           ],
+          "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+              # callers cannot mutate it.
+            { # A message describing the state of a particular execution stage.
+              "executionStageName": "A String", # The name of the execution stage.
+              "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+              "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+            },
+          ],
           "type": "A String", # The type of Cloud Dataflow job.
-          "id": "A String", # The unique ID of this job.
-              #
-              # This field is set by the Cloud Dataflow service when the Job is
-              # created, and is immutable for the life of the job.
+          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+              # Cloud Dataflow service.
           "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
               # of the job it replaced.
               #
@@ -2160,11 +2203,6 @@
           },
         },
     ],
-    "failedLocation": [ # Zero or more messages describing locations that failed to respond.
-      { # Indicates which location failed to respond to a request for data.
-        "name": "A String", # The name of the failed location.
-      },
-    ],
   }</pre>
 </div>
 
@@ -2217,10 +2255,21 @@
         # 
         # The name must match the regular expression
         # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-    "currentStateTime": "A String", # The timestamp associated with the current state.
+    "location": "A String", # The location that contains this job.
     "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
         # `JOB_STATE_UPDATED`), this field contains the ID of that job.
     "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+    "currentState": "A String", # The current state of the job.
+        # 
+        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+        # specified.
+        # 
+        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+        # terminal state. After a job has reached a terminal state, no
+        # further state updates may be made.
+        # 
+        # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
     "labels": { # User-defined labels for this job.
         # 
         # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -2232,13 +2281,14 @@
         # size.
       "a_key": "A String",
     },
-    "location": "A String", # The location that contains this job.
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
         # corresponding name prefixes of the new job.
       "a_key": "A String",
     },
+    "id": "A String", # The unique ID of this job.
+        # 
+        # This field is set by the Cloud Dataflow service when the Job is
+        # created, and is immutable for the life of the job.
     "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
       "version": { # A structure describing which components and their versions of the service
           # are required in order to run the job.
@@ -2292,49 +2342,6 @@
             # multiple pools, in order to match the various computational
             # requirements of the various stages of the job.
           "diskSourceImage": "A String", # Fully qualified source image for disks.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-              # are supported.
-          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-              # service will attempt to choose a reasonable default.
-          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-              # the service will use the network "default".
-          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-              # will attempt to choose a reasonable default.
-          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
-          "metadata": { # Metadata to set on the Google Compute Engine VMs.
-            "a_key": "A String",
-          },
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-              # `TEARDOWN_NEVER`.
-              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-              # down.
-              #
-              # If the workers are not torn down by the service, they will
-              # continue to run and use Google Compute Engine VM resources in the
-              # user's project until they are explicitly terminated by the user.
-              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-              # policy except for small, manually supervised test jobs.
-              #
-              # If unknown or unspecified, the service will attempt to choose a reasonable
-              # default.
-          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-              # service will choose a number of threads (according to the number of cores
-              # on the selected machine type for batch, or 1 by convention for streaming).
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "poolArgs": { # Extra arguments for this worker pool.
-            "a_key": "", # Properties of the object. Contains field @type with type URL.
-          },
-          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-              # execute the job.  If zero or unspecified, the service will
-              # attempt to choose a reasonable default.
           "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
               # using the standard Dataflow task runner.  Users should ignore
               # this field.
@@ -2347,17 +2354,7 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
-            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "root".
             "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-            "vmId": "A String", # The ID string of the VM.
-            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                # access the Cloud Dataflow API.
-              "A String",
-            ],
             "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
               "reportingEnabled": True or False, # Whether to send work progress updates to the service.
               "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -2384,14 +2381,15 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                # taskrunner; e.g. "wheel".
-            "languageHint": "A String", # The suggested backend language.
-            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                # console.
-            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-            "logDir": "A String", # The directory on the VM to store logs.
-            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+            "vmId": "A String", # The ID string of the VM.
+            "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+            "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+            "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                # access the Cloud Dataflow API.
+              "A String",
+            ],
+            "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "root".
             "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                 #
                 # When workers access Google Cloud APIs, they logically do so via
@@ -2401,6 +2399,14 @@
                 # Locators".
                 #
                 # If not specified, the default value is "http://www.googleapis.com/"
+            "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                # taskrunner; e.g. "wheel".
+            "languageHint": "A String", # The suggested backend language.
+            "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                # console.
+            "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+            "logDir": "A String", # The directory on the VM to store logs.
+            "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
             "harnessCommand": "A String", # The command to launch the worker harness.
             "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                 # temporary storage.
@@ -2410,33 +2416,18 @@
                 # Google Cloud Storage:
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
+            "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
           },
-          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-              # select a default set of packages which are useful to worker
-              # harnesses written in a particular language.
-          "packages": [ # Packages to be installed on workers.
-            { # The packages that must be installed in order for a worker to run the
-                # steps of the Cloud Dataflow job that will be assigned to its worker
-                # pool.
-                #
-                # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                # might use this to install jars containing the user's code and all of the
-                # various dependencies (libraries, data files, etc.) required in order
-                # for that code to run.
-              "name": "A String", # The name of the package.
-              "location": "A String", # The resource to read the package from. The supported resource type is:
-                  #
-                  # Google Cloud Storage:
-                  #
-                  #   storage.googleapis.com/{bucket}
-                  #   bucket.storage.googleapis.com/
-            },
-          ],
-          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-            "algorithm": "A String", # The algorithm to use for autoscaling.
-          },
+          "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+              # are supported.
+          "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+              # service will attempt to choose a reasonable default.
+          "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+              # the service will use the network "default".
+          "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+              # will attempt to choose a reasonable default.
+          "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+              # attempt to choose a reasonable default.
           "dataDisks": [ # Data disks that are used by a VM in this workflow.
             { # Describes the data disk used by a workflow job.
               "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -2462,10 +2453,69 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+          "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+              # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+              # `TEARDOWN_NEVER`.
+              # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+              # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+              # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+              # down.
+              #
+              # If the workers are not torn down by the service, they will
+              # continue to run and use Google Compute Engine VM resources in the
+              # user's project until they are explicitly terminated by the user.
+              # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+              # policy except for small, manually supervised test jobs.
+              #
+              # If unknown or unspecified, the service will attempt to choose a reasonable
+              # default.
+          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+              # Compute Engine API.
+          "ipConfiguration": "A String", # Configuration for VM IPs.
+          "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+              # service will choose a number of threads (according to the number of cores
+              # on the selected machine type for batch, or 1 by convention for streaming).
+          "poolArgs": { # Extra arguments for this worker pool.
+            "a_key": "", # Properties of the object. Contains field @type with type URL.
+          },
+          "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+              # execute the job.  If zero or unspecified, the service will
               # attempt to choose a reasonable default.
           "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
               # harness, residing in Google Container Registry.
+          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+              # the form "regions/REGION/subnetworks/SUBNETWORK".
+          "packages": [ # Packages to be installed on workers.
+            { # The packages that must be installed in order for a worker to run the
+                # steps of the Cloud Dataflow job that will be assigned to its worker
+                # pool.
+                #
+                # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                # might use this to install jars containing the user's code and all of the
+                # various dependencies (libraries, data files, etc.) required in order
+                # for that code to run.
+              "location": "A String", # The resource to read the package from. The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #
+                  #   storage.googleapis.com/{bucket}
+                  #   bucket.storage.googleapis.com/
+              "name": "A String", # The name of the package.
+            },
+          ],
+          "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+            "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+            "algorithm": "A String", # The algorithm to use for autoscaling.
+          },
+          "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+              # select a default set of packages which are useful to worker
+              # harnesses written in a particular language.
+          "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              # attempt to choose a reasonable default.
+          "metadata": { # Metadata to set on the Google Compute Engine VMs.
+            "a_key": "A String",
+          },
         },
       ],
     },
@@ -2484,16 +2534,13 @@
           ],
           "displayData": [ # Transform-specific display data.
             { # Data provided with a pipeline or transform to provide descriptive info.
-              "key": "A String", # The key identifying the display data.
-                  # This is intended to be used as a label for the display data
-                  # when viewed in a dax monitoring system.
               "shortStrValue": "A String", # A possible additional shorter value to display.
                   # For example a java_class_name_value of com.mypackage.MyDoFn
                   # will be stored with MyDoFn as the short_str_value and
                   # com.mypackage.MyDoFn as the java_class_name value.
                   # short_str_value can be displayed and java_class_name_value
                   # will be displayed as a tooltip.
-              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "url": "A String", # An optional full URL.
               "floatValue": 3.14, # Contains value if the data is of float type.
               "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2504,8 +2551,11 @@
               "label": "A String", # An optional label to display in a dax UI for the element.
               "boolValue": True or False, # Contains value if the data is of a boolean type.
               "strValue": "A String", # Contains value if the data is of string type.
-              "durationValue": "A String", # Contains value if the data is of duration type.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
               "int64Value": "A String", # Contains value if the data is of int64 type.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
             },
           ],
           "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -2516,16 +2566,13 @@
       ],
       "displayData": [ # Pipeline level display data.
         { # Data provided with a pipeline or transform to provide descriptive info.
-          "key": "A String", # The key identifying the display data.
-              # This is intended to be used as a label for the display data
-              # when viewed in a dax monitoring system.
           "shortStrValue": "A String", # A possible additional shorter value to display.
               # For example a java_class_name_value of com.mypackage.MyDoFn
               # will be stored with MyDoFn as the short_str_value and
               # com.mypackage.MyDoFn as the java_class_name value.
               # short_str_value can be displayed and java_class_name_value
               # will be displayed as a tooltip.
-          "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "url": "A String", # An optional full URL.
           "floatValue": 3.14, # Contains value if the data is of float type.
           "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2536,8 +2583,11 @@
           "label": "A String", # An optional label to display in a dax UI for the element.
           "boolValue": True or False, # Contains value if the data is of a boolean type.
           "strValue": "A String", # Contains value if the data is of string type.
-          "durationValue": "A String", # Contains value if the data is of duration type.
+          "key": "A String", # The key identifying the display data.
+              # This is intended to be used as a label for the display data
+              # when viewed in a dax monitoring system.
           "int64Value": "A String", # Contains value if the data is of int64 type.
+          "timestampValue": "A String", # Contains value if the data is of timestamp type.
         },
       ],
       "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -2621,17 +2671,7 @@
             # step with respect to all other steps in the Cloud Dataflow job.
       },
     ],
-    "currentState": "A String", # The current state of the job.
-        # 
-        # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-        # specified.
-        # 
-        # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-        # terminal state. After a job has reached a terminal state, no
-        # further state updates may be made.
-        # 
-        # This field may be mutated by the Cloud Dataflow service;
-        # callers cannot mutate it.
+    "currentStateTime": "A String", # The timestamp associated with the current state.
     "tempFiles": [ # A set of files the system should be aware of that are used
         # for temporary storage. These temporary files will be
         # removed on job completion.
@@ -2646,11 +2686,17 @@
         #    bucket.storage.googleapis.com/{object}
       "A String",
     ],
+    "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+        # callers cannot mutate it.
+      { # A message describing the state of a particular execution stage.
+        "executionStageName": "A String", # The name of the execution stage.
+        "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+        "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+      },
+    ],
     "type": "A String", # The type of Cloud Dataflow job.
-    "id": "A String", # The unique ID of this job.
-        # 
-        # This field is set by the Cloud Dataflow service when the Job is
-        # created, and is immutable for the life of the job.
+    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+        # Cloud Dataflow service.
     "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
         # of the job it replaced.
         # 
@@ -2704,10 +2750,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -2719,13 +2776,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -2779,49 +2837,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -2834,17 +2849,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -2871,14 +2876,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -2888,6 +2894,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -2897,33 +2911,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -2949,10 +2948,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -2971,16 +3029,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -2991,8 +3046,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -3003,16 +3061,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -3023,8 +3078,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -3108,17 +3166,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -3133,11 +3181,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html
index 3ff52b1..15cf6f0 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.messages.html
@@ -110,12 +110,36 @@
 
     { # Response to a request to list job messages.
     "nextPageToken": "A String", # The token to obtain the next page of results if there are more.
+    "autoscalingEvents": [ # Autoscaling events in ascending timestamp order.
+      { # A structured message reporting an autoscaling decision made by the Dataflow
+          # service.
+        "eventType": "A String", # The type of autoscaling event to report.
+        "currentNumWorkers": "A String", # The current number of workers the job has.
+        "description": { # A rich message format, including a human readable string, a key for # A message describing why the system decided to adjust the current
+            # number of workers, why it failed, or why the system decided to
+            # not make any changes to the number of workers.
+            # identifying the message, and structured data associated with the message for
+            # programmatic consumption.
+          "messageKey": "A String", # Idenfier for this message type.  Used by external systems to
+              # internationalize or personalize message.
+          "messageText": "A String", # Human-readable version of message.
+          "parameters": [ # The structured data associated with this message.
+            { # Structured data associated with this message.
+              "value": "", # Value for this parameter.
+              "key": "A String", # Key or name for this parameter.
+            },
+          ],
+        },
+        "targetNumWorkers": "A String", # The target number of workers the worker pool wants to resize to use.
+        "time": "A String", # The time this event was emitted to indicate a new target or current
+            # num_workers value.
+      },
+    ],
     "jobMessages": [ # Messages in ascending timestamp order.
       { # A particular message pertaining to a Dataflow job.
         "messageImportance": "A String", # Importance level of the message.
         "messageText": "A String", # The text of the message.
-        "id": "A String", # Identifies the message.  This is automatically generated by the
-            # service; the caller should treat it as an opaque string.
+        "id": "A String", # Deprecated.
         "time": "A String", # The timestamp of the message.
       },
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
index 972c110..5c62476 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
@@ -119,7 +119,7 @@
     "workItems": [ # A list of the leased WorkItems.
       { # WorkItem represents basic information about a WorkItem to be executed
           # in the cloud.
-        "configuration": "A String", # Work item-specific configuration as an opaque blob.
+        "reportStatusInterval": "A String", # Recommended reporting interval.
         "leaseExpireTime": "A String", # Time when the lease on this Work will expire.
         "seqMapTask": { # Describes a particular function to invoke. # Additional information for SeqMapTask WorkItems.
           "inputs": [ # Information about each of the inputs.
@@ -499,8 +499,9 @@
                         # this should correspond to the tag of some MultiOutputInfo.
                   },
                 ],
-                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
-                    # intermediate store between the GBK and the CombineValues.
+                "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
+                  "a_key": "", # Properties of the object.
+                },
                 "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
                     # CombineValues instruction lifted into this instruction.
                 "valueCombiningFn": { # The value combining function to invoke.
@@ -514,9 +515,8 @@
                       # to the list of instructions in this input's instruction's
                       # containing MapTask.
                 },
-                "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
-                  "a_key": "", # Properties of the object.
-                },
+                "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                    # intermediate store between the GBK and the CombineValues.
               },
               "write": { # An instruction that writes records. # Additional information for Write instructions.
                   # Takes one input, produces no outputs.
@@ -646,26 +646,13 @@
           ],
         },
         "jobId": "A String", # Identifies the workflow job this WorkItem belongs to.
-        "reportStatusInterval": "A String", # Recommended reporting interval.
+        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "streamingSetupTask": { # A task which initializes part of a streaming Dataflow job. # Additional information for StreamingSetupTask WorkItems.
           "workerHarnessPort": 42, # The TCP port used by the worker to communicate with the Dataflow
               # worker harness.
           "drain": True or False, # The user has requested drain.
           "streamingComputationTopology": { # Global topology of the streaming Dataflow job, including all # The global topology of the streaming Dataflow job.
               # computations and their sharded locations.
-            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
-              { # Data disk assignment for a given VM instance.
-                "vmInstance": "A String", # VM instance name the data disks mounted to, for example
-                    # "myproject-1014-104817-4c2-harness-0".
-                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in
-                    # this list defines which persistent directory the disk is mounted to, for
-                    # example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
-                    # { "myproject-1014-104817-4c2-harness-0-disk-1" }.
-                  "A String",
-                ],
-              },
-            ],
-            "persistentStateVersion": 42, # Version number for persistent state.
             "computations": [ # The computations associated with a streaming Dataflow job.
               { # All configuration data for a particular Computation.
                 "inputs": [ # The inputs to the computation.
@@ -752,7 +739,6 @@
                 ],
                 "computationId": "A String", # The ID of the computation.
                 "systemStageName": "A String", # The system stage name.
-                "userStageName": "A String", # The user stage name.
                 "stateFamilies": [ # The state family values.
                   { # State family configuration.
                     "stateFamily": "A String", # The state family value.
@@ -761,10 +747,23 @@
                 ],
               },
             ],
+            "dataDiskAssignments": [ # The disks assigned to a streaming Dataflow job.
+              { # Data disk assignment for a given VM instance.
+                "vmInstance": "A String", # VM instance name the data disks mounted to, for example
+                    # "myproject-1014-104817-4c2-harness-0".
+                "dataDisks": [ # Mounted data disks. The order is important a data disk's 0-based index in
+                    # this list defines which persistent directory the disk is mounted to, for
+                    # example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
+                    # { "myproject-1014-104817-4c2-harness-0-disk-1" }.
+                  "A String",
+                ],
+              },
+            ],
+            "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
             "userStageToComputationNameMap": { # Maps user stage names to stable computation names.
               "a_key": "A String",
             },
-            "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
+            "persistentStateVersion": 42, # Version number for persistent state.
           },
           "receiveWorkPort": 42, # The TCP port on which the worker should listen for messages from
               # other streaming computation workers.
@@ -774,6 +773,9 @@
           "userStepToStateFamilyNameMap": { # Map from user step names to state families.
             "a_key": "A String",
           },
+          "windmillServicePort": "A String", # If present, the worker must use this port to communicate with Windmill
+              # Service dispatchers. Only applicable when windmill_service_endpoint is
+              # specified.
           "streamingComputationConfigs": [ # Set of computation configuration information.
             { # Configuration information for a single streaming computation.
               "computationId": "A String", # Unique identifier for this computation.
@@ -923,8 +925,9 @@
                             # this should correspond to the tag of some MultiOutputInfo.
                       },
                     ],
-                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
-                        # intermediate store between the GBK and the CombineValues.
+                    "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
+                      "a_key": "", # Properties of the object.
+                    },
                     "originalCombineValuesStepName": "A String", # If this instruction includes a combining function, this is the name of the
                         # CombineValues instruction lifted into this instruction.
                     "valueCombiningFn": { # The value combining function to invoke.
@@ -938,9 +941,8 @@
                           # to the list of instructions in this input's instruction's
                           # containing MapTask.
                     },
-                    "inputElementCodec": { # The codec to use for interpreting an element in the input PTable.
-                      "a_key": "", # Properties of the object.
-                    },
+                    "originalCombineValuesInputStoreName": "A String", # If this instruction includes a combining function this is the name of the
+                        # intermediate store between the GBK and the CombineValues.
                   },
                   "write": { # An instruction that writes records. # Additional information for Write instructions.
                       # Takes one input, produces no outputs.
@@ -1070,6 +1072,9 @@
               ],
             },
           ],
+          "windmillServiceEndpoint": "A String", # If present, the worker must use this endpoint to communicate with Windmill
+              # Service dispatchers, otherwise the worker must continue to use whatever
+              # endpoint it had been using.
         },
         "packages": [ # Any required packages that need to be fetched in order to execute
             # this WorkItem.
@@ -1082,13 +1087,13 @@
               # might use this to install jars containing the user's code and all of the
               # various dependencies (libraries, data files, etc.) required in order
               # for that code to run.
-            "name": "A String", # The name of the package.
             "location": "A String", # The resource to read the package from. The supported resource type is:
                 #
                 # Google Cloud Storage:
                 #
                 #   storage.googleapis.com/{bucket}
                 #   bucket.storage.googleapis.com/
+            "name": "A String", # The name of the package.
           },
         ],
         "shellTask": { # A task which consists of a shell command for the worker to execute. # Additional information for ShellTask WorkItems.
@@ -1097,17 +1102,11 @@
         },
         "streamingComputationTask": { # A task which describes what action should be performed for the specified # Additional information for StreamingComputationTask WorkItems.
             # streaming computation ranges.
-          "dataDisks": [ # Describes the set of data disks this task should apply to.
-            { # Describes mounted data disk.
-              "dataDisk": "A String", # The name of the data disk.
-                  # This name is local to the Google Cloud Platform project and uniquely
-                  # identifies the disk within that project, for example
-                  # "myproject-1014-104817-4c2-harness-0-disk-1".
-            },
-          ],
+          "taskType": "A String", # A type of streaming computation task.
           "computationRanges": [ # Contains ranges of a streaming computation this task should apply to.
             { # Describes full or partial data disk assignment information of the computation
                 # ranges.
+              "computationId": "A String", # The ID of the computation.
               "rangeAssignments": [ # Data disk assignments for ranges from this computation.
                 { # Data disk assignment information for a specific key-range of a sharded
                     # computation.
@@ -1121,10 +1120,16 @@
                       # "myproject-1014-104817-4c2-harness-0-disk-1".
                 },
               ],
-              "computationId": "A String", # The ID of the computation.
             },
           ],
-          "taskType": "A String", # A type of streaming computation task.
+          "dataDisks": [ # Describes the set of data disks this task should apply to.
+            { # Describes mounted data disk.
+              "dataDisk": "A String", # The name of the data disk.
+                  # This name is local to the Google Cloud Platform project and uniquely
+                  # identifies the disk within that project, for example
+                  # "myproject-1014-104817-4c2-harness-0-disk-1".
+            },
+          ],
         },
       },
     ],
@@ -1184,7 +1189,7 @@
               # error message is needed, put the localized message in the error details or
               # localize it in the client. The optional error details may contain arbitrary
               # information about the error. There is a predefined set of error detail types
-              # in the package `google.rpc` which can be used for common error conditions.
+              # in the package `google.rpc` that can be used for common error conditions.
               #
               # # Language mapping
               #
@@ -1207,7 +1212,7 @@
               #     errors.
               #
               # - Workflow errors. A typical workflow has multiple steps. Each step may
-              #     have a `Status` message for error reporting purpose.
+              #     have a `Status` message for error reporting.
               #
               # - Batch operations. If a client uses batch request and batch response, the
               #     `Status` message should be used directly inside batch response, one for
@@ -1411,8 +1416,7 @@
           "end": True or False, # Position is past all other positions. Also useful for the end
               # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
           "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
               # position. A ConcatPosition can be used by a reader of a source that
@@ -1420,7 +1424,8 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "byteOffset": "A String", # Position is a byte offset.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
         "sourceFork": { # DEPRECATED in favor of DynamicSourceSplit. # DEPRECATED in favor of dynamic_source_split.
           "residualSource": { # Specification of one of the bundles produced as a result of splitting # DEPRECATED
@@ -1541,7 +1546,7 @@
               },
             },
           },
-          "primary": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
+          "residual": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
             "derivationMode": "A String", # DEPRECATED
             "source": { # A source that records can be read and decoded from. # DEPRECATED
               "codec": { # The codec to use to decode data read from the source.
@@ -1597,7 +1602,7 @@
               },
             },
           },
-          "residual": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
+          "primary": { # DEPRECATED in favor of DerivedSource. # DEPRECATED
             "derivationMode": "A String", # DEPRECATED
             "source": { # A source that records can be read and decoded from. # DEPRECATED
               "codec": { # The codec to use to decode data read from the source.
@@ -1802,6 +1807,7 @@
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
             },
+            "boolean": True or False, # Boolean value for And, Or.
             "integerList": { # A metric value representing a list of integers. # List of integers, for Set.
               "elements": [ # Elements of the list.
                 { # A representation of an int64, n, that is immune to precision loss when
@@ -1815,6 +1821,9 @@
                 # value accumulated since the worker started working on this WorkItem.
                 # By default this is false, indicating that this counter is reported
                 # as a delta.
+            "shortId": "A String", # The service-generated short identifier for this counter.
+                # The short_id -> (name, metadata) mapping is constant for the lifetime of
+                # a job.
             "floatingPointMean": { # A representation of a floating point mean metric contribution. # Floating point mean aggregation value for Mean.
               "count": { # A representation of an int64, n, that is immune to precision loss when # The number of values being aggregated.
                   # encoded in JSON.
@@ -1823,10 +1832,7 @@
               },
               "sum": 3.14, # The sum of all values being aggregated.
             },
-            "shortId": "A String", # The service-generated short identifier for this counter.
-                # The short_id -> (name, metadata) mapping is constant for the lifetime of
-                # a job.
-            "boolean": True or False, # Boolean value for And, Or.
+            "internal": "", # Value for internally-defined counters used by the Dataflow service.
             "structuredNameAndMetadata": { # A single message which encapsulates structured name and metadata for a given # Counter structured name and metadata.
                 # counter.
               "name": { # Identifies a counter within a per-job namespace. Counters whose structured # Structured name of the counter.
@@ -1850,39 +1856,52 @@
                 "description": "A String", # Human-readable description of the counter semantics.
               },
             },
-            "internal": "", # Value for internally-defined counters used by the Dataflow service.
+            "nameAndKind": { # Basic metadata about a counter. # Counter name and aggregation type.
+              "kind": "A String", # Counter aggregation kind.
+              "name": "A String", # Name of the counter.
+            },
             "integer": { # A representation of an int64, n, that is immune to precision loss when # Integer value for Sum, Max, Min.
                 # encoded in JSON.
               "lowBits": 42, # The low order bits: n & 0xffffffff.
               "highBits": 42, # The high order bits, including the sign: n >> 32.
             },
-            "nameAndKind": { # Basic metadata about a counter. # Counter name and aggregation type.
-              "kind": "A String", # Counter aggregation kind.
-              "name": "A String", # Name of the counter.
-            },
             "distribution": { # A metric value representing a distribution. # Distribution data
               "count": { # A representation of an int64, n, that is immune to precision loss when # The count of the number of elements present in the distribution.
                   # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
-              "max": { # A representation of an int64, n, that is immune to precision loss when # The maximum value present in the distribution.
-                  # encoded in JSON.
-                "lowBits": 42, # The low order bits: n & 0xffffffff.
-                "highBits": 42, # The high order bits, including the sign: n >> 32.
-              },
-              "sumOfSquares": 3.14, # Use a double since the sum of squares is likely to overflow int64.
-              "sum": { # A representation of an int64, n, that is immune to precision loss when # Use an int64 since we'd prefer the added precision. If overflow is a common
-                  # problem we can detect it and use an additional int64 or a double.
-                  # encoded in JSON.
-                "lowBits": 42, # The low order bits: n & 0xffffffff.
-                "highBits": 42, # The high order bits, including the sign: n >> 32.
-              },
               "min": { # A representation of an int64, n, that is immune to precision loss when # The minimum value present in the distribution.
                   # encoded in JSON.
                 "lowBits": 42, # The low order bits: n & 0xffffffff.
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
+              "max": { # A representation of an int64, n, that is immune to precision loss when # The maximum value present in the distribution.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "sum": { # A representation of an int64, n, that is immune to precision loss when # Use an int64 since we'd prefer the added precision. If overflow is a common
+                  # problem we can detect it and use an additional int64 or a double.
+                  # encoded in JSON.
+                "lowBits": 42, # The low order bits: n & 0xffffffff.
+                "highBits": 42, # The high order bits, including the sign: n >> 32.
+              },
+              "sumOfSquares": 3.14, # Use a double since the sum of squares is likely to overflow int64.
+              "logBuckets": [ # (Optional) Logarithmic histogram of values.
+                  # Each log may be in no more than one bucket. Order does not matter.
+                { # Bucket of values for Distribution's logarithmic histogram.
+                  "count": "A String", # Number of values in this bucket.
+                  "log": 42, # floor(log2(value)); defined to be zero for nonpositive values.
+                      #   log(-1) = 0
+                      #   log(0) = 0
+                      #   log(1) = 0
+                      #   log(2) = 1
+                      #   log(3) = 1
+                      #   log(4) = 2
+                      #   log(5) = 2
+                },
+              ],
             },
             "stringList": { # A metric value representing a list of strings. # List of strings, for Set.
               "elements": [ # Elements of the list.
@@ -1898,8 +1917,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -1907,7 +1925,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
@@ -1918,12 +1937,9 @@
                 # This holds the count of the aggregated values and is used in combination
                 # with mean_sum above to obtain the actual mean aggregate value.
                 # The only possible value type is Long.
-            "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
-                # "Sum", "Max", "Min", "Mean", "Set", "And", and "Or".
-                # The specified aggregation kind is case-insensitive.
-                #
-                # If omitted, this is not an aggregated value but instead
-                # a single metric sample value.
+            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
+                # reporting work progress; it will be filled in responses from the
+                # metrics API.
             "set": "", # Worker-computed aggregate value for the "Set" aggregation kind.  The only
                 # possible value type is a list of Values whose type can be Long, Double,
                 # or String, according to the metric's type.  All Values in the list must
@@ -1942,19 +1958,23 @@
                 "a_key": "A String",
               },
             },
-            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
-                # This holds the sum of the aggregated values and is used in combination
-                # with mean_count below to obtain the actual mean aggregate value.
-                # The only possible value types are Long and Double.
             "cumulative": True or False, # True if this metric is reported as the total cumulative aggregate
                 # value accumulated since the worker started working on this WorkItem.
                 # By default this is false, indicating that this metric is reported
                 # as a delta that is not associated with any WorkItem.
-            "updateTime": "A String", # Timestamp associated with the metric value. Optional when workers are
-                # reporting work progress; it will be filled in responses from the
-                # metrics API.
+            "kind": "A String", # Metric aggregation kind.  The possible metric aggregation kinds are
+                # "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
+                # The specified aggregation kind is case-insensitive.
+                #
+                # If omitted, this is not an aggregated value but instead
+                # a single metric sample value.
             "scalar": "", # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
                 # "And", and "Or".  The possible value types are Long, Double, and Boolean.
+            "meanSum": "", # Worker-computed aggregate value for the "Mean" aggregation kind.
+                # This holds the sum of the aggregated values and is used in combination
+                # with mean_count below to obtain the actual mean aggregate value.
+                # The only possible value types are Long and Double.
+            "distribution": "", # A struct value describing properties of a distribution of numeric values.
             "internal": "", # Worker-computed aggregate value for internal use by the Dataflow
                 # service.
           },
@@ -1968,8 +1988,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -1977,7 +1996,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingParallelism": { # Represents the level of parallelism in a WorkItem's input, # Total amount of parallelism in the input of this task that remains,
               # (i.e. can be delegated to this task and any new tasks via dynamic
@@ -2056,8 +2076,7 @@
           "end": True or False, # Position is past all other positions. Also useful for the end
               # position of an unbounded range.
           "recordIndex": "A String", # Position is a record index.
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
           "key": "A String", # Position is a string key, ordered lexicographically.
           "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
               # position. A ConcatPosition can be used by a reader of a source that
@@ -2065,16 +2084,17 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "byteOffset": "A String", # Position is a byte offset.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
         },
-        "leaseExpireTime": "A String", # Time at which the current lease will expire.
-        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker.
-            # Note: If the report call fails for whatever reason, the worker should
-            # reuse this index for subsequent report attempts.
         "harnessData": { # Other data returned by the service, specific to the particular
             # worker harness.
           "a_key": "", # Properties of the object.
         },
+        "nextReportIndex": "A String", # The index value to use for the next report sent by the worker.
+            # Note: If the report call fails for whatever reason, the worker should
+            # reuse this index for subsequent report attempts.
+        "leaseExpireTime": "A String", # Time at which the current lease will expire.
         "metricShortId": [ # The short ids that workers should use in subsequent metric updates.
             # Workers should strive to use short ids whenever possible, but it is ok
             # to request the short_id again if a worker lost track of it
@@ -2098,8 +2118,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -2107,7 +2126,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
         },
         "suggestedStopPoint": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of split_request.
@@ -2117,8 +2137,7 @@
             "end": True or False, # Position is past all other positions. Also useful for the end
                 # position of an unbounded range.
             "recordIndex": "A String", # Position is a record index.
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
             "key": "A String", # Position is a string key, ordered lexicographically.
             "concatPosition": { # A position that encapsulates an inner position and an index for the inner # CloudPosition is a concat position.
                 # position. A ConcatPosition can be used by a reader of a source that
@@ -2126,7 +2145,8 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "byteOffset": "A String", # Position is a byte offset.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.templates.html b/docs/dyn/dataflow_v1b3.projects.locations.templates.html
new file mode 100644
index 0000000..36830be
--- /dev/null
+++ b/docs/dyn/dataflow_v1b3.projects.locations.templates.html
@@ -0,0 +1,1256 @@
+<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="dataflow_v1b3.html">Google Dataflow API</a> . <a href="dataflow_v1b3.projects.html">projects</a> . <a href="dataflow_v1b3.projects.locations.html">locations</a> . <a href="dataflow_v1b3.projects.locations.templates.html">templates</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(projectId, location, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Cloud Dataflow job from a template.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, location, gcsPath=None, x__xgafv=None, view=None)</a></code></p>
+<p class="firstline">Get the template associated with a template.</p>
+<p class="toc_element">
+  <code><a href="#launch">launch(projectId, location, body, gcsPath=None, validateOnly=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Launch a template.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, location, body, x__xgafv=None)</code>
+  <pre>Creates a Cloud Dataflow job from a template.
+
+Args:
+  projectId: string, Required. The ID of the Cloud Platform project that the job belongs to. (required)
+  location: string, The location to which to direct the request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A request to create a Cloud Dataflow job from a template.
+    "environment": { # The environment values to set at runtime. # The runtime environment for the job.
+      "machineType": "A String", # The machine type to use for the job. Defaults to the value from the
+          # template if not specified.
+      "zone": "A String", # The Compute Engine [availability
+          # zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+          # for launching worker instances to run your pipeline.
+      "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
+          # Use with caution.
+      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
+          # Must be a valid Cloud Storage URL, beginning with `gs://`.
+      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
+    },
+    "gcsPath": "A String", # Required. A Cloud Storage path to the template from which to
+        # create the job.
+        # Must be a valid Cloud Storage URL, beginning with `gs://`.
+    "location": "A String", # The location to which to direct the request.
+    "parameters": { # The runtime parameters to pass to the job.
+      "a_key": "A String",
+    },
+    "jobName": "A String", # Required. The job name to use for the created job.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a job to be run by the Cloud Dataflow service.
+      "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+          # If this field is set, the service will ensure its uniqueness.
+          # The request to create a job will fail if the service has knowledge of a
+          # previously submitted job with the same client's ID and job name.
+          # The caller may use this field to ensure idempotence of job
+          # creation across retried attempts to create a job.
+          # By default, the field is empty and, in that case, the service ignores it.
+      "requestedState": "A String", # The job's requested state.
+          #
+          # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+          # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+          # also be used to directly set a job's requested state to
+          # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+          # job if it has not already reached a terminal state.
+      "name": "A String", # The user-specified Cloud Dataflow job name.
+          #
+          # Only one Job with a given name may exist in a project at any
+          # given time. If a caller attempts to create a Job with the same
+          # name as an already-existing Job, the attempt returns the
+          # existing Job.
+          #
+          # The name must match the regular expression
+          # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+      "location": "A String", # The location that contains this job.
+      "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+          # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+      "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+      "labels": { # User-defined labels for this job.
+          #
+          # The labels map can contain no more than 64 entries.  Entries of the labels
+          # map are UTF8 strings that comply with the following restrictions:
+          #
+          # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+          # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+          # * Both keys and values are additionally constrained to be <= 128 bytes in
+          # size.
+        "a_key": "A String",
+      },
+      "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+          # corresponding name prefixes of the new job.
+        "a_key": "A String",
+      },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
+      "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+        "version": { # A structure describing which components and their versions of the service
+            # are required in order to run the job.
+          "a_key": "", # Properties of the object.
+        },
+        "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+            # storage.  The system will append the suffix "/temp-{JOBNAME} to
+            # this resource prefix, where {JOBNAME} is the value of the
+            # job_name field.  The resulting bucket and object prefix is used
+            # as the prefix of the resources used to store temporary data
+            # needed during the job execution.  NOTE: This will override the
+            # value in taskrunner_settings.
+            # The supported resource type is:
+            #
+            # Google Cloud Storage:
+            #
+            #   storage.googleapis.com/{bucket}/{object}
+            #   bucket.storage.googleapis.com/{object}
+        "internalExperiments": { # Experimental settings.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "dataset": "A String", # The dataset for the current project where various workflow
+            # related tables are stored.
+            #
+            # The supported resource type is:
+            #
+            # Google BigQuery:
+            #   bigquery.googleapis.com/{dataset}
+        "experiments": [ # The list of experiments to enable.
+          "A String",
+        ],
+        "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
+        "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+            # options are passed through the service and are used to recreate the
+            # SDK pipeline options on the worker in a language agnostic and platform
+            # independent way.
+          "a_key": "", # Properties of the object.
+        },
+        "userAgent": { # A description of the process that generated the request.
+          "a_key": "", # Properties of the object.
+        },
+        "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+            # unspecified, the service will attempt to choose a reasonable
+            # default.  This should be in the form of the API service name,
+            # e.g. "compute.googleapis.com".
+        "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+            # specified in order for the job to have workers.
+          { # Describes one particular pool of Cloud Dataflow workers to be
+              # instantiated by the Cloud Dataflow service in order to perform the
+              # computations required by a job.  Note that a workflow job may use
+              # multiple pools, in order to match the various computational
+              # requirements of the various stages of the job.
+            "diskSourceImage": "A String", # Fully qualified source image for disks.
+            "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                # using the standard Dataflow task runner.  Users should ignore
+                # this field.
+              "workflowFileName": "A String", # The file to store the workflow in.
+              "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                  # will not be uploaded.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+              "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                    # "shuffle/v1beta1".
+                "workerId": "A String", # The ID of the worker running this pipeline.
+                "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                    # "dataflow/v1b3/projects".
+                "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                    # storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+              },
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
+              "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                  #
+                  # When workers access Google Cloud APIs, they logically do so via
+                  # relative URLs.  If this field is specified, it supplies the base
+                  # URL to use for resolving these relative URLs.  The normative
+                  # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                  # Locators".
+                  #
+                  # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "harnessCommand": "A String", # The command to launch the worker harness.
+              "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                  # temporary storage.
+                  #
+                  # The supported resource type is:
+                  #
+                  # Google Cloud Storage:
+                  #   storage.googleapis.com/{bucket}/{object}
+                  #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "dataDisks": [ # Data disks that are used by a VM in this workflow.
+              { # Describes the data disk used by a workflow job.
+                "mountPoint": "A String", # Directory in a VM where disk is mounted.
+                "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                    # attempt to choose a reasonable default.
+                "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                    # must be a disk type appropriate to the project and zone in which
+                    # the workers will run.  If unknown or unspecified, the service
+                    # will attempt to choose a reasonable default.
+                    #
+                    # For example, the standard persistent disk type is a resource name
+                    # typically ending in "pd-standard".  If SSD persistent disks are
+                    # available, the resource name typically ends with "pd-ssd".  The
+                    # actual valid values are defined the Google Compute Engine API,
+                    # not by the Cloud Dataflow API; consult the Google Compute Engine
+                    # documentation for more information about determining the set of
+                    # available disk types for a particular project and zone.
+                    #
+                    # Google Compute Engine Disk types are local to a particular
+                    # project in a particular zone, and so the resource name will
+                    # typically look something like this:
+                    #
+                    # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
+              },
+            ],
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
+          },
+        ],
+      },
+      "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+          # A description of the user pipeline and stages through which it is executed.
+          # Created by Cloud Dataflow service.  Only retrieved with
+          # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+          # form.  This data is provided by the Dataflow service for ease of visualizing
+          # the pipeline and interpretting Dataflow provided metrics.
+        "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+          { # Description of the type, names/ids, and input/outputs for a transform.
+            "kind": "A String", # Type of transform.
+            "name": "A String", # User provided name for this transform instance.
+            "inputCollectionName": [ # User names for all collection inputs to this transform.
+              "A String",
+            ],
+            "displayData": [ # Transform-specific display data.
+              { # Data provided with a pipeline or transform to provide descriptive info.
+                "shortStrValue": "A String", # A possible additional shorter value to display.
+                    # For example a java_class_name_value of com.mypackage.MyDoFn
+                    # will be stored with MyDoFn as the short_str_value and
+                    # com.mypackage.MyDoFn as the java_class_name value.
+                    # short_str_value can be displayed and java_class_name_value
+                    # will be displayed as a tooltip.
+                "durationValue": "A String", # Contains value if the data is of duration type.
+                "url": "A String", # An optional full URL.
+                "floatValue": 3.14, # Contains value if the data is of float type.
+                "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                    # language namespace (i.e. python module) which defines the display data.
+                    # This allows a dax monitoring system to specially handle the data
+                    # and perform custom rendering.
+                "javaClassValue": "A String", # Contains value if the data is of java class type.
+                "label": "A String", # An optional label to display in a dax UI for the element.
+                "boolValue": True or False, # Contains value if the data is of a boolean type.
+                "strValue": "A String", # Contains value if the data is of string type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
+                "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              },
+            ],
+            "outputCollectionName": [ # User  names for all collection outputs to this transform.
+              "A String",
+            ],
+            "id": "A String", # SDK generated id of this transform instance.
+          },
+        ],
+        "displayData": [ # Pipeline level display data.
+          { # Data provided with a pipeline or transform to provide descriptive info.
+            "shortStrValue": "A String", # A possible additional shorter value to display.
+                # For example a java_class_name_value of com.mypackage.MyDoFn
+                # will be stored with MyDoFn as the short_str_value and
+                # com.mypackage.MyDoFn as the java_class_name value.
+                # short_str_value can be displayed and java_class_name_value
+                # will be displayed as a tooltip.
+            "durationValue": "A String", # Contains value if the data is of duration type.
+            "url": "A String", # An optional full URL.
+            "floatValue": 3.14, # Contains value if the data is of float type.
+            "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                # language namespace (i.e. python module) which defines the display data.
+                # This allows a dax monitoring system to specially handle the data
+                # and perform custom rendering.
+            "javaClassValue": "A String", # Contains value if the data is of java class type.
+            "label": "A String", # An optional label to display in a dax UI for the element.
+            "boolValue": True or False, # Contains value if the data is of a boolean type.
+            "strValue": "A String", # Contains value if the data is of string type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
+            "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+          },
+        ],
+        "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+          { # Description of the composing transforms, names/ids, and input/outputs of a
+              # stage of execution.  Some composing transforms and sources may have been
+              # generated by the Dataflow service during execution planning.
+            "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+              { # Description of an interstitial value between transforms in an execution
+                  # stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "kind": "A String", # Type of tranform this stage is executing.
+            "name": "A String", # Dataflow service generated name for this stage.
+            "outputSource": [ # Output sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "inputSource": [ # Input sources for this stage.
+              { # Description of an input or output of an execution stage.
+                "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                    # source is most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+                "sizeBytes": "A String", # Size of the source, if measurable.
+              },
+            ],
+            "componentTransform": [ # Transforms that comprise this execution stage.
+              { # Description of a transform executed as part of an execution stage.
+                "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                "originalTransform": "A String", # User name for the original user transform with which this transform is
+                    # most closely associated.
+                "name": "A String", # Dataflow service generated name for this source.
+              },
+            ],
+            "id": "A String", # Dataflow service generated id for this stage.
+          },
+        ],
+      },
+      "steps": [ # The top-level steps that constitute the entire job.
+        { # Defines a particular step within a Cloud Dataflow job.
+            #
+            # A job consists of multiple steps, each of which performs some
+            # specific operation as part of the overall job.  Data is typically
+            # passed from one step to another as part of the job.
+            #
+            # Here's an example of a sequence of steps which together implement a
+            # Map-Reduce job:
+            #
+            #   * Read a collection of data from some source, parsing the
+            #     collection's elements.
+            #
+            #   * Validate the elements.
+            #
+            #   * Apply a user-defined function to map each element to some value
+            #     and extract an element-specific key value.
+            #
+            #   * Group elements with the same key into a single element with
+            #     that key, transforming a multiply-keyed collection into a
+            #     uniquely-keyed collection.
+            #
+            #   * Write the elements out to some data sink.
+            #
+            # Note that the Cloud Dataflow service may be used to run many different
+            # types of jobs, not just Map-Reduce.
+          "kind": "A String", # The kind of step in the Cloud Dataflow job.
+          "properties": { # Named properties associated with the step. Each kind of
+              # predefined step has its own required set of properties.
+              # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
+            "a_key": "", # Properties of the object.
+          },
+          "name": "A String", # The name that identifies the step. This must be unique for each
+              # step with respect to all other steps in the Cloud Dataflow job.
+        },
+      ],
+      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "tempFiles": [ # A set of files the system should be aware of that are used
+          # for temporary storage. These temporary files will be
+          # removed on job completion.
+          # No duplicates are allowed.
+          # No file patterns are supported.
+          #
+          # The supported files are:
+          #
+          # Google Cloud Storage:
+          #
+          #    storage.googleapis.com/{bucket}/{object}
+          #    bucket.storage.googleapis.com/{object}
+        "A String",
+      ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
+      "type": "A String", # The type of Cloud Dataflow job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
+          #
+          # When sending a `CreateJobRequest`, you can update a job by specifying it
+          # here. The job named here is stopped, and its intermediate state is
+          # transferred to this job.
+      "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+          # isn't contained in the submitted job.
+        "stages": { # A mapping from each stage to the information about that stage.
+          "a_key": { # Contains information about how a particular
+              # google.dataflow.v1beta3.Step will be executed.
+            "stepName": [ # The steps associated with the execution stage.
+                # Note that stages may have several steps, and that a given step
+                # might be run by more than one stage.
+              "A String",
+            ],
+          },
+        },
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, location, gcsPath=None, x__xgafv=None, view=None)</code>
+  <pre>Get the template associated with a template.
+
+Args:
+  projectId: string, Required. The ID of the Cloud Platform project that the job belongs to. (required)
+  location: string, The location to which to direct the request. (required)
+  gcsPath: string, Required. A Cloud Storage path to the template from which to
+create the job.
+Must be a valid Cloud Storage URL, beginning with `gs://`.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  view: string, The view to retrieve. Defaults to METADATA_ONLY.
+
+Returns:
+  An object of the form:
+
+    { # The response to a GetTemplate request.
+    "status": { # The `Status` type defines a logical error model that is suitable for different # The status of the get template request. Any problems with the
+        # request will be indicated in the error_details.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "metadata": { # Metadata describing a template. # The template metadata describing the template name, available
+        # parameters, etc.
+      "name": "A String", # Required. The name of the template.
+      "parameters": [ # The parameters for the template.
+        { # Metadata for a specific parameter.
+          "regexes": [ # Optional. Regexes that the parameter must match.
+            "A String",
+          ],
+          "helpText": "A String", # Required. The help text to display for the parameter.
+          "name": "A String", # Required. The name of the parameter.
+          "isOptional": True or False, # Optional. Whether the parameter is optional. Defaults to false.
+          "label": "A String", # Required. The label to display for the parameter.
+        },
+      ],
+      "description": "A String", # Optional. A description of the template.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="launch">launch(projectId, location, body, gcsPath=None, validateOnly=None, x__xgafv=None)</code>
+  <pre>Launch a template.
+
+Args:
+  projectId: string, Required. The ID of the Cloud Platform project that the job belongs to. (required)
+  location: string, The location to which to direct the request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Parameters to provide to the template being launched.
+    "environment": { # The environment values to set at runtime. # The runtime environment for the job.
+      "machineType": "A String", # The machine type to use for the job. Defaults to the value from the
+          # template if not specified.
+      "zone": "A String", # The Compute Engine [availability
+          # zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+          # for launching worker instances to run your pipeline.
+      "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
+          # Use with caution.
+      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
+          # Must be a valid Cloud Storage URL, beginning with `gs://`.
+      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
+    },
+    "parameters": { # The runtime parameters to pass to the job.
+      "a_key": "A String",
+    },
+    "jobName": "A String", # Required. The job name to use for the created job.
+  }
+
+  gcsPath: string, Required. A Cloud Storage path to the template from which to create
+the job.
+Must be valid Cloud Storage URL, beginning with 'gs://'.
+  validateOnly: boolean, If true, the request is validated but not actually executed.
+Defaults to false.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response to the request to launch a template.
+    "job": { # Defines a job to be run by the Cloud Dataflow service. # The job that was launched, if the request was not a dry run and
+        # the job was successfully launched.
+        "clientRequestId": "A String", # The client's unique identifier of the job, re-used across retried attempts.
+            # If this field is set, the service will ensure its uniqueness.
+            # The request to create a job will fail if the service has knowledge of a
+            # previously submitted job with the same client's ID and job name.
+            # The caller may use this field to ensure idempotence of job
+            # creation across retried attempts to create a job.
+            # By default, the field is empty and, in that case, the service ignores it.
+        "requestedState": "A String", # The job's requested state.
+            #
+            # `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+            # `JOB_STATE_RUNNING` states, by setting requested_state.  `UpdateJob` may
+            # also be used to directly set a job's requested state to
+            # `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+            # job if it has not already reached a terminal state.
+        "name": "A String", # The user-specified Cloud Dataflow job name.
+            #
+            # Only one Job with a given name may exist in a project at any
+            # given time. If a caller attempts to create a Job with the same
+            # name as an already-existing Job, the attempt returns the
+            # existing Job.
+            #
+            # The name must match the regular expression
+            # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
+        "location": "A String", # The location that contains this job.
+        "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
+            # `JOB_STATE_UPDATED`), this field contains the ID of that job.
+        "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+        "currentState": "A String", # The current state of the job.
+            #
+            # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+            # specified.
+            #
+            # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+            # terminal state. After a job has reached a terminal state, no
+            # further state updates may be made.
+            #
+            # This field may be mutated by the Cloud Dataflow service;
+            # callers cannot mutate it.
+        "labels": { # User-defined labels for this job.
+            #
+            # The labels map can contain no more than 64 entries.  Entries of the labels
+            # map are UTF8 strings that comply with the following restrictions:
+            #
+            # * Keys must conform to regexp:  \p{Ll}\p{Lo}{0,62}
+            # * Values must conform to regexp:  [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+            # * Both keys and values are additionally constrained to be <= 128 bytes in
+            # size.
+          "a_key": "A String",
+        },
+        "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
+            # corresponding name prefixes of the new job.
+          "a_key": "A String",
+        },
+        "id": "A String", # The unique ID of this job.
+            #
+            # This field is set by the Cloud Dataflow service when the Job is
+            # created, and is immutable for the life of the job.
+        "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
+          "version": { # A structure describing which components and their versions of the service
+              # are required in order to run the job.
+            "a_key": "", # Properties of the object.
+          },
+          "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+              # storage.  The system will append the suffix "/temp-{JOBNAME} to
+              # this resource prefix, where {JOBNAME} is the value of the
+              # job_name field.  The resulting bucket and object prefix is used
+              # as the prefix of the resources used to store temporary data
+              # needed during the job execution.  NOTE: This will override the
+              # value in taskrunner_settings.
+              # The supported resource type is:
+              #
+              # Google Cloud Storage:
+              #
+              #   storage.googleapis.com/{bucket}/{object}
+              #   bucket.storage.googleapis.com/{object}
+          "internalExperiments": { # Experimental settings.
+            "a_key": "", # Properties of the object. Contains field @type with type URL.
+          },
+          "dataset": "A String", # The dataset for the current project where various workflow
+              # related tables are stored.
+              #
+              # The supported resource type is:
+              #
+              # Google BigQuery:
+              #   bigquery.googleapis.com/{dataset}
+          "experiments": [ # The list of experiments to enable.
+            "A String",
+          ],
+          "serviceAccountEmail": "A String", # Identity to run virtual machines as. Defaults to the default account.
+          "sdkPipelineOptions": { # The Cloud Dataflow SDK pipeline options specified by the user. These
+              # options are passed through the service and are used to recreate the
+              # SDK pipeline options on the worker in a language agnostic and platform
+              # independent way.
+            "a_key": "", # Properties of the object.
+          },
+          "userAgent": { # A description of the process that generated the request.
+            "a_key": "", # Properties of the object.
+          },
+          "clusterManagerApiService": "A String", # The type of cluster manager API to use.  If unknown or
+              # unspecified, the service will attempt to choose a reasonable
+              # default.  This should be in the form of the API service name,
+              # e.g. "compute.googleapis.com".
+          "workerPools": [ # The worker pools. At least one "harness" worker pool must be
+              # specified in order for the job to have workers.
+            { # Describes one particular pool of Cloud Dataflow workers to be
+                # instantiated by the Cloud Dataflow service in order to perform the
+                # computations required by a job.  Note that a workflow job may use
+                # multiple pools, in order to match the various computational
+                # requirements of the various stages of the job.
+              "diskSourceImage": "A String", # Fully qualified source image for disks.
+              "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
+                  # using the standard Dataflow task runner.  Users should ignore
+                  # this field.
+                "workflowFileName": "A String", # The file to store the workflow in.
+                "logUploadLocation": "A String", # Indicates where to put logs.  If this is not specified, the logs
+                    # will not be uploaded.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+                "commandlinesFileName": "A String", # The file to store preprocessing commands in.
+                "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
+                  "reportingEnabled": True or False, # Whether to send work progress updates to the service.
+                  "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
+                      # "shuffle/v1beta1".
+                  "workerId": "A String", # The ID of the worker running this pipeline.
+                  "baseUrl": "A String", # The base URL for accessing Google Cloud APIs.
+                      #
+                      # When workers access Google Cloud APIs, they logically do so via
+                      # relative URLs.  If this field is specified, it supplies the base
+                      # URL to use for resolving these relative URLs.  The normative
+                      # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                      # Locators".
+                      #
+                      # If not specified, the default value is "http://www.googleapis.com/"
+                  "servicePath": "A String", # The Cloud Dataflow service path relative to the root URL, for example,
+                      # "dataflow/v1b3/projects".
+                  "tempStoragePrefix": "A String", # The prefix of the resources the system should use for temporary
+                      # storage.
+                      #
+                      # The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #
+                      #   storage.googleapis.com/{bucket}/{object}
+                      #   bucket.storage.googleapis.com/{object}
+                },
+                "vmId": "A String", # The ID string of the VM.
+                "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                    # access the Cloud Dataflow API.
+                  "A String",
+                ],
+                "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                    # taskrunner; e.g. "root".
+                "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
+                    #
+                    # When workers access Google Cloud APIs, they logically do so via
+                    # relative URLs.  If this field is specified, it supplies the base
+                    # URL to use for resolving these relative URLs.  The normative
+                    # algorithm used is defined by RFC 1808, "Relative Uniform Resource
+                    # Locators".
+                    #
+                    # If not specified, the default value is "http://www.googleapis.com/"
+                "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                    # taskrunner; e.g. "wheel".
+                "languageHint": "A String", # The suggested backend language.
+                "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                    # console.
+                "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                "logDir": "A String", # The directory on the VM to store logs.
+                "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                "harnessCommand": "A String", # The command to launch the worker harness.
+                "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
+                    # temporary storage.
+                    #
+                    # The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #   storage.googleapis.com/{bucket}/{object}
+                    #   bucket.storage.googleapis.com/{object}
+                "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
+              },
+              "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                  # are supported.
+              "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                  # service will attempt to choose a reasonable default.
+              "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                  # the service will use the network "default".
+              "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                  # will attempt to choose a reasonable default.
+              "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "dataDisks": [ # Data disks that are used by a VM in this workflow.
+                { # Describes the data disk used by a workflow job.
+                  "mountPoint": "A String", # Directory in a VM where disk is mounted.
+                  "sizeGb": 42, # Size of disk in GB.  If zero or unspecified, the service will
+                      # attempt to choose a reasonable default.
+                  "diskType": "A String", # Disk storage type, as defined by Google Compute Engine.  This
+                      # must be a disk type appropriate to the project and zone in which
+                      # the workers will run.  If unknown or unspecified, the service
+                      # will attempt to choose a reasonable default.
+                      #
+                      # For example, the standard persistent disk type is a resource name
+                      # typically ending in "pd-standard".  If SSD persistent disks are
+                      # available, the resource name typically ends with "pd-ssd".  The
+                      # actual valid values are defined the Google Compute Engine API,
+                      # not by the Cloud Dataflow API; consult the Google Compute Engine
+                      # documentation for more information about determining the set of
+                      # available disk types for a particular project and zone.
+                      #
+                      # Google Compute Engine Disk types are local to a particular
+                      # project in a particular zone, and so the resource name will
+                      # typically look something like this:
+                      #
+                      # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
+                },
+              ],
+              "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                  # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                  # `TEARDOWN_NEVER`.
+                  # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                  # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                  # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                  # down.
+                  #
+                  # If the workers are not torn down by the service, they will
+                  # continue to run and use Google Compute Engine VM resources in the
+                  # user's project until they are explicitly terminated by the user.
+                  # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                  # policy except for small, manually supervised test jobs.
+                  #
+                  # If unknown or unspecified, the service will attempt to choose a reasonable
+                  # default.
+              "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                  # Compute Engine API.
+              "ipConfiguration": "A String", # Configuration for VM IPs.
+              "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                  # service will choose a number of threads (according to the number of cores
+                  # on the selected machine type for batch, or 1 by convention for streaming).
+              "poolArgs": { # Extra arguments for this worker pool.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+              "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                  # execute the job.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
+                  # harness, residing in Google Container Registry.
+              "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                  # the form "regions/REGION/subnetworks/SUBNETWORK".
+              "packages": [ # Packages to be installed on workers.
+                { # The packages that must be installed in order for a worker to run the
+                    # steps of the Cloud Dataflow job that will be assigned to its worker
+                    # pool.
+                    #
+                    # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                    # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                    # might use this to install jars containing the user's code and all of the
+                    # various dependencies (libraries, data files, etc.) required in order
+                    # for that code to run.
+                  "location": "A String", # The resource to read the package from. The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #
+                      #   storage.googleapis.com/{bucket}
+                      #   bucket.storage.googleapis.com/
+                  "name": "A String", # The name of the package.
+                },
+              ],
+              "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+                "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+                "algorithm": "A String", # The algorithm to use for autoscaling.
+              },
+              "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                  # select a default set of packages which are useful to worker
+                  # harnesses written in a particular language.
+              "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "metadata": { # Metadata to set on the Google Compute Engine VMs.
+                "a_key": "A String",
+              },
+            },
+          ],
+        },
+        "pipelineDescription": { # A descriptive representation of submitted pipeline as well as the executed # Preliminary field: The format of this data may change at any time.
+            # A description of the user pipeline and stages through which it is executed.
+            # Created by Cloud Dataflow service.  Only retrieved with
+            # JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+            # form.  This data is provided by the Dataflow service for ease of visualizing
+            # the pipeline and interpretting Dataflow provided metrics.
+          "originalPipelineTransform": [ # Description of each transform in the pipeline and collections between them.
+            { # Description of the type, names/ids, and input/outputs for a transform.
+              "kind": "A String", # Type of transform.
+              "name": "A String", # User provided name for this transform instance.
+              "inputCollectionName": [ # User names for all collection inputs to this transform.
+                "A String",
+              ],
+              "displayData": [ # Transform-specific display data.
+                { # Data provided with a pipeline or transform to provide descriptive info.
+                  "shortStrValue": "A String", # A possible additional shorter value to display.
+                      # For example a java_class_name_value of com.mypackage.MyDoFn
+                      # will be stored with MyDoFn as the short_str_value and
+                      # com.mypackage.MyDoFn as the java_class_name value.
+                      # short_str_value can be displayed and java_class_name_value
+                      # will be displayed as a tooltip.
+                  "durationValue": "A String", # Contains value if the data is of duration type.
+                  "url": "A String", # An optional full URL.
+                  "floatValue": 3.14, # Contains value if the data is of float type.
+                  "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                      # language namespace (i.e. python module) which defines the display data.
+                      # This allows a dax monitoring system to specially handle the data
+                      # and perform custom rendering.
+                  "javaClassValue": "A String", # Contains value if the data is of java class type.
+                  "label": "A String", # An optional label to display in a dax UI for the element.
+                  "boolValue": True or False, # Contains value if the data is of a boolean type.
+                  "strValue": "A String", # Contains value if the data is of string type.
+                  "key": "A String", # The key identifying the display data.
+                      # This is intended to be used as a label for the display data
+                      # when viewed in a dax monitoring system.
+                  "int64Value": "A String", # Contains value if the data is of int64 type.
+                  "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                },
+              ],
+              "outputCollectionName": [ # User  names for all collection outputs to this transform.
+                "A String",
+              ],
+              "id": "A String", # SDK generated id of this transform instance.
+            },
+          ],
+          "displayData": [ # Pipeline level display data.
+            { # Data provided with a pipeline or transform to provide descriptive info.
+              "shortStrValue": "A String", # A possible additional shorter value to display.
+                  # For example a java_class_name_value of com.mypackage.MyDoFn
+                  # will be stored with MyDoFn as the short_str_value and
+                  # com.mypackage.MyDoFn as the java_class_name value.
+                  # short_str_value can be displayed and java_class_name_value
+                  # will be displayed as a tooltip.
+              "durationValue": "A String", # Contains value if the data is of duration type.
+              "url": "A String", # An optional full URL.
+              "floatValue": 3.14, # Contains value if the data is of float type.
+              "namespace": "A String", # The namespace for the key. This is usually a class name or programming
+                  # language namespace (i.e. python module) which defines the display data.
+                  # This allows a dax monitoring system to specially handle the data
+                  # and perform custom rendering.
+              "javaClassValue": "A String", # Contains value if the data is of java class type.
+              "label": "A String", # An optional label to display in a dax UI for the element.
+              "boolValue": True or False, # Contains value if the data is of a boolean type.
+              "strValue": "A String", # Contains value if the data is of string type.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
+              "int64Value": "A String", # Contains value if the data is of int64 type.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            },
+          ],
+          "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
+            { # Description of the composing transforms, names/ids, and input/outputs of a
+                # stage of execution.  Some composing transforms and sources may have been
+                # generated by the Dataflow service during execution planning.
+              "componentSource": [ # Collections produced and consumed by component transforms of this stage.
+                { # Description of an interstitial value between transforms in an execution
+                    # stage.
+                  "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                  "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                      # source is most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                },
+              ],
+              "kind": "A String", # Type of tranform this stage is executing.
+              "name": "A String", # Dataflow service generated name for this stage.
+              "outputSource": [ # Output sources for this stage.
+                { # Description of an input or output of an execution stage.
+                  "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                  "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                      # source is most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                  "sizeBytes": "A String", # Size of the source, if measurable.
+                },
+              ],
+              "inputSource": [ # Input sources for this stage.
+                { # Description of an input or output of an execution stage.
+                  "userName": "A String", # Human-readable name for this source; may be user or system generated.
+                  "originalTransformOrCollection": "A String", # User name for the original user transform or collection with which this
+                      # source is most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                  "sizeBytes": "A String", # Size of the source, if measurable.
+                },
+              ],
+              "componentTransform": [ # Transforms that comprise this execution stage.
+                { # Description of a transform executed as part of an execution stage.
+                  "userName": "A String", # Human-readable name for this transform; may be user or system generated.
+                  "originalTransform": "A String", # User name for the original user transform with which this transform is
+                      # most closely associated.
+                  "name": "A String", # Dataflow service generated name for this source.
+                },
+              ],
+              "id": "A String", # Dataflow service generated id for this stage.
+            },
+          ],
+        },
+        "steps": [ # The top-level steps that constitute the entire job.
+          { # Defines a particular step within a Cloud Dataflow job.
+              #
+              # A job consists of multiple steps, each of which performs some
+              # specific operation as part of the overall job.  Data is typically
+              # passed from one step to another as part of the job.
+              #
+              # Here's an example of a sequence of steps which together implement a
+              # Map-Reduce job:
+              #
+              #   * Read a collection of data from some source, parsing the
+              #     collection's elements.
+              #
+              #   * Validate the elements.
+              #
+              #   * Apply a user-defined function to map each element to some value
+              #     and extract an element-specific key value.
+              #
+              #   * Group elements with the same key into a single element with
+              #     that key, transforming a multiply-keyed collection into a
+              #     uniquely-keyed collection.
+              #
+              #   * Write the elements out to some data sink.
+              #
+              # Note that the Cloud Dataflow service may be used to run many different
+              # types of jobs, not just Map-Reduce.
+            "kind": "A String", # The kind of step in the Cloud Dataflow job.
+            "properties": { # Named properties associated with the step. Each kind of
+                # predefined step has its own required set of properties.
+                # Must be provided on Create.  Only retrieved with JOB_VIEW_ALL.
+              "a_key": "", # Properties of the object.
+            },
+            "name": "A String", # The name that identifies the step. This must be unique for each
+                # step with respect to all other steps in the Cloud Dataflow job.
+          },
+        ],
+        "currentStateTime": "A String", # The timestamp associated with the current state.
+        "tempFiles": [ # A set of files the system should be aware of that are used
+            # for temporary storage. These temporary files will be
+            # removed on job completion.
+            # No duplicates are allowed.
+            # No file patterns are supported.
+            #
+            # The supported files are:
+            #
+            # Google Cloud Storage:
+            #
+            #    storage.googleapis.com/{bucket}/{object}
+            #    bucket.storage.googleapis.com/{object}
+          "A String",
+        ],
+        "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+            # callers cannot mutate it.
+          { # A message describing the state of a particular execution stage.
+            "executionStageName": "A String", # The name of the execution stage.
+            "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+            "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+          },
+        ],
+        "type": "A String", # The type of Cloud Dataflow job.
+        "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+            # Cloud Dataflow service.
+        "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+            # of the job it replaced.
+            #
+            # When sending a `CreateJobRequest`, you can update a job by specifying it
+            # here. The job named here is stopped, and its intermediate state is
+            # transferred to this job.
+        "executionInfo": { # Additional information about how a Cloud Dataflow job will be executed that # Deprecated.
+            # isn't contained in the submitted job.
+          "stages": { # A mapping from each stage to the information about that stage.
+            "a_key": { # Contains information about how a particular
+                # google.dataflow.v1beta3.Step will be executed.
+              "stepName": [ # The steps associated with the execution stage.
+                  # Note that stages may have several steps, and that a given step
+                  # might be run by more than one stage.
+                "A String",
+              ],
+            },
+          },
+        },
+      },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1b3.projects.templates.html b/docs/dyn/dataflow_v1b3.projects.templates.html
index c5f3998..73bacf7 100644
--- a/docs/dyn/dataflow_v1b3.projects.templates.html
+++ b/docs/dyn/dataflow_v1b3.projects.templates.html
@@ -78,10 +78,10 @@
   <code><a href="#create">create(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a Cloud Dataflow job from a template.</p>
 <p class="toc_element">
-  <code><a href="#get">get(projectId, gcsPath=None, x__xgafv=None, view=None)</a></code></p>
+  <code><a href="#get">get(projectId, gcsPath=None, location=None, x__xgafv=None, view=None)</a></code></p>
 <p class="firstline">Get the template associated with a template.</p>
 <p class="toc_element">
-  <code><a href="#launch">launch(projectId, body, dryRun=None, gcsPath=None, x__xgafv=None)</a></code></p>
+  <code><a href="#launch">launch(projectId, body, gcsPath=None, location=None, validateOnly=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Launch a template.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -95,19 +95,23 @@
 
 { # A request to create a Cloud Dataflow job from a template.
     "environment": { # The environment values to set at runtime. # The runtime environment for the job.
-      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
-          # available to your pipeline during execution, from 1 to 1000.
-      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
-          # Must be a valid Cloud Storage URL, beginning with `gs://`.
-      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
-      "zone": "A String", # The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+      "machineType": "A String", # The machine type to use for the job. Defaults to the value from the
+          # template if not specified.
+      "zone": "A String", # The Compute Engine [availability
+          # zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
           # for launching worker instances to run your pipeline.
       "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
           # Use with caution.
+      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
+          # Must be a valid Cloud Storage URL, beginning with `gs://`.
+      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
     },
     "gcsPath": "A String", # Required. A Cloud Storage path to the template from which to
         # create the job.
         # Must be a valid Cloud Storage URL, beginning with `gs://`.
+    "location": "A String", # The location to which to direct the request.
     "parameters": { # The runtime parameters to pass to the job.
       "a_key": "A String",
     },
@@ -146,10 +150,21 @@
           #
           # The name must match the regular expression
           # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-      "currentStateTime": "A String", # The timestamp associated with the current state.
+      "location": "A String", # The location that contains this job.
       "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
           # `JOB_STATE_UPDATED`), this field contains the ID of that job.
       "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+      "currentState": "A String", # The current state of the job.
+          #
+          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+          # specified.
+          #
+          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+          # terminal state. After a job has reached a terminal state, no
+          # further state updates may be made.
+          #
+          # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
       "labels": { # User-defined labels for this job.
           #
           # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -161,13 +176,14 @@
           # size.
         "a_key": "A String",
       },
-      "location": "A String", # The location that contains this job.
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
           # corresponding name prefixes of the new job.
         "a_key": "A String",
       },
+      "id": "A String", # The unique ID of this job.
+          #
+          # This field is set by the Cloud Dataflow service when the Job is
+          # created, and is immutable for the life of the job.
       "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
         "version": { # A structure describing which components and their versions of the service
             # are required in order to run the job.
@@ -221,49 +237,6 @@
               # multiple pools, in order to match the various computational
               # requirements of the various stages of the job.
             "diskSourceImage": "A String", # Fully qualified source image for disks.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                # are supported.
-            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                # service will attempt to choose a reasonable default.
-            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                # the service will use the network "default".
-            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                # will attempt to choose a reasonable default.
-            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
-            "metadata": { # Metadata to set on the Google Compute Engine VMs.
-              "a_key": "A String",
-            },
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                # `TEARDOWN_NEVER`.
-                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                # down.
-                #
-                # If the workers are not torn down by the service, they will
-                # continue to run and use Google Compute Engine VM resources in the
-                # user's project until they are explicitly terminated by the user.
-                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                # policy except for small, manually supervised test jobs.
-                #
-                # If unknown or unspecified, the service will attempt to choose a reasonable
-                # default.
-            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                # service will choose a number of threads (according to the number of cores
-                # on the selected machine type for batch, or 1 by convention for streaming).
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "poolArgs": { # Extra arguments for this worker pool.
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                # execute the job.  If zero or unspecified, the service will
-                # attempt to choose a reasonable default.
             "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                 # using the standard Dataflow task runner.  Users should ignore
                 # this field.
@@ -276,17 +249,7 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
-              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "root".
               "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-              "vmId": "A String", # The ID string of the VM.
-              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                  # access the Cloud Dataflow API.
-                "A String",
-              ],
               "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                 "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                 "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -313,14 +276,15 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                  # taskrunner; e.g. "wheel".
-              "languageHint": "A String", # The suggested backend language.
-              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                  # console.
-              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-              "logDir": "A String", # The directory on the VM to store logs.
-              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+              "vmId": "A String", # The ID string of the VM.
+              "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+              "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+              "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                  # access the Cloud Dataflow API.
+                "A String",
+              ],
+              "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "root".
               "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                   #
                   # When workers access Google Cloud APIs, they logically do so via
@@ -330,6 +294,14 @@
                   # Locators".
                   #
                   # If not specified, the default value is "http://www.googleapis.com/"
+              "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                  # taskrunner; e.g. "wheel".
+              "languageHint": "A String", # The suggested backend language.
+              "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                  # console.
+              "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+              "logDir": "A String", # The directory on the VM to store logs.
+              "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
               "harnessCommand": "A String", # The command to launch the worker harness.
               "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                   # temporary storage.
@@ -339,33 +311,18 @@
                   # Google Cloud Storage:
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
+              "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
             },
-            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                # select a default set of packages which are useful to worker
-                # harnesses written in a particular language.
-            "packages": [ # Packages to be installed on workers.
-              { # The packages that must be installed in order for a worker to run the
-                  # steps of the Cloud Dataflow job that will be assigned to its worker
-                  # pool.
-                  #
-                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                  # might use this to install jars containing the user's code and all of the
-                  # various dependencies (libraries, data files, etc.) required in order
-                  # for that code to run.
-                "name": "A String", # The name of the package.
-                "location": "A String", # The resource to read the package from. The supported resource type is:
-                    #
-                    # Google Cloud Storage:
-                    #
-                    #   storage.googleapis.com/{bucket}
-                    #   bucket.storage.googleapis.com/
-              },
-            ],
-            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-              "algorithm": "A String", # The algorithm to use for autoscaling.
-            },
+            "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                # are supported.
+            "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                # service will attempt to choose a reasonable default.
+            "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                # the service will use the network "default".
+            "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                # will attempt to choose a reasonable default.
+            "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                # attempt to choose a reasonable default.
             "dataDisks": [ # Data disks that are used by a VM in this workflow.
               { # Describes the data disk used by a workflow job.
                 "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -391,10 +348,69 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+            "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                # `TEARDOWN_NEVER`.
+                # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                # down.
+                #
+                # If the workers are not torn down by the service, they will
+                # continue to run and use Google Compute Engine VM resources in the
+                # user's project until they are explicitly terminated by the user.
+                # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                # policy except for small, manually supervised test jobs.
+                #
+                # If unknown or unspecified, the service will attempt to choose a reasonable
+                # default.
+            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                # Compute Engine API.
+            "ipConfiguration": "A String", # Configuration for VM IPs.
+            "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                # service will choose a number of threads (according to the number of cores
+                # on the selected machine type for batch, or 1 by convention for streaming).
+            "poolArgs": { # Extra arguments for this worker pool.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+            "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                # execute the job.  If zero or unspecified, the service will
                 # attempt to choose a reasonable default.
             "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                 # harness, residing in Google Container Registry.
+            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                # the form "regions/REGION/subnetworks/SUBNETWORK".
+            "packages": [ # Packages to be installed on workers.
+              { # The packages that must be installed in order for a worker to run the
+                  # steps of the Cloud Dataflow job that will be assigned to its worker
+                  # pool.
+                  #
+                  # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                  # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                  # might use this to install jars containing the user's code and all of the
+                  # various dependencies (libraries, data files, etc.) required in order
+                  # for that code to run.
+                "location": "A String", # The resource to read the package from. The supported resource type is:
+                    #
+                    # Google Cloud Storage:
+                    #
+                    #   storage.googleapis.com/{bucket}
+                    #   bucket.storage.googleapis.com/
+                "name": "A String", # The name of the package.
+              },
+            ],
+            "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+              "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+              "algorithm": "A String", # The algorithm to use for autoscaling.
+            },
+            "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                # select a default set of packages which are useful to worker
+                # harnesses written in a particular language.
+            "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                # attempt to choose a reasonable default.
+            "metadata": { # Metadata to set on the Google Compute Engine VMs.
+              "a_key": "A String",
+            },
           },
         ],
       },
@@ -413,16 +429,13 @@
             ],
             "displayData": [ # Transform-specific display data.
               { # Data provided with a pipeline or transform to provide descriptive info.
-                "key": "A String", # The key identifying the display data.
-                    # This is intended to be used as a label for the display data
-                    # when viewed in a dax monitoring system.
                 "shortStrValue": "A String", # A possible additional shorter value to display.
                     # For example a java_class_name_value of com.mypackage.MyDoFn
                     # will be stored with MyDoFn as the short_str_value and
                     # com.mypackage.MyDoFn as the java_class_name value.
                     # short_str_value can be displayed and java_class_name_value
                     # will be displayed as a tooltip.
-                "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "url": "A String", # An optional full URL.
                 "floatValue": 3.14, # Contains value if the data is of float type.
                 "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -433,8 +446,11 @@
                 "label": "A String", # An optional label to display in a dax UI for the element.
                 "boolValue": True or False, # Contains value if the data is of a boolean type.
                 "strValue": "A String", # Contains value if the data is of string type.
-                "durationValue": "A String", # Contains value if the data is of duration type.
+                "key": "A String", # The key identifying the display data.
+                    # This is intended to be used as a label for the display data
+                    # when viewed in a dax monitoring system.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
+                "timestampValue": "A String", # Contains value if the data is of timestamp type.
               },
             ],
             "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -445,16 +461,13 @@
         ],
         "displayData": [ # Pipeline level display data.
           { # Data provided with a pipeline or transform to provide descriptive info.
-            "key": "A String", # The key identifying the display data.
-                # This is intended to be used as a label for the display data
-                # when viewed in a dax monitoring system.
             "shortStrValue": "A String", # A possible additional shorter value to display.
                 # For example a java_class_name_value of com.mypackage.MyDoFn
                 # will be stored with MyDoFn as the short_str_value and
                 # com.mypackage.MyDoFn as the java_class_name value.
                 # short_str_value can be displayed and java_class_name_value
                 # will be displayed as a tooltip.
-            "timestampValue": "A String", # Contains value if the data is of timestamp type.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "url": "A String", # An optional full URL.
             "floatValue": 3.14, # Contains value if the data is of float type.
             "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -465,8 +478,11 @@
             "label": "A String", # An optional label to display in a dax UI for the element.
             "boolValue": True or False, # Contains value if the data is of a boolean type.
             "strValue": "A String", # Contains value if the data is of string type.
-            "durationValue": "A String", # Contains value if the data is of duration type.
+            "key": "A String", # The key identifying the display data.
+                # This is intended to be used as a label for the display data
+                # when viewed in a dax monitoring system.
             "int64Value": "A String", # Contains value if the data is of int64 type.
+            "timestampValue": "A String", # Contains value if the data is of timestamp type.
           },
         ],
         "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -550,17 +566,7 @@
               # step with respect to all other steps in the Cloud Dataflow job.
         },
       ],
-      "currentState": "A String", # The current state of the job.
-          #
-          # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-          # specified.
-          #
-          # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-          # terminal state. After a job has reached a terminal state, no
-          # further state updates may be made.
-          #
-          # This field may be mutated by the Cloud Dataflow service;
-          # callers cannot mutate it.
+      "currentStateTime": "A String", # The timestamp associated with the current state.
       "tempFiles": [ # A set of files the system should be aware of that are used
           # for temporary storage. These temporary files will be
           # removed on job completion.
@@ -575,11 +581,17 @@
           #    bucket.storage.googleapis.com/{object}
         "A String",
       ],
+      "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+          # callers cannot mutate it.
+        { # A message describing the state of a particular execution stage.
+          "executionStageName": "A String", # The name of the execution stage.
+          "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+          "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+        },
+      ],
       "type": "A String", # The type of Cloud Dataflow job.
-      "id": "A String", # The unique ID of this job.
-          #
-          # This field is set by the Cloud Dataflow service when the Job is
-          # created, and is immutable for the life of the job.
+      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+          # Cloud Dataflow service.
       "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
           # of the job it replaced.
           #
@@ -603,7 +615,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId, gcsPath=None, x__xgafv=None, view=None)</code>
+    <code class="details" id="get">get(projectId, gcsPath=None, location=None, x__xgafv=None, view=None)</code>
   <pre>Get the template associated with a template.
 
 Args:
@@ -611,6 +623,7 @@
   gcsPath: string, Required. A Cloud Storage path to the template from which to
 create the job.
 Must be a valid Cloud Storage URL, beginning with `gs://`.
+  location: string, The location to which to direct the request.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -639,7 +652,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -662,7 +675,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -687,10 +700,6 @@
     },
     "metadata": { # Metadata describing a template. # The template metadata describing the template name, available
         # parameters, etc.
-      "bypassTempDirValidation": True or False, # If true, will bypass the validation that the temp directory is
-          # writable. This should only be used with templates for pipelines
-          # that are guaranteed not to need to write to the temp directory,
-          # which is subject to change based on the optimizer.
       "name": "A String", # Required. The name of the template.
       "parameters": [ # The parameters for the template.
         { # Metadata for a specific parameter.
@@ -709,7 +718,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="launch">launch(projectId, body, dryRun=None, gcsPath=None, x__xgafv=None)</code>
+    <code class="details" id="launch">launch(projectId, body, gcsPath=None, location=None, validateOnly=None, x__xgafv=None)</code>
   <pre>Launch a template.
 
 Args:
@@ -719,15 +728,18 @@
 
 { # Parameters to provide to the template being launched.
     "environment": { # The environment values to set at runtime. # The runtime environment for the job.
-      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
-          # available to your pipeline during execution, from 1 to 1000.
-      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
-          # Must be a valid Cloud Storage URL, beginning with `gs://`.
-      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
-      "zone": "A String", # The Compute Engine [availability zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+      "machineType": "A String", # The machine type to use for the job. Defaults to the value from the
+          # template if not specified.
+      "zone": "A String", # The Compute Engine [availability
+          # zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
           # for launching worker instances to run your pipeline.
       "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
           # Use with caution.
+      "tempLocation": "A String", # The Cloud Storage path to use for temporary files.
+          # Must be a valid Cloud Storage URL, beginning with `gs://`.
+      "serviceAccountEmail": "A String", # The email address of the service account to run the job as.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
     },
     "parameters": { # The runtime parameters to pass to the job.
       "a_key": "A String",
@@ -735,12 +747,12 @@
     "jobName": "A String", # Required. The job name to use for the created job.
   }
 
-  dryRun: boolean, Whether or not the job should actually be executed after
-validating parameters. Defaults to false. Validation errors do
-not cause the HTTP request to fail if true.
   gcsPath: string, Required. A Cloud Storage path to the template from which to create
 the job.
 Must be valid Cloud Storage URL, beginning with 'gs://'.
+  location: string, The location to which to direct the request.
+  validateOnly: boolean, If true, the request is validated but not actually executed.
+Defaults to false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -775,10 +787,21 @@
             #
             # The name must match the regular expression
             # `[a-z]([-a-z0-9]{0,38}[a-z0-9])?`
-        "currentStateTime": "A String", # The timestamp associated with the current state.
+        "location": "A String", # The location that contains this job.
         "replacedByJobId": "A String", # If another job is an update of this job (and thus, this job is in
             # `JOB_STATE_UPDATED`), this field contains the ID of that job.
         "projectId": "A String", # The ID of the Cloud Platform project that the job belongs to.
+        "currentState": "A String", # The current state of the job.
+            #
+            # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+            # specified.
+            #
+            # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+            # terminal state. After a job has reached a terminal state, no
+            # further state updates may be made.
+            #
+            # This field may be mutated by the Cloud Dataflow service;
+            # callers cannot mutate it.
         "labels": { # User-defined labels for this job.
             #
             # The labels map can contain no more than 64 entries.  Entries of the labels
@@ -790,13 +813,14 @@
             # size.
           "a_key": "A String",
         },
-        "location": "A String", # The location that contains this job.
-        "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-            # Cloud Dataflow service.
         "transformNameMapping": { # The map of transform name prefixes of the job to be replaced to the
             # corresponding name prefixes of the new job.
           "a_key": "A String",
         },
+        "id": "A String", # The unique ID of this job.
+            #
+            # This field is set by the Cloud Dataflow service when the Job is
+            # created, and is immutable for the life of the job.
         "environment": { # Describes the environment in which a Dataflow Job runs. # The environment for the job.
           "version": { # A structure describing which components and their versions of the service
               # are required in order to run the job.
@@ -850,49 +874,6 @@
                 # multiple pools, in order to match the various computational
                 # requirements of the various stages of the job.
               "diskSourceImage": "A String", # Fully qualified source image for disks.
-              "ipConfiguration": "A String", # Configuration for VM IPs.
-              "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
-                  # are supported.
-              "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
-                  # service will attempt to choose a reasonable default.
-              "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
-                  # the service will use the network "default".
-              "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
-                  # will attempt to choose a reasonable default.
-              "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
-                  # attempt to choose a reasonable default.
-              "metadata": { # Metadata to set on the Google Compute Engine VMs.
-                "a_key": "A String",
-              },
-              "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                  # Compute Engine API.
-              "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
-                  # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
-                  # `TEARDOWN_NEVER`.
-                  # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
-                  # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
-                  # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
-                  # down.
-                  #
-                  # If the workers are not torn down by the service, they will
-                  # continue to run and use Google Compute Engine VM resources in the
-                  # user's project until they are explicitly terminated by the user.
-                  # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
-                  # policy except for small, manually supervised test jobs.
-                  #
-                  # If unknown or unspecified, the service will attempt to choose a reasonable
-                  # default.
-              "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
-                  # service will choose a number of threads (according to the number of cores
-                  # on the selected machine type for batch, or 1 by convention for streaming).
-              "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                  # the form "regions/REGION/subnetworks/SUBNETWORK".
-              "poolArgs": { # Extra arguments for this worker pool.
-                "a_key": "", # Properties of the object. Contains field @type with type URL.
-              },
-              "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
-                  # execute the job.  If zero or unspecified, the service will
-                  # attempt to choose a reasonable default.
               "taskrunnerSettings": { # Taskrunner configuration settings. # Settings passed through to Google Compute Engine workers when
                   # using the standard Dataflow task runner.  Users should ignore
                   # this field.
@@ -905,17 +886,7 @@
                     # Google Cloud Storage:
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
-                "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
-                    # taskrunner; e.g. "root".
                 "commandlinesFileName": "A String", # The file to store preprocessing commands in.
-                "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
-                "vmId": "A String", # The ID string of the VM.
-                "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
-                "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
-                "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
-                    # access the Cloud Dataflow API.
-                  "A String",
-                ],
                 "parallelWorkerSettings": { # Provides data to pass through to the worker harness. # The settings to pass to the parallel worker harness.
                   "reportingEnabled": True or False, # Whether to send work progress updates to the service.
                   "shuffleServicePath": "A String", # The Shuffle service path relative to the root URL, for example,
@@ -942,14 +913,15 @@
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
                 },
-                "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
-                    # taskrunner; e.g. "wheel".
-                "languageHint": "A String", # The suggested backend language.
-                "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
-                    # console.
-                "streamingWorkerMainClass": "A String", # The streaming worker main class name.
-                "logDir": "A String", # The directory on the VM to store logs.
-                "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
+                "vmId": "A String", # The ID string of the VM.
+                "baseTaskDir": "A String", # The location on the worker for task-specific subdirectories.
+                "continueOnException": True or False, # Whether to continue taskrunner if an exception is hit.
+                "oauthScopes": [ # The OAuth2 scopes to be requested by the taskrunner in order to
+                    # access the Cloud Dataflow API.
+                  "A String",
+                ],
+                "taskUser": "A String", # The UNIX user ID on the worker VM to use for tasks launched by
+                    # taskrunner; e.g. "root".
                 "baseUrl": "A String", # The base URL for the taskrunner to use when accessing Google Cloud APIs.
                     #
                     # When workers access Google Cloud APIs, they logically do so via
@@ -959,6 +931,14 @@
                     # Locators".
                     #
                     # If not specified, the default value is "http://www.googleapis.com/"
+                "taskGroup": "A String", # The UNIX group ID on the worker VM to use for tasks launched by
+                    # taskrunner; e.g. "wheel".
+                "languageHint": "A String", # The suggested backend language.
+                "logToSerialconsole": True or False, # Whether to send taskrunner log info to Google Compute Engine VM serial
+                    # console.
+                "streamingWorkerMainClass": "A String", # The streaming worker main class name.
+                "logDir": "A String", # The directory on the VM to store logs.
+                "dataflowApiVersion": "A String", # The API version of endpoint, e.g. "v1b3"
                 "harnessCommand": "A String", # The command to launch the worker harness.
                 "tempStoragePrefix": "A String", # The prefix of the resources the taskrunner should use for
                     # temporary storage.
@@ -968,33 +948,18 @@
                     # Google Cloud Storage:
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
+                "alsologtostderr": True or False, # Whether to also send taskrunner log info to stderr.
               },
-              "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
-                  # select a default set of packages which are useful to worker
-                  # harnesses written in a particular language.
-              "packages": [ # Packages to be installed on workers.
-                { # The packages that must be installed in order for a worker to run the
-                    # steps of the Cloud Dataflow job that will be assigned to its worker
-                    # pool.
-                    #
-                    # This is the mechanism by which the Cloud Dataflow SDK causes code to
-                    # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
-                    # might use this to install jars containing the user's code and all of the
-                    # various dependencies (libraries, data files, etc.) required in order
-                    # for that code to run.
-                  "name": "A String", # The name of the package.
-                  "location": "A String", # The resource to read the package from. The supported resource type is:
-                      #
-                      # Google Cloud Storage:
-                      #
-                      #   storage.googleapis.com/{bucket}
-                      #   bucket.storage.googleapis.com/
-                },
-              ],
-              "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
-                "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
-                "algorithm": "A String", # The algorithm to use for autoscaling.
-              },
+              "kind": "A String", # The kind of the worker pool; currently only `harness` and `shuffle`
+                  # are supported.
+              "machineType": "A String", # Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
+                  # service will attempt to choose a reasonable default.
+              "network": "A String", # Network to which VMs will be assigned.  If empty or unspecified,
+                  # the service will use the network "default".
+              "zone": "A String", # Zone to run the worker pools in.  If empty or unspecified, the service
+                  # will attempt to choose a reasonable default.
+              "diskSizeGb": 42, # Size of root disk for VMs, in GB.  If zero or unspecified, the service will
+                  # attempt to choose a reasonable default.
               "dataDisks": [ # Data disks that are used by a VM in this workflow.
                 { # Describes the data disk used by a workflow job.
                   "mountPoint": "A String", # Directory in a VM where disk is mounted.
@@ -1020,10 +985,69 @@
                       # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                 },
               ],
-              "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+              "teardownPolicy": "A String", # Sets the policy for determining when to turndown worker pool.
+                  # Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+                  # `TEARDOWN_NEVER`.
+                  # `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+                  # the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+                  # if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+                  # down.
+                  #
+                  # If the workers are not torn down by the service, they will
+                  # continue to run and use Google Compute Engine VM resources in the
+                  # user's project until they are explicitly terminated by the user.
+                  # Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+                  # policy except for small, manually supervised test jobs.
+                  #
+                  # If unknown or unspecified, the service will attempt to choose a reasonable
+                  # default.
+              "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
+                  # Compute Engine API.
+              "ipConfiguration": "A String", # Configuration for VM IPs.
+              "numThreadsPerWorker": 42, # The number of threads per worker harness. If empty or unspecified, the
+                  # service will choose a number of threads (according to the number of cores
+                  # on the selected machine type for batch, or 1 by convention for streaming).
+              "poolArgs": { # Extra arguments for this worker pool.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+              "numWorkers": 42, # Number of Google Compute Engine workers in this pool needed to
+                  # execute the job.  If zero or unspecified, the service will
                   # attempt to choose a reasonable default.
               "workerHarnessContainerImage": "A String", # Required. Docker container image that executes the Cloud Dataflow worker
                   # harness, residing in Google Container Registry.
+              "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
+                  # the form "regions/REGION/subnetworks/SUBNETWORK".
+              "packages": [ # Packages to be installed on workers.
+                { # The packages that must be installed in order for a worker to run the
+                    # steps of the Cloud Dataflow job that will be assigned to its worker
+                    # pool.
+                    #
+                    # This is the mechanism by which the Cloud Dataflow SDK causes code to
+                    # be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+                    # might use this to install jars containing the user's code and all of the
+                    # various dependencies (libraries, data files, etc.) required in order
+                    # for that code to run.
+                  "location": "A String", # The resource to read the package from. The supported resource type is:
+                      #
+                      # Google Cloud Storage:
+                      #
+                      #   storage.googleapis.com/{bucket}
+                      #   bucket.storage.googleapis.com/
+                  "name": "A String", # The name of the package.
+                },
+              ],
+              "autoscalingSettings": { # Settings for WorkerPool autoscaling. # Settings for autoscaling of this WorkerPool.
+                "maxNumWorkers": 42, # The maximum number of workers to cap scaling at.
+                "algorithm": "A String", # The algorithm to use for autoscaling.
+              },
+              "defaultPackageSet": "A String", # The default package set to install.  This allows the service to
+                  # select a default set of packages which are useful to worker
+                  # harnesses written in a particular language.
+              "diskType": "A String", # Type of root disk for VMs.  If empty or unspecified, the service will
+                  # attempt to choose a reasonable default.
+              "metadata": { # Metadata to set on the Google Compute Engine VMs.
+                "a_key": "A String",
+              },
             },
           ],
         },
@@ -1042,16 +1066,13 @@
               ],
               "displayData": [ # Transform-specific display data.
                 { # Data provided with a pipeline or transform to provide descriptive info.
-                  "key": "A String", # The key identifying the display data.
-                      # This is intended to be used as a label for the display data
-                      # when viewed in a dax monitoring system.
                   "shortStrValue": "A String", # A possible additional shorter value to display.
                       # For example a java_class_name_value of com.mypackage.MyDoFn
                       # will be stored with MyDoFn as the short_str_value and
                       # com.mypackage.MyDoFn as the java_class_name value.
                       # short_str_value can be displayed and java_class_name_value
                       # will be displayed as a tooltip.
-                  "timestampValue": "A String", # Contains value if the data is of timestamp type.
+                  "durationValue": "A String", # Contains value if the data is of duration type.
                   "url": "A String", # An optional full URL.
                   "floatValue": 3.14, # Contains value if the data is of float type.
                   "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1062,8 +1083,11 @@
                   "label": "A String", # An optional label to display in a dax UI for the element.
                   "boolValue": True or False, # Contains value if the data is of a boolean type.
                   "strValue": "A String", # Contains value if the data is of string type.
-                  "durationValue": "A String", # Contains value if the data is of duration type.
+                  "key": "A String", # The key identifying the display data.
+                      # This is intended to be used as a label for the display data
+                      # when viewed in a dax monitoring system.
                   "int64Value": "A String", # Contains value if the data is of int64 type.
+                  "timestampValue": "A String", # Contains value if the data is of timestamp type.
                 },
               ],
               "outputCollectionName": [ # User  names for all collection outputs to this transform.
@@ -1074,16 +1098,13 @@
           ],
           "displayData": [ # Pipeline level display data.
             { # Data provided with a pipeline or transform to provide descriptive info.
-              "key": "A String", # The key identifying the display data.
-                  # This is intended to be used as a label for the display data
-                  # when viewed in a dax monitoring system.
               "shortStrValue": "A String", # A possible additional shorter value to display.
                   # For example a java_class_name_value of com.mypackage.MyDoFn
                   # will be stored with MyDoFn as the short_str_value and
                   # com.mypackage.MyDoFn as the java_class_name value.
                   # short_str_value can be displayed and java_class_name_value
                   # will be displayed as a tooltip.
-              "timestampValue": "A String", # Contains value if the data is of timestamp type.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "url": "A String", # An optional full URL.
               "floatValue": 3.14, # Contains value if the data is of float type.
               "namespace": "A String", # The namespace for the key. This is usually a class name or programming
@@ -1094,8 +1115,11 @@
               "label": "A String", # An optional label to display in a dax UI for the element.
               "boolValue": True or False, # Contains value if the data is of a boolean type.
               "strValue": "A String", # Contains value if the data is of string type.
-              "durationValue": "A String", # Contains value if the data is of duration type.
+              "key": "A String", # The key identifying the display data.
+                  # This is intended to be used as a label for the display data
+                  # when viewed in a dax monitoring system.
               "int64Value": "A String", # Contains value if the data is of int64 type.
+              "timestampValue": "A String", # Contains value if the data is of timestamp type.
             },
           ],
           "executionPipelineStage": [ # Description of each stage of execution of the pipeline.
@@ -1179,17 +1203,7 @@
                 # step with respect to all other steps in the Cloud Dataflow job.
           },
         ],
-        "currentState": "A String", # The current state of the job.
-            #
-            # Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
-            # specified.
-            #
-            # A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
-            # terminal state. After a job has reached a terminal state, no
-            # further state updates may be made.
-            #
-            # This field may be mutated by the Cloud Dataflow service;
-            # callers cannot mutate it.
+        "currentStateTime": "A String", # The timestamp associated with the current state.
         "tempFiles": [ # A set of files the system should be aware of that are used
             # for temporary storage. These temporary files will be
             # removed on job completion.
@@ -1204,11 +1218,17 @@
             #    bucket.storage.googleapis.com/{object}
           "A String",
         ],
+        "stageStates": [ # This field may be mutated by the Cloud Dataflow service;
+            # callers cannot mutate it.
+          { # A message describing the state of a particular execution stage.
+            "executionStageName": "A String", # The name of the execution stage.
+            "executionStageState": "A String", # Executions stage states allow the same set of values as JobState.
+            "currentStateTime": "A String", # The time at which the stage transitioned to this state.
+          },
+        ],
         "type": "A String", # The type of Cloud Dataflow job.
-        "id": "A String", # The unique ID of this job.
-            #
-            # This field is set by the Cloud Dataflow service when the Job is
-            # created, and is immutable for the life of the job.
+        "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
+            # Cloud Dataflow service.
         "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
             # of the job it replaced.
             #
diff --git a/docs/dyn/dataproc_v1.projects.regions.clusters.html b/docs/dyn/dataproc_v1.projects.regions.clusters.html
index 7cb77f1..963f545 100644
--- a/docs/dyn/dataproc_v1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1.projects.regions.clusters.html
@@ -101,22 +101,22 @@
   <pre>Creates a cluster in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-  "status": { # The status of a cluster and its instances. # Output-only Cluster status.
-    "state": "A String", # Output-only The cluster's state.
-    "stateStartTime": "A String", # Output-only Time when this state was entered.
-    "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-    "detail": "A String", # Output-only Optional details of cluster's state.
+  "status": { # The status of a cluster and its instances. # Output-only. Cluster status.
+    "state": "A String", # Output-only. The cluster's state.
+    "stateStartTime": "A String", # Output-only. Time when this state was entered.
+    "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+    "detail": "A String", # Output-only. Optional details of cluster's state.
   },
-  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+  "clusterUuid": "A String", # Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+  "projectId": "A String", # Required. The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional. The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
     "a_key": "A String",
   },
   "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
@@ -127,41 +127,43 @@
       "a_key": "A String",
     },
   },
-  "statusHistory": [ # Output-only The previous cluster status.
+  "statusHistory": [ # Output-only. The previous cluster status.
     { # The status of a cluster and its instances.
-      "state": "A String", # Output-only The cluster's state.
-      "stateStartTime": "A String", # Output-only Time when this state was entered.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # Output-only Optional details of cluster's state.
+      "state": "A String", # Output-only. The cluster's state.
+      "stateStartTime": "A String", # Output-only. Time when this state was entered.
+      "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+      "detail": "A String", # Output-only. Optional details of cluster's state.
     },
   ],
-  "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
-      "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
-      "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+  "config": { # The cluster config. # Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
+      "imageVersion": "A String", # Optional. The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+      "properties": { # Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+          # capacity-scheduler: capacity-scheduler.xml
           # core: core-site.xml
+          # distcp: distcp-default.xml
           # hdfs: hdfs-site.xml
-          # mapred: mapred-site.xml
-          # yarn: yarn-site.xml
           # hive: hive-site.xml
+          # mapred: mapred-site.xml
           # pig: pig.properties
           # spark: spark-defaults.conf
+          # yarn: yarn-site.xml
         "a_key": "A String",
       },
     },
-    "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
-      "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-      "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+    "configBucket": "A String", # Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required. The shared Google Compute Engine config settings for all instances in a cluster.
+      "internalIpOnly": True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+      "networkUri": "A String", # Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
       "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
         "A String",
       ],
-      "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+      "serviceAccount": "A String", # Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
           # roles/logging.logWriter
           # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
-      "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
-      "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
-      "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+      "zoneUri": "A String", # Required. The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+      "subnetworkUri": "A String", # Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+      "serviceAccountScopes": [ # Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
           # https://www.googleapis.com/auth/cloud.useraccounts.readonly
           # https://www.googleapis.com/auth/devstorage.read_write
           # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
@@ -175,30 +177,30 @@
         "a_key": "A String",
       },
     },
-    "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
-      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "workerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for worker instances in a cluster.
+      "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-      },
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+      "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
         { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
           "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
           "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
         },
       ],
-      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+        "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+      },
     },
-    "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+    "initializationActions": [ # Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
         # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
         # if [[ "${ROLE}" == 'Master' ]]; then
         #   ... master specific actions ...
@@ -206,55 +208,55 @@
         #   ... worker specific actions ...
         # fi
       { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-        "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-        "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+        "executionTimeout": "A String", # Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+        "executableFile": "A String", # Required. Google Cloud Storage URI of executable file.
       },
     ],
-    "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
-      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "secondaryWorkerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for additional worker instances in a cluster.
+      "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-      },
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+      "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
         { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
           "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
           "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
         },
       ],
-      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+        "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+      },
     },
-    "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
-      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "masterConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for the master instance in a cluster.
+      "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-      },
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+      "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
         { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
           "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
           "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
         },
       ],
-      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+        "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+      },
     },
   },
 }
@@ -273,9 +275,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -300,9 +302,9 @@
   <pre>Deletes a cluster in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, Required The cluster name. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required. The cluster name. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -317,9 +319,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -344,9 +346,9 @@
   <pre>Gets cluster diagnostic information. After the operation completes, the Operation.response field contains DiagnoseClusterOutputLocation.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, Required The cluster name. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required. The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -367,9 +369,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -394,9 +396,9 @@
   <pre>Gets the resource representation for a cluster in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, Required The cluster name. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required. The cluster name. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -406,16 +408,16 @@
   An object of the form:
 
     { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-    "status": { # The status of a cluster and its instances. # Output-only Cluster status.
-      "state": "A String", # Output-only The cluster's state.
-      "stateStartTime": "A String", # Output-only Time when this state was entered.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # Output-only Optional details of cluster's state.
+    "status": { # The status of a cluster and its instances. # Output-only. Cluster status.
+      "state": "A String", # Output-only. The cluster's state.
+      "stateStartTime": "A String", # Output-only. Time when this state was entered.
+      "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+      "detail": "A String", # Output-only. Optional details of cluster's state.
     },
-    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-    "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+    "clusterUuid": "A String", # Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+    "clusterName": "A String", # Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+    "projectId": "A String", # Required. The Google Cloud Platform project ID that the cluster belongs to.
+    "labels": { # Optional. The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
       "a_key": "A String",
     },
     "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
@@ -426,41 +428,43 @@
         "a_key": "A String",
       },
     },
-    "statusHistory": [ # Output-only The previous cluster status.
+    "statusHistory": [ # Output-only. The previous cluster status.
       { # The status of a cluster and its instances.
-        "state": "A String", # Output-only The cluster's state.
-        "stateStartTime": "A String", # Output-only Time when this state was entered.
-        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-        "detail": "A String", # Output-only Optional details of cluster's state.
+        "state": "A String", # Output-only. The cluster's state.
+        "stateStartTime": "A String", # Output-only. Time when this state was entered.
+        "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+        "detail": "A String", # Output-only. Optional details of cluster's state.
       },
     ],
-    "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-      "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
-        "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
-        "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+    "config": { # The cluster config. # Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+      "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
+        "imageVersion": "A String", # Optional. The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+        "properties": { # Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+            # capacity-scheduler: capacity-scheduler.xml
             # core: core-site.xml
+            # distcp: distcp-default.xml
             # hdfs: hdfs-site.xml
-            # mapred: mapred-site.xml
-            # yarn: yarn-site.xml
             # hive: hive-site.xml
+            # mapred: mapred-site.xml
             # pig: pig.properties
             # spark: spark-defaults.conf
+            # yarn: yarn-site.xml
           "a_key": "A String",
         },
       },
-      "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-      "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
-        "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-        "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+      "configBucket": "A String", # Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+      "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required. The shared Google Compute Engine config settings for all instances in a cluster.
+        "internalIpOnly": True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+        "networkUri": "A String", # Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
         "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
           "A String",
         ],
-        "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+        "serviceAccount": "A String", # Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
             # roles/logging.logWriter
             # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
-        "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
-        "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
-        "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+        "zoneUri": "A String", # Required. The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+        "subnetworkUri": "A String", # Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+        "serviceAccountScopes": [ # Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
             # https://www.googleapis.com/auth/cloud.useraccounts.readonly
             # https://www.googleapis.com/auth/devstorage.read_write
             # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
@@ -474,30 +478,30 @@
           "a_key": "A String",
         },
       },
-      "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
-        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-        "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+      "workerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for worker instances in a cluster.
+        "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
           "A String",
         ],
-        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
         },
-        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-        },
-        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
           { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
             "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
             "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
           },
         ],
-        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+          "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+          "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+        },
       },
-      "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+      "initializationActions": [ # Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
           # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
           # if [[ "${ROLE}" == 'Master' ]]; then
           #   ... master specific actions ...
@@ -505,55 +509,55 @@
           #   ... worker specific actions ...
           # fi
         { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-          "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-          "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+          "executionTimeout": "A String", # Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+          "executableFile": "A String", # Required. Google Cloud Storage URI of executable file.
         },
       ],
-      "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
-        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-        "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+      "secondaryWorkerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for additional worker instances in a cluster.
+        "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
           "A String",
         ],
-        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
         },
-        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-        },
-        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
           { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
             "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
             "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
           },
         ],
-        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+          "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+          "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+        },
       },
-      "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
-        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-        "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+      "masterConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for the master instance in a cluster.
+        "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+        "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
           "A String",
         ],
-        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
         },
-        "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-          "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-        },
-        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+        "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
           { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
             "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
             "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
           },
         ],
-        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+        "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+          "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+          "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+        },
       },
     },
   }</pre>
@@ -564,11 +568,11 @@
   <pre>Lists all regions/{region}/clusters in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the cluster belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  pageSize: integer, Optional The standard List page size.
-  filter: string, Optional A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *
-  pageToken: string, Optional The standard List page token.
+  projectId: string, Required. The ID of the Google Cloud Platform project that the cluster belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  pageSize: integer, Optional. The standard List page size.
+  filter: string, Optional. A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *
+  pageToken: string, Optional. The standard List page token.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -578,19 +582,19 @@
   An object of the form:
 
     { # The list of all clusters in a project.
-    "nextPageToken": "A String", # Output-only This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListClustersRequest</code>.
-    "clusters": [ # Output-only The clusters in the project.
+    "nextPageToken": "A String", # Output-only. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent ListClustersRequest.
+    "clusters": [ # Output-only. The clusters in the project.
       { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-        "status": { # The status of a cluster and its instances. # Output-only Cluster status.
-          "state": "A String", # Output-only The cluster's state.
-          "stateStartTime": "A String", # Output-only Time when this state was entered.
-          "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-          "detail": "A String", # Output-only Optional details of cluster's state.
+        "status": { # The status of a cluster and its instances. # Output-only. Cluster status.
+          "state": "A String", # Output-only. The cluster's state.
+          "stateStartTime": "A String", # Output-only. Time when this state was entered.
+          "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+          "detail": "A String", # Output-only. Optional details of cluster's state.
         },
-        "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-        "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-        "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-        "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+        "clusterUuid": "A String", # Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+        "clusterName": "A String", # Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+        "projectId": "A String", # Required. The Google Cloud Platform project ID that the cluster belongs to.
+        "labels": { # Optional. The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
           "a_key": "A String",
         },
         "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
@@ -601,41 +605,43 @@
             "a_key": "A String",
           },
         },
-        "statusHistory": [ # Output-only The previous cluster status.
+        "statusHistory": [ # Output-only. The previous cluster status.
           { # The status of a cluster and its instances.
-            "state": "A String", # Output-only The cluster's state.
-            "stateStartTime": "A String", # Output-only Time when this state was entered.
-            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-            "detail": "A String", # Output-only Optional details of cluster's state.
+            "state": "A String", # Output-only. The cluster's state.
+            "stateStartTime": "A String", # Output-only. Time when this state was entered.
+            "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+            "detail": "A String", # Output-only. Optional details of cluster's state.
           },
         ],
-        "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-          "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
-            "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
-            "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+        "config": { # The cluster config. # Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+          "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
+            "imageVersion": "A String", # Optional. The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+            "properties": { # Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+                # capacity-scheduler: capacity-scheduler.xml
                 # core: core-site.xml
+                # distcp: distcp-default.xml
                 # hdfs: hdfs-site.xml
-                # mapred: mapred-site.xml
-                # yarn: yarn-site.xml
                 # hive: hive-site.xml
+                # mapred: mapred-site.xml
                 # pig: pig.properties
                 # spark: spark-defaults.conf
+                # yarn: yarn-site.xml
               "a_key": "A String",
             },
           },
-          "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-          "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
-            "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-            "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+          "configBucket": "A String", # Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+          "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required. The shared Google Compute Engine config settings for all instances in a cluster.
+            "internalIpOnly": True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+            "networkUri": "A String", # Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
             "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
               "A String",
             ],
-            "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+            "serviceAccount": "A String", # Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
                 # roles/logging.logWriter
                 # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
-            "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
-            "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
-            "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+            "zoneUri": "A String", # Required. The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+            "subnetworkUri": "A String", # Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+            "serviceAccountScopes": [ # Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
                 # https://www.googleapis.com/auth/cloud.useraccounts.readonly
                 # https://www.googleapis.com/auth/devstorage.read_write
                 # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
@@ -649,30 +655,30 @@
               "a_key": "A String",
             },
           },
-          "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
-            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-            "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+          "workerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for worker instances in a cluster.
+            "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
               "A String",
             ],
-            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
             },
-            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-            },
-            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+            "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
               { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
                 "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
                 "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
               },
             ],
-            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+              "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+              "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+            },
           },
-          "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+          "initializationActions": [ # Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
               # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
               # if [[ "${ROLE}" == 'Master' ]]; then
               #   ... master specific actions ...
@@ -680,55 +686,55 @@
               #   ... worker specific actions ...
               # fi
             { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-              "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-              "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+              "executionTimeout": "A String", # Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+              "executableFile": "A String", # Required. Google Cloud Storage URI of executable file.
             },
           ],
-          "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
-            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-            "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+          "secondaryWorkerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for additional worker instances in a cluster.
+            "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
               "A String",
             ],
-            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
             },
-            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-            },
-            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+            "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
               { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
                 "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
                 "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
               },
             ],
-            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+              "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+              "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+            },
           },
-          "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
-            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-            "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+          "masterConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for the master instance in a cluster.
+            "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+            "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
               "A String",
             ],
-            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
             },
-            "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-              "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-            },
-            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+            "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
               { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
                 "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
                 "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
               },
             ],
-            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+            "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+              "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+              "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+            },
           },
         },
       },
@@ -755,23 +761,23 @@
   <pre>Updates a cluster in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project the cluster belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  clusterName: string, Required The cluster name. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project the cluster belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  clusterName: string, Required. The cluster name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Describes the identifying information, config, and status of a cluster of Google Compute Engine instances.
-  "status": { # The status of a cluster and its instances. # Output-only Cluster status.
-    "state": "A String", # Output-only The cluster's state.
-    "stateStartTime": "A String", # Output-only Time when this state was entered.
-    "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-    "detail": "A String", # Output-only Optional details of cluster's state.
+  "status": { # The status of a cluster and its instances. # Output-only. Cluster status.
+    "state": "A String", # Output-only. The cluster's state.
+    "stateStartTime": "A String", # Output-only. Time when this state was entered.
+    "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+    "detail": "A String", # Output-only. Optional details of cluster's state.
   },
-  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
-  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # Optional The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+  "clusterUuid": "A String", # Output-only. A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.
+  "projectId": "A String", # Required. The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional. The labels to associate with this cluster. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
     "a_key": "A String",
   },
   "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release. # Contains cluster daemon metrics such as HDFS and YARN stats.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
@@ -782,41 +788,43 @@
       "a_key": "A String",
     },
   },
-  "statusHistory": [ # Output-only The previous cluster status.
+  "statusHistory": [ # Output-only. The previous cluster status.
     { # The status of a cluster and its instances.
-      "state": "A String", # Output-only The cluster's state.
-      "stateStartTime": "A String", # Output-only Time when this state was entered.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # Output-only Optional details of cluster's state.
+      "state": "A String", # Output-only. The cluster's state.
+      "stateStartTime": "A String", # Output-only. Time when this state was entered.
+      "substate": "A String", # Output-only. Additional state information that includes status reported by the agent.
+      "detail": "A String", # Output-only. Optional details of cluster's state.
     },
   ],
-  "config": { # The cluster config. # Required The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
-    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional The config settings for software inside the cluster.
-      "imageVersion": "A String", # Optional The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
-      "properties": { # Optional The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+  "config": { # The cluster config. # Required. The cluster config. Note that Cloud Dataproc may set default values, and values may change when clusters are updated.
+    "softwareConfig": { # Specifies the selection and config of software inside the cluster. # Optional. The config settings for software inside the cluster.
+      "imageVersion": "A String", # Optional. The version of software inside the cluster. It must match the regular expression [0-9]+\.[0-9]+. If unspecified, it defaults to the latest version (see Cloud Dataproc Versioning).
+      "properties": { # Optional. The properties to set on daemon config files.Property keys are specified in prefix:property format, such as core:fs.defaultFS. The following are supported prefixes and their mappings:
+          # capacity-scheduler: capacity-scheduler.xml
           # core: core-site.xml
+          # distcp: distcp-default.xml
           # hdfs: hdfs-site.xml
-          # mapred: mapred-site.xml
-          # yarn: yarn-site.xml
           # hive: hive-site.xml
+          # mapred: mapred-site.xml
           # pig: pig.properties
           # spark: spark-defaults.conf
+          # yarn: yarn-site.xml
         "a_key": "A String",
       },
     },
-    "configBucket": "A String", # Optional A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
-    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required The shared Google Compute Engine config settings for all instances in a cluster.
-      "internalIpOnly": True or False, # Optional If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
-      "networkUri": "A String", # Optional The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
+    "configBucket": "A String", # Optional. A Google Cloud Storage staging bucket used for sharing generated SSH keys and config. If you do not specify a staging bucket, Cloud Dataproc will determine an appropriate Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Google Compute Engine zone where your cluster is deployed, and then it will create and manage this project-level, per-location bucket for you.
+    "gceClusterConfig": { # Common config settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Required. The shared Google Compute Engine config settings for all instances in a cluster.
+      "internalIpOnly": True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
+      "networkUri": "A String", # Optional. The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see Using Subnetworks for more information). Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default.
       "tags": [ # The Google Compute Engine tags to add to all instances (see Tagging instances).
         "A String",
       ],
-      "serviceAccount": "A String", # Optional The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
+      "serviceAccount": "A String", # Optional. The service account of the instances. Defaults to the default Google Compute Engine service account. Custom service accounts need permissions equivalent to the folloing IAM roles:
           # roles/logging.logWriter
           # roles/storage.objectAdmin(see https://cloud.google.com/compute/docs/access/service-accounts#custom_service_accounts for more information). Example: [account_id]@[project_id].iam.gserviceaccount.com
-      "zoneUri": "A String", # Required The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
-      "subnetworkUri": "A String", # Optional The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
-      "serviceAccountScopes": [ # Optional The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
+      "zoneUri": "A String", # Required. The zone where the Google Compute Engine cluster will be located. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone].
+      "subnetworkUri": "A String", # Optional. The Google Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/sub0.
+      "serviceAccountScopes": [ # Optional. The URIs of service account scopes to be included in Google Compute Engine instances. The following base set of scopes is always included:
           # https://www.googleapis.com/auth/cloud.useraccounts.readonly
           # https://www.googleapis.com/auth/devstorage.read_write
           # https://www.googleapis.com/auth/logging.writeIf no scopes are specified, the following defaults are also provided:
@@ -830,30 +838,30 @@
         "a_key": "A String",
       },
     },
-    "workerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for worker instances in a cluster.
-      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "workerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for worker instances in a cluster.
+      "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-      },
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+      "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
         { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
           "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
           "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
         },
       ],
-      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+        "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+      },
     },
-    "initializationActions": [ # Optional Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
+    "initializationActions": [ # Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget):
         # ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role)
         # if [[ "${ROLE}" == 'Master' ]]; then
         #   ... master specific actions ...
@@ -861,60 +869,60 @@
         #   ... worker specific actions ...
         # fi
       { # Specifies an executable to run on a fully configured node and a timeout period for executable completion.
-        "executionTimeout": "A String", # Optional Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
-        "executableFile": "A String", # Required Google Cloud Storage URI of executable file.
+        "executionTimeout": "A String", # Optional. Amount of time executable has to complete. Default is 10 minutes. Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.
+        "executableFile": "A String", # Required. Google Cloud Storage URI of executable file.
       },
     ],
-    "secondaryWorkerConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for additional worker instances in a cluster.
-      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "secondaryWorkerConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for additional worker instances in a cluster.
+      "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-      },
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+      "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
         { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
           "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
           "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
         },
       ],
-      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+        "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+      },
     },
-    "masterConfig": { # Optional The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine config settings for the master instance in a cluster.
-      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "machineTypeUri": "A String", # Required The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
-      "instanceNames": [ # Optional The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
+    "masterConfig": { # Optional. The config settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional. The Google Compute Engine config settings for the master instance in a cluster.
+      "numInstances": 42, # Required. The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "machineTypeUri": "A String", # Required. The Google Compute Engine machine type used for cluster instances. Example: https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2.
+      "instanceNames": [ # Optional. The list of instance names. Cloud Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Cloud Dataproc derive the name).
         "A String",
       ],
-      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional Disk option config settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      "imageUri": "A String", # Output-only. The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only. The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only. The name of the Instance Template used for the Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only. The name of the Instance Group Manager for this group.
       },
-      "managedGroupConfig": { # Specifies the resources used to actively manage an instance group. # Output-only The config for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of the Instance Template used for the Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of the Instance Group Manager for this group.
-      },
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
+      "accelerators": [ # Optional. The Google Compute Engine accelerator configuration for these instances.Beta Feature: This feature is still under development. It may be changed before final release.
         { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
           "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
           "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
         },
       ],
-      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "isPreemptible": True or False, # Optional. Specifies that this instance group contains preemptible instances.
+      "diskConfig": { # Specifies the config of disk options for a group of VM instances. # Optional. Disk option config settings.
+        "numLocalSsds": 42, # Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.
+        "bootDiskSizeGb": 42, # Optional. Size in GB of the boot disk (default is 500GB).
+      },
     },
   },
 }
 
-  updateMask: string, Required Specifies the path, relative to <code>Cluster</code>, of the field to update. For example, to change the number of workers in a cluster to 5, the <code>update_mask</code> parameter would be specified as <code>config.worker_config.num_instances</code>, and the PATCH request body would specify the new value, as follows:
+  updateMask: string, Required. Specifies the path, relative to Cluster, of the field to update. For example, to change the number of workers in a cluster to 5, the update_mask parameter would be specified as config.worker_config.num_instances, and the PATCH request body would specify the new value, as follows:
 {
   "config":{
     "workerConfig":{
@@ -922,7 +930,7 @@
     }
   }
 }
-Similarly, to change the number of preemptible workers in a cluster to 5, the <code>update_mask</code> parameter would be <code>config.secondary_worker_config.num_instances</code>, and the PATCH request body would be set as follows:
+Similarly, to change the number of preemptible workers in a cluster to 5, the update_mask parameter would be config.secondary_worker_config.num_instances, and the PATCH request body would be set as follows:
 {
   "config":{
     "secondaryWorkerConfig":{
@@ -930,7 +938,7 @@
     }
   }
 }
-<strong>Note:</strong> Currently, <code>config.worker_config.num_instances</code> and <code>config.secondary_worker_config.num_instances</code> are the only fields that can be updated.
+<strong>Note:</strong> Currently, only the following fields can be updated:<table>  <tbody>  <tr>  <td><strong>Mask</strong></td>  <td><strong>Purpose</strong></td>  </tr>  <tr>  <td><strong><em>labels</em></strong></td>  <td>Update labels</td>  </tr>  <tr>  <td><strong><em>config.worker_config.num_instances</em></strong></td>  <td>Resize primary worker group</td>  </tr>  <tr>  <td><strong><em>config.secondary_worker_config.num_instances</em></strong></td>  <td>Resize secondary worker group</td>  </tr>  </tbody>  </table>
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -945,9 +953,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
diff --git a/docs/dyn/dataproc_v1.projects.regions.jobs.html b/docs/dyn/dataproc_v1.projects.regions.jobs.html
index b5ceaf5..7bacd91 100644
--- a/docs/dyn/dataproc_v1.projects.regions.jobs.html
+++ b/docs/dyn/dataproc_v1.projects.regions.jobs.html
@@ -101,9 +101,9 @@
   <pre>Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, Required The job ID. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required. The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -119,27 +119,27 @@
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-      "state": "A String", # Output-only A state message specifying the overall job state.
-      "stateStartTime": "A String", # Output-only The time when this state was entered.
-      "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only. A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only. The time when this state was entered.
+      "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -152,25 +152,25 @@
           "A String",
         ],
       },
-      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
     "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -183,127 +183,127 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
-      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
         "A String",
       ],
-      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
     "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+    "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
       { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required. The application state.
+        "name": "A String", # Required. The application name.
+        "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "statusHistory": [ # Output-only The previous job status.
+    "statusHistory": [ # Output-only. The previous job status.
       { # Cloud Dataproc job status.
-        "state": "A String", # Output-only A state message specifying the overall job state.
-        "stateStartTime": "A String", # Output-only The time when this state was entered.
-        "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "state": "A String", # Output-only. A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only. The time when this state was entered.
+        "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
       },
     ],
     "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -316,8 +316,8 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
@@ -329,9 +329,9 @@
   <pre>Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, Required The job ID. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required. The job ID. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -353,9 +353,9 @@
   <pre>Gets the resource representation for a job in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, Required The job ID. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required. The job ID. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -365,27 +365,27 @@
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-      "state": "A String", # Output-only A state message specifying the overall job state.
-      "stateStartTime": "A String", # Output-only The time when this state was entered.
-      "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only. A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only. The time when this state was entered.
+      "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -398,25 +398,25 @@
           "A String",
         ],
       },
-      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
     "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -429,127 +429,127 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
-      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
         "A String",
       ],
-      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
     "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+    "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
       { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required. The application state.
+        "name": "A String", # Required. The application name.
+        "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "statusHistory": [ # Output-only The previous job status.
+    "statusHistory": [ # Output-only. The previous job status.
       { # Cloud Dataproc job status.
-        "state": "A String", # Output-only A state message specifying the overall job state.
-        "stateStartTime": "A String", # Output-only The time when this state was entered.
-        "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "state": "A String", # Output-only. A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only. The time when this state was entered.
+        "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
       },
     ],
     "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -562,8 +562,8 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
@@ -575,46 +575,46 @@
   <pre>Lists regions/{region}/jobs in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  pageSize: integer, Optional The number of results to return in each response.
+  projectId: string, Required. The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  pageSize: integer, Optional. The number of results to return in each response.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageToken: string, Optional The page token, returned by a previous call, to request the next page of results.
-  clusterName: string, Optional If set, the returned jobs list includes only jobs that were submitted to the named cluster.
-  jobStateMatcher: string, Optional Specifies enumerated categories of jobs to list (default = match ALL jobs).
-  filter: string, Optional A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is status.state or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be either ACTIVE or INACTIVE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND labels.env = staging AND labels.starred = *
+  pageToken: string, Optional. The page token, returned by a previous call, to request the next page of results.
+  clusterName: string, Optional. If set, the returned jobs list includes only jobs that were submitted to the named cluster.
+  jobStateMatcher: string, Optional. Specifies enumerated categories of jobs to list (default = match ALL jobs).
+  filter: string, Optional. A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is status.state or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be either ACTIVE or INACTIVE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND labels.env = staging AND labels.starred = *
 
 Returns:
   An object of the form:
 
     { # A list of jobs in a project.
-    "nextPageToken": "A String", # Optional This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListJobsRequest</code>.
-    "jobs": [ # Output-only Jobs list.
+    "nextPageToken": "A String", # Optional. This token is included in the response if there are more results to fetch. To fetch additional results, provide this value as the page_token in a subsequent <code>ListJobsRequest</code>.
+    "jobs": [ # Output-only. Jobs list.
       { # A Cloud Dataproc job resource.
-        "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-          "state": "A String", # Output-only A state message specifying the overall job state.
-          "stateStartTime": "A String", # Output-only The time when this state was entered.
-          "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-          "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+          "state": "A String", # Output-only. A state message specifying the overall job state.
+          "stateStartTime": "A String", # Output-only. The time when this state was entered.
+          "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+          "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
         },
         "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+          "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
             "a_key": "A String",
           },
-          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
             "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+          "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
                 # "hiveJob": {
                 #   "queryList": {
                 #     "queries": [
@@ -627,25 +627,25 @@
               "A String",
             ],
           },
-          "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+          "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
             "a_key": "A String",
           },
         },
         "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+          "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
             "a_key": "A String",
           },
-          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
             "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+          "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
                 # "hiveJob": {
                 #   "queryList": {
                 #     "queries": [
@@ -658,127 +658,127 @@
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-          "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+          "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
             "a_key": "A String",
           },
         },
-        "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-          "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-          "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+        "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+          "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+          "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
         },
-        "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-          "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-          "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+        "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+          "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+          "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
         },
         "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+          "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
             "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
             "A String",
           ],
-          "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
             "A String",
           ],
           "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+          "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
             "A String",
           ],
           "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-          "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+          "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
             "a_key": "A String",
           },
         },
-        "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+        "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
           "a_key": "A String",
         },
-        "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+        "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
         "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-          "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+          "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
             "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+          "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
             "A String",
           ],
-          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+          "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
             "A String",
           ],
-          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+          "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
             "A String",
           ],
-          "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+          "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
             "A String",
           ],
-          "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
             "a_key": "A String",
           },
         },
-        "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+        "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
         "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+          "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
             "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
               "a_key": "A String",
             },
           },
-          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+          "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
             "A String",
           ],
-          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+          "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
             "A String",
           ],
           "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+          "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
             "A String",
           ],
           "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-          "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+          "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
             "a_key": "A String",
           },
         },
-        "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+        "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
           { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-            "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-            "state": "A String", # Required The application state.
-            "name": "A String", # Required The application name.
-            "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+            "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+            "state": "A String", # Required. The application state.
+            "name": "A String", # Required. The application name.
+            "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
           },
         ],
-        "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-          "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+        "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+          "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
         },
-        "statusHistory": [ # Output-only The previous job status.
+        "statusHistory": [ # Output-only. The previous job status.
           { # Cloud Dataproc job status.
-            "state": "A String", # Output-only A state message specifying the overall job state.
-            "stateStartTime": "A String", # Output-only The time when this state was entered.
-            "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-            "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+            "state": "A String", # Output-only. A state message specifying the overall job state.
+            "stateStartTime": "A String", # Output-only. The time when this state was entered.
+            "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+            "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
           },
         ],
         "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-          "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+          "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
             "a_key": "A String",
           },
-          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+          "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
             "A String",
           ],
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
-            "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+            "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
                 # "hiveJob": {
                 #   "queryList": {
                 #     "queries": [
@@ -791,8 +791,8 @@
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-          "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+          "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
             "a_key": "A String",
           },
         },
@@ -820,34 +820,34 @@
   <pre>Updates a job in a project.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
-  jobId: string, Required The job ID. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
+  jobId: string, Required. The job ID. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A Cloud Dataproc job resource.
-  "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-    "state": "A String", # Output-only A state message specifying the overall job state.
-    "stateStartTime": "A String", # Output-only The time when this state was entered.
-    "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-    "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+  "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+    "state": "A String", # Output-only. A state message specifying the overall job state.
+    "stateStartTime": "A String", # Output-only. The time when this state was entered.
+    "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
   },
   "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
     "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+    "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
       "a_key": "A String",
     },
-    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+    "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
       "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
         "a_key": "A String",
       },
     },
-    "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+    "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
       "A String",
     ],
     "queryList": { # A list of queries to run on a cluster. # A list of queries.
-      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+      "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
           # "hiveJob": {
           #   "queryList": {
           #     "queries": [
@@ -860,25 +860,25 @@
         "A String",
       ],
     },
-    "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+    "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
       "a_key": "A String",
     },
   },
   "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
     "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+    "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
       "a_key": "A String",
     },
-    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+    "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
       "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
         "a_key": "A String",
       },
     },
-    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+    "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
       "A String",
     ],
     "queryList": { # A list of queries to run on a cluster. # A list of queries.
-      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+      "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
           # "hiveJob": {
           #   "queryList": {
           #     "queries": [
@@ -891,127 +891,127 @@
         "A String",
       ],
     },
-    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-    "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+    "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
       "a_key": "A String",
     },
   },
-  "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-    "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-    "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+  "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+    "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+    "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
   },
-  "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-    "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-    "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+  "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+    "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+    "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
   },
   "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+    "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
       "A String",
     ],
-    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+    "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
       "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
         "a_key": "A String",
       },
     },
-    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+    "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
       "A String",
     ],
-    "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+    "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
       "A String",
     ],
     "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+    "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
       "A String",
     ],
     "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-    "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+    "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
       "a_key": "A String",
     },
   },
-  "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+  "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
     "a_key": "A String",
   },
-  "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+  "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
   "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-    "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+    "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+    "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
       "A String",
     ],
-    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+    "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
       "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
         "a_key": "A String",
       },
     },
-    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+    "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
       "A String",
     ],
-    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+    "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
       "A String",
     ],
-    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+    "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
       "A String",
     ],
-    "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+    "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
       "A String",
     ],
-    "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+    "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
       "a_key": "A String",
     },
   },
-  "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+  "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
   "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+    "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
       "A String",
     ],
-    "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+    "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
       "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
         "a_key": "A String",
       },
     },
-    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+    "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
       "A String",
     ],
-    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+    "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
       "A String",
     ],
     "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+    "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
       "A String",
     ],
     "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-    "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+    "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
       "a_key": "A String",
     },
   },
-  "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+  "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
     { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-      "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-      "state": "A String", # Required The application state.
-      "name": "A String", # Required The application name.
-      "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+      "state": "A String", # Required. The application state.
+      "name": "A String", # Required. The application name.
+      "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
     },
   ],
-  "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-    "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+  "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+    "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
   },
-  "statusHistory": [ # Output-only The previous job status.
+  "statusHistory": [ # Output-only. The previous job status.
     { # Cloud Dataproc job status.
-      "state": "A String", # Output-only A state message specifying the overall job state.
-      "stateStartTime": "A String", # Output-only The time when this state was entered.
-      "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      "state": "A String", # Output-only. A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only. The time when this state was entered.
+      "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
     },
   ],
   "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
     "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-    "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+    "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
       "a_key": "A String",
     },
-    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+    "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
       "A String",
     ],
     "queryList": { # A list of queries to run on a cluster. # A list of queries.
-      "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+      "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
           # "hiveJob": {
           #   "queryList": {
           #     "queries": [
@@ -1024,14 +1024,14 @@
         "A String",
       ],
     },
-    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-    "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+    "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
       "a_key": "A String",
     },
   },
 }
 
-  updateMask: string, Required Specifies the path, relative to <code>Job</code>, of the field to update. For example, to update the labels of a Job the <code>update_mask</code> parameter would be specified as <code>labels</code>, and the PATCH request body would specify the new value. <strong>Note:</strong> Currently, <code>labels</code> is the only field that can be updated.
+  updateMask: string, Required. Specifies the path, relative to <code>Job</code>, of the field to update. For example, to update the labels of a Job the <code>update_mask</code> parameter would be specified as <code>labels</code>, and the PATCH request body would specify the new value. <strong>Note:</strong> Currently, <code>labels</code> is the only field that can be updated.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -1041,27 +1041,27 @@
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-      "state": "A String", # Output-only A state message specifying the overall job state.
-      "stateStartTime": "A String", # Output-only The time when this state was entered.
-      "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only. A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only. The time when this state was entered.
+      "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -1074,25 +1074,25 @@
           "A String",
         ],
       },
-      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
     "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -1105,127 +1105,127 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
-      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
         "A String",
       ],
-      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
     "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+    "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
       { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required. The application state.
+        "name": "A String", # Required. The application name.
+        "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "statusHistory": [ # Output-only The previous job status.
+    "statusHistory": [ # Output-only. The previous job status.
       { # Cloud Dataproc job status.
-        "state": "A String", # Output-only A state message specifying the overall job state.
-        "stateStartTime": "A String", # Output-only The time when this state was entered.
-        "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "state": "A String", # Output-only. A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only. The time when this state was entered.
+        "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
       },
     ],
     "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -1238,8 +1238,8 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
@@ -1251,34 +1251,34 @@
   <pre>Submits a job to a cluster.
 
 Args:
-  projectId: string, Required The ID of the Google Cloud Platform project that the job belongs to. (required)
-  region: string, Required The Cloud Dataproc region in which to handle the request. (required)
+  projectId: string, Required. The ID of the Google Cloud Platform project that the job belongs to. (required)
+  region: string, Required. The Cloud Dataproc region in which to handle the request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A request to submit a job.
-    "job": { # A Cloud Dataproc job resource. # Required The job resource.
-      "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-        "state": "A String", # Output-only A state message specifying the overall job state.
-        "stateStartTime": "A String", # Output-only The time when this state was entered.
-        "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    "job": { # A Cloud Dataproc job resource. # Required. The job resource.
+      "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+        "state": "A String", # Output-only. A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only. The time when this state was entered.
+        "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
       },
       "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+        "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
           "a_key": "A String",
         },
-        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
           "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+        "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
               # "hiveJob": {
               #   "queryList": {
               #     "queries": [
@@ -1291,25 +1291,25 @@
             "A String",
           ],
         },
-        "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+        "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
           "a_key": "A String",
         },
       },
       "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+        "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
           "a_key": "A String",
         },
-        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
           "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+        "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
               # "hiveJob": {
               #   "queryList": {
               #     "queries": [
@@ -1322,127 +1322,127 @@
             "A String",
           ],
         },
-        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-        "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+        "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
           "a_key": "A String",
         },
       },
-      "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-        "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-        "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+      "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+        "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+        "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
       },
-      "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-        "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-        "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+      "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+        "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+        "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
       },
       "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
-        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
           "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
           "A String",
         ],
-        "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
           "A String",
         ],
         "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
           "A String",
         ],
         "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-        "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
           "a_key": "A String",
         },
       },
-      "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+      "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
         "a_key": "A String",
       },
-      "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+      "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
       "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-        "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+        "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
-        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
           "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
           "A String",
         ],
-        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+        "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
           "A String",
         ],
-        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+        "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
           "A String",
         ],
-        "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+        "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
           "A String",
         ],
-        "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
           "a_key": "A String",
         },
       },
-      "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+      "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
       "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
-        "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+        "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
           "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
             "a_key": "A String",
           },
         },
-        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+        "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
           "A String",
         ],
-        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+        "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
           "A String",
         ],
         "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+        "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
           "A String",
         ],
         "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-        "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+        "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
           "a_key": "A String",
         },
       },
-      "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+      "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
         { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-          "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-          "state": "A String", # Required The application state.
-          "name": "A String", # Required The application name.
-          "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+          "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+          "state": "A String", # Required. The application state.
+          "name": "A String", # Required. The application name.
+          "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
         },
       ],
-      "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-        "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+      "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+        "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
       },
-      "statusHistory": [ # Output-only The previous job status.
+      "statusHistory": [ # Output-only. The previous job status.
         { # Cloud Dataproc job status.
-          "state": "A String", # Output-only A state message specifying the overall job state.
-          "stateStartTime": "A String", # Output-only The time when this state was entered.
-          "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-          "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+          "state": "A String", # Output-only. A state message specifying the overall job state.
+          "stateStartTime": "A String", # Output-only. The time when this state was entered.
+          "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+          "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
         },
       ],
       "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-        "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+        "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
           "a_key": "A String",
         },
-        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+        "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
           "A String",
         ],
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
-          "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+          "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
               # "hiveJob": {
               #   "queryList": {
               #     "queries": [
@@ -1455,8 +1455,8 @@
             "A String",
           ],
         },
-        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-        "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+        "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
           "a_key": "A String",
         },
       },
@@ -1472,27 +1472,27 @@
   An object of the form:
 
     { # A Cloud Dataproc job resource.
-    "status": { # Cloud Dataproc job status. # Output-only The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
-      "state": "A String", # Output-only A state message specifying the overall job state.
-      "stateStartTime": "A String", # Output-only The time when this state was entered.
-      "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-      "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+    "status": { # Cloud Dataproc job status. # Output-only. The job status. Additional application-specific status information may be contained in the <code>type_job</code> and <code>yarn_applications</code> fields.
+      "state": "A String", # Output-only. A state message specifying the overall job state.
+      "stateStartTime": "A String", # Output-only. The time when this state was entered.
+      "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+      "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
     },
     "sparkSqlJob": { # A Cloud Dataproc job for running Apache Spark SQL (http://spark.apache.org/sql/) queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to be added to the Spark CLASSPATH.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -1505,25 +1505,25 @@
           "A String",
         ],
       },
-      "properties": { # Optional A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.
         "a_key": "A String",
       },
     },
     "pigJob": { # A Cloud Dataproc job for running Apache Pig (https://pig.apache.org/) queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -1536,127 +1536,127 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "placement": { # Cloud Dataproc job config. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
+    "placement": { # Cloud Dataproc job config. # Required. Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required. The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted.
     },
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Optional The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional. The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required. The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Optional. The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Apache Hadoop MapReduce (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) jobs on Apache Hadoop YARN (https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/YARN.html). # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
         "a_key": "A String",
       },
     },
-    "labels": { # Optional The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
+    "labels": { # Optional. The labels to associate with this job. Label keys must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values may be empty, but, if present, must contain 1 to 63 characters, and must conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a job.
       "a_key": "A String",
     },
-    "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
+    "driverOutputResourceUri": "A String", # Output-only. A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running Apache PySpark (https://spark.apache.org/docs/0.9.0/python-programming-guide.html) applications on YARN. # Job is a Pyspark job.
-      "mainPythonFileUri": "A String", # Required The HCFS URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "mainPythonFileUri": "A String", # Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
-      "pythonFileUris": [ # Optional HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
+      "pythonFileUris": [ # Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.
         "A String",
       ],
-      "properties": { # Optional A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "driverControlFilesUri": "A String", # Output-only If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
+    "driverControlFilesUri": "A String", # Output-only. If present, the location of miscellaneous control files which may be used as part of job setup and handling. If not present, control files may be placed in the same location as driver_output_uri.
     "sparkJob": { # A Cloud Dataproc job for running Apache Spark (http://spark.apache.org/) applications on YARN. # Job is a Spark job.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "args": [ # Optional. The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "loggingConfig": { # The runtime logging config of the job. # Optional The runtime log config for job execution.
+      "loggingConfig": { # The runtime logging config of the job. # Optional. The runtime log config for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
           "a_key": "A String",
         },
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.
         "A String",
       ],
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
+      "fileUris": [ # Optional. HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.
         "A String",
       ],
       "mainClass": "A String", # The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
+      "archiveUris": [ # Optional. HCFS URIs of archives to be extracted in the working directory of Spark drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.
         "A String",
       ],
       "mainJarFileUri": "A String", # The HCFS URI of the jar file that contains the main class.
-      "properties": { # Optional A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
+      "properties": { # Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
+    "yarnApplications": [ # Output-only. The collection of YARN applications spun up by this job.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
       { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.Beta Feature: This report is available for testing purposes only. It may be changed before final release.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        "progress": 3.14, # Required. The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required. The application state.
+        "name": "A String", # Required. The application name.
+        "trackingUrl": "A String", # Optional. The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
       },
     ],
-    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
-      "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
+    "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional. Job scheduling configuration.
+      "maxFailuresPerHour": 42, # Optional. Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "statusHistory": [ # Output-only The previous job status.
+    "statusHistory": [ # Output-only. The previous job status.
       { # Cloud Dataproc job status.
-        "state": "A String", # Output-only A state message specifying the overall job state.
-        "stateStartTime": "A String", # Output-only The time when this state was entered.
-        "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-        "details": "A String", # Output-only Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "state": "A String", # Output-only. A state message specifying the overall job state.
+        "stateStartTime": "A String", # Output-only. The time when this state was entered.
+        "details": "A String", # Output-only. Optional job state details, such as an error description if the state is <code>ERROR</code>.
+        "substate": "A String", # Output-only. Additional state information, which includes status reported by the agent.
       },
     ],
     "hiveJob": { # A Cloud Dataproc job for running Apache Hive (https://hive.apache.org/) queries on YARN. # Job is a Hive job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains Hive queries.
-      "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
+      "scriptVariables": { # Optional. Mapping of query variable names to values (equivalent to the Hive command: SET name="value";).
         "a_key": "A String",
       },
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
+      "jarFileUris": [ # Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.
         "A String",
       ],
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
-        "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
+        "queries": [ # Required. The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
             #   "queryList": {
             #     "queries": [
@@ -1669,8 +1669,8 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
-      "properties": { # Optional A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
+      "continueOnFailure": True or False, # Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "properties": { # Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.
         "a_key": "A String",
       },
     },
diff --git a/docs/dyn/dataproc_v1.projects.regions.operations.html b/docs/dyn/dataproc_v1.projects.regions.operations.html
index 7f5a22f..a7d5a2a 100644
--- a/docs/dyn/dataproc_v1.projects.regions.operations.html
+++ b/docs/dyn/dataproc_v1.projects.regions.operations.html
@@ -85,7 +85,7 @@
 <p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</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>
@@ -154,9 +154,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -178,10 +178,10 @@
 
 <div class="method">
     <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
+  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -202,9 +202,9 @@
         },
         "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
             # Simple to use and understand for most users
-            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
             # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
             # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
             # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
             # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
diff --git a/docs/dyn/dataproc_v1alpha1.operations.html b/docs/dyn/dataproc_v1alpha1.operations.html
index 134a1ab..c851cc7 100644
--- a/docs/dyn/dataproc_v1alpha1.operations.html
+++ b/docs/dyn/dataproc_v1alpha1.operations.html
@@ -160,9 +160,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -208,9 +208,9 @@
         },
         "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
             # Simple to use and understand for most users
-            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
             # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
             # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
             # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
             # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
diff --git a/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html b/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
index 33e337d..0d03dbb 100644
--- a/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
@@ -110,28 +110,6 @@
     "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
     "detail": "A String", # Optional details of cluster's state.
   },
-  "statusHistory": [ # Output-only Previous cluster statuses.
-    { # The status of a cluster and its instances.
-      "state": "A String", # The cluster's state.
-      "stateStartTime": "A String", # Time when this state was entered.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # Optional details of cluster's state.
-    },
-  ],
-  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
-    "a_key": "A String",
-  },
-  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
-    "yarnMetrics": { # The YARN metrics.
-      "a_key": "A String",
-    },
-    "hdfsMetrics": { # The HDFS metrics.
-      "a_key": "A String",
-    },
-  },
   "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
     "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
       "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
@@ -146,7 +124,29 @@
     "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
       "A String",
     ],
-    "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+      },
+    },
     "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
       "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
       "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
@@ -180,29 +180,7 @@
       "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
       "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
     },
-    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
-        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
-          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
-          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
-        },
-      ],
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
-      },
-    },
+    "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
     "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
         # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
         # if [[ "${ROLE}" == 'Master' ]]; then
@@ -262,6 +240,28 @@
       },
     },
   },
+  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
+    "a_key": "A String",
+  },
+  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
+    "yarnMetrics": { # The YARN metrics.
+      "a_key": "A String",
+    },
+    "hdfsMetrics": { # The HDFS metrics.
+      "a_key": "A String",
+    },
+  },
+  "statusHistory": [ # Output-only Previous cluster statuses.
+    { # The status of a cluster and its instances.
+      "state": "A String", # The cluster's state.
+      "stateStartTime": "A String", # Time when this state was entered.
+      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+      "detail": "A String", # Optional details of cluster's state.
+    },
+  ],
   "createTime": "A String", # Output-only The timestamp of cluster creation.
 }
 
@@ -279,9 +279,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -323,9 +323,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -368,28 +368,6 @@
       "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
       "detail": "A String", # Optional details of cluster's state.
     },
-    "statusHistory": [ # Output-only Previous cluster statuses.
-      { # The status of a cluster and its instances.
-        "state": "A String", # The cluster's state.
-        "stateStartTime": "A String", # Time when this state was entered.
-        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-        "detail": "A String", # Optional details of cluster's state.
-      },
-    ],
-    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-    "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
-      "a_key": "A String",
-    },
-    "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
-      "yarnMetrics": { # The YARN metrics.
-        "a_key": "A String",
-      },
-      "hdfsMetrics": { # The HDFS metrics.
-        "a_key": "A String",
-      },
-    },
     "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
       "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
         "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
@@ -404,7 +382,29 @@
       "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
         "A String",
       ],
-      "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+          "A String",
+        ],
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+          },
+        ],
+        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+        },
+        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+        },
+      },
       "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
         "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
         "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
@@ -438,29 +438,7 @@
         "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
         "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
       },
-      "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
-        "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-        "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
-        "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-          "A String",
-        ],
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-        "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
-          { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
-            "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
-            "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
-          },
-        ],
-        "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-        "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-          "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-          "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
-        },
-        "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-          "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
-          "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
-        },
-      },
+      "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
       "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
           # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
           # if [[ "${ROLE}" == 'Master' ]]; then
@@ -520,6 +498,28 @@
         },
       },
     },
+    "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+    "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+    "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+    "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
+      "a_key": "A String",
+    },
+    "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
+      "yarnMetrics": { # The YARN metrics.
+        "a_key": "A String",
+      },
+      "hdfsMetrics": { # The HDFS metrics.
+        "a_key": "A String",
+      },
+    },
+    "statusHistory": [ # Output-only Previous cluster statuses.
+      { # The status of a cluster and its instances.
+        "state": "A String", # The cluster's state.
+        "stateStartTime": "A String", # Time when this state was entered.
+        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+        "detail": "A String", # Optional details of cluster's state.
+      },
+    ],
     "createTime": "A String", # Output-only The timestamp of cluster creation.
   }</pre>
 </div>
@@ -552,28 +552,6 @@
           "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
           "detail": "A String", # Optional details of cluster's state.
         },
-        "statusHistory": [ # Output-only Previous cluster statuses.
-          { # The status of a cluster and its instances.
-            "state": "A String", # The cluster's state.
-            "stateStartTime": "A String", # Time when this state was entered.
-            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-            "detail": "A String", # Optional details of cluster's state.
-          },
-        ],
-        "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-        "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-        "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-        "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
-          "a_key": "A String",
-        },
-        "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
-          "yarnMetrics": { # The YARN metrics.
-            "a_key": "A String",
-          },
-          "hdfsMetrics": { # The HDFS metrics.
-            "a_key": "A String",
-          },
-        },
         "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
           "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
             "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
@@ -588,7 +566,29 @@
           "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
             "A String",
           ],
-          "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+          "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+            "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+              "A String",
+            ],
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+              },
+            ],
+            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+            },
+            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+              "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+              "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+            },
+          },
           "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
             "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
             "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
@@ -622,29 +622,7 @@
             "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
             "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
           },
-          "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
-            "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-            "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
-            "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-              "A String",
-            ],
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-            "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
-              { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
-                "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
-                "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
-              },
-            ],
-            "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-            "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-              "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-              "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
-            },
-            "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-              "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
-              "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
-            },
-          },
+          "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
           "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
               # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
               # if [[ "${ROLE}" == 'Master' ]]; then
@@ -704,6 +682,28 @@
             },
           },
         },
+        "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+        "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+        "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+        "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
+          "a_key": "A String",
+        },
+        "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
+          "yarnMetrics": { # The YARN metrics.
+            "a_key": "A String",
+          },
+          "hdfsMetrics": { # The HDFS metrics.
+            "a_key": "A String",
+          },
+        },
+        "statusHistory": [ # Output-only Previous cluster statuses.
+          { # The status of a cluster and its instances.
+            "state": "A String", # The cluster's state.
+            "stateStartTime": "A String", # Time when this state was entered.
+            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+            "detail": "A String", # Optional details of cluster's state.
+          },
+        ],
         "createTime": "A String", # Output-only The timestamp of cluster creation.
       },
     ],
@@ -742,28 +742,6 @@
     "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
     "detail": "A String", # Optional details of cluster's state.
   },
-  "statusHistory": [ # Output-only Previous cluster statuses.
-    { # The status of a cluster and its instances.
-      "state": "A String", # The cluster's state.
-      "stateStartTime": "A String", # Time when this state was entered.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # Optional details of cluster's state.
-    },
-  ],
-  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
-  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
-  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
-  "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
-    "a_key": "A String",
-  },
-  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
-    "yarnMetrics": { # The YARN metrics.
-      "a_key": "A String",
-    },
-    "hdfsMetrics": { # The HDFS metrics.
-      "a_key": "A String",
-    },
-  },
   "configuration": { # The cluster configuration. # Required The cluster configuration. It may differ from a user's initial configuration due to Cloud Dataproc setting of default values and updating clusters.
     "workerDiskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Deprecated The configuration settings of worker node disk options.
       "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
@@ -778,7 +756,29 @@
     "workers": [ # Deprecated The list of worker node names. Dataproc derives the names from cluster_name and num_workers if not set by user (recommended practice is to let Dataproc derive the name). Derived worker node name example: hadoop-w-0.
       "A String",
     ],
-    "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
+    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
+      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
+      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
+      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
+        "A String",
+      ],
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
+      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
+        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
+          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
+          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
+        },
+      ],
+      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
+      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
+        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
+        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
+      },
+      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
+        "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
+        "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
+      },
+    },
     "gceClusterConfiguration": { # Common configuration settings for resources of Google Compute Engine cluster instances, applicable to all instances in the cluster. # Optional The shared Google Compute Engine configuration settings for all instances in a cluster.
       "internalIpOnly": True or False, # If true, all instances in the cluser will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
       "networkUri": "A String", # The Google Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither network_uri nor subnetwork_uri is specified, the "default" network of the project is used, if it exists. Cannot be a "Custom Subnet Network" (see https://cloud.google.com/compute/docs/subnetworks for more information). Example: compute.googleapis.com/projects/[project_id]/regions/global/default.
@@ -812,29 +812,7 @@
       "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
       "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
     },
-    "masterConfiguration": { # The configuration settings for Google Compute Engine resources in an instance group, such as a master or worker group. # Optional The Google Compute Engine configuration settings for the master instance in a cluster.
-      "isPreemptible": True or False, # Specifies that this instance group contains Preemptible Instances.
-      "machineTypeUri": "A String", # The Google Compute Engine machine type used for cluster instances. Example: "compute.googleapis.com/projects/project_id /zones/us-east1-a/machineTypes/n1-standard-2".
-      "instanceNames": [ # The list of instance names. Dataproc derives the names from cluster_name, num_instances, and the instance group if not set by user (recommended practice is to let Dataproc derive the name).
-        "A String",
-      ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfiguration.image_version. Example: "compute.googleapis.com/projects/debian-cloud /global/images/backports-debian-7-wheezy-v20140904".
-      "accelerators": [ # Optional The Google Compute Engine accelerator configuration for these instances.
-        { # Specifies the type and number of accelerator cards attached to the instances of an instance group (see GPUs on Compute Engine).
-          "acceleratorCount": 42, # The number of the accelerator cards of this type exposed to this instance.
-          "acceleratorTypeUri": "A String", # Full or partial URI of the accelerator type resource to expose to this instance. See Google Compute Engine AcceleratorTypes( /compute/docs/reference/beta/acceleratorTypes)
-        },
-      ],
-      "numInstances": 42, # The number of VM instances in the instance group. For master instance groups, must be set to 1.
-      "diskConfiguration": { # Specifies the configuration of disk options for a group of VM instances. # Disk option configuration settings.
-        "numLocalSsds": 42, # Optional Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs, and HDFS data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic configuration and installed binaries.
-        "bootDiskSizeGb": 42, # Optional Size in GB of the boot disk (default is 500GB).
-      },
-      "managedGroupConfiguration": { # Specifies the resources used to actively manage an instance group. # Output-only The configuration for Google Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.
-        "instanceTemplateName": "A String", # Output-only The name of Instance Template used for Managed Instance Group.
-        "instanceGroupManagerName": "A String", # Output-only The name of Instance Group Manager managing this group.
-      },
-    },
+    "numWorkers": 42, # Deprecated The number of worker nodes in the cluster.
     "initializationActions": [ # Optional Commands to execute on each node after configuration is completed. By default, executables are run on master and all worker nodes. You can test a node's <code>role</code> metadata to run an executable on a master or worker node, as shown below:
         # ROLE=$(/usr/share/google/get_metadata_value attributes/role)
         # if [[ "${ROLE}" == 'Master' ]]; then
@@ -894,6 +872,28 @@
       },
     },
   },
+  "clusterUuid": "A String", # Output-only A cluster UUID (Unique Universal Identifier). Cloud Dataproc generates this value when it creates the cluster.
+  "clusterName": "A String", # Required The cluster name. Cluster names within a project must be unique. Names from deleted clusters can be reused.
+  "projectId": "A String", # Required The Google Cloud Platform project ID that the cluster belongs to.
+  "labels": { # Optional The labels to associate with this cluster.Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given cluster.
+    "a_key": "A String",
+  },
+  "metrics": { # Contains cluster daemon metrics, such as HDFS and YARN stats. # Contains cluster daemon metrics such as HDFS and YARN stats.
+    "yarnMetrics": { # The YARN metrics.
+      "a_key": "A String",
+    },
+    "hdfsMetrics": { # The HDFS metrics.
+      "a_key": "A String",
+    },
+  },
+  "statusHistory": [ # Output-only Previous cluster statuses.
+    { # The status of a cluster and its instances.
+      "state": "A String", # The cluster's state.
+      "stateStartTime": "A String", # Time when this state was entered.
+      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+      "detail": "A String", # Optional details of cluster's state.
+    },
+  ],
   "createTime": "A String", # Output-only The timestamp of cluster creation.
 }
 
@@ -920,9 +920,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
diff --git a/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html b/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
index 74f4d7f..e9935a0 100644
--- a/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
+++ b/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
@@ -129,20 +129,20 @@
       "endTime": "A String", # The time when the job completed.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
       "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
       "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
@@ -208,14 +208,10 @@
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
         "a_key": "A String",
       },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -230,7 +226,11 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
@@ -238,10 +238,10 @@
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -361,20 +361,20 @@
       "endTime": "A String", # The time when the job completed.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
       "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
       "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
@@ -440,14 +440,10 @@
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
         "a_key": "A String",
       },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -462,7 +458,11 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
@@ -470,10 +470,10 @@
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -593,20 +593,20 @@
       "endTime": "A String", # The time when the job completed.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
       "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
       "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
@@ -672,14 +672,10 @@
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
         "a_key": "A String",
       },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -694,7 +690,11 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
@@ -702,10 +702,10 @@
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -809,11 +809,11 @@
     The object takes the form of:
 
 { # A request to list jobs in a project.
-    "clusterName": "A String", # Optional If set, the returned jobs list includes only jobs that were submitted to the named cluster.
-    "pageToken": "A String", # Optional The page token, returned by a previous call, to request the next page of results.
     "filter": "A String", # Optional A filter constraining which jobs to list. Valid filters contain job state and label terms such as: labels.key1 = val1 AND (labels.k2 = val2 OR labels.k3 = val3)
-    "pageSize": 42, # Optional The number of results to return in each response.
+    "pageToken": "A String", # Optional The page token, returned by a previous call, to request the next page of results.
+    "clusterName": "A String", # Optional If set, the returned jobs list includes only jobs that were submitted to the named cluster.
     "jobStateMatcher": "A String", # Optional Specifies enumerated categories of jobs to list.
+    "pageSize": 42, # Optional The number of results to return in each response.
   }
 
   x__xgafv: string, V1 error format.
@@ -838,20 +838,20 @@
           "endTime": "A String", # The time when the job completed.
         },
         "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
             "A String",
           ],
           "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
-          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-            "A String",
-          ],
           "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
             "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
               "a_key": "A String",
             },
           },
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
           "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
           "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
             "A String",
@@ -917,14 +917,10 @@
           "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
             "a_key": "A String",
           },
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
           "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
             "A String",
           ],
-          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-              "a_key": "A String",
-            },
-          },
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
             "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
                 # "hiveJob": {
@@ -939,7 +935,11 @@
               "A String",
             ],
           },
-          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+              "a_key": "A String",
+            },
+          },
           "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
             "a_key": "A String",
           },
@@ -947,10 +947,10 @@
         "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
         "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
           "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
             "A String",
           ],
-          "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
             "A String",
           ],
           "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -1081,20 +1081,20 @@
     "endTime": "A String", # The time when the job completed.
   },
   "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
       "A String",
     ],
     "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
       "A String",
     ],
-    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-      "A String",
-    ],
     "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
       "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
         "a_key": "A String",
       },
     },
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
     "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
     "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
       "A String",
@@ -1160,14 +1160,10 @@
     "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
       "a_key": "A String",
     },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
     "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
       "A String",
     ],
-    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-        "a_key": "A String",
-      },
-    },
     "queryList": { # A list of queries to run on a cluster. # A list of queries.
       "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
           # "hiveJob": {
@@ -1182,7 +1178,11 @@
         "A String",
       ],
     },
-    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+        "a_key": "A String",
+      },
+    },
     "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
       "a_key": "A String",
     },
@@ -1190,10 +1190,10 @@
   "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
   "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
     "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
       "A String",
     ],
-    "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
       "A String",
     ],
     "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -1305,20 +1305,20 @@
       "endTime": "A String", # The time when the job completed.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
       "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
       "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
@@ -1384,14 +1384,10 @@
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
         "a_key": "A String",
       },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -1406,7 +1402,11 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
@@ -1414,10 +1414,10 @@
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -1532,20 +1532,20 @@
         "endTime": "A String", # The time when the job completed.
       },
       "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
           "A String",
         ],
         "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
-        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-          "A String",
-        ],
         "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
           "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
             "a_key": "A String",
           },
         },
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
         "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
         "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
           "A String",
@@ -1611,14 +1611,10 @@
         "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
           "a_key": "A String",
         },
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
         "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
           "A String",
         ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-            "a_key": "A String",
-          },
-        },
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
           "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
               # "hiveJob": {
@@ -1633,7 +1629,11 @@
             "A String",
           ],
         },
-        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+            "a_key": "A String",
+          },
+        },
         "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
           "a_key": "A String",
         },
@@ -1641,10 +1641,10 @@
       "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
       "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
         "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
           "A String",
         ],
-        "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
           "A String",
         ],
         "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
@@ -1756,20 +1756,20 @@
       "endTime": "A String", # The time when the job completed.
     },
     "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
         "A String",
       ],
       "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
         "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
           "a_key": "A String",
         },
       },
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
       "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
       "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
         "A String",
@@ -1835,14 +1835,10 @@
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: "name=value").
         "a_key": "A String",
       },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
-          "a_key": "A String",
-        },
-      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -1857,7 +1853,11 @@
           "A String",
         ],
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples:  com.google = FATAL, root = INFO, org.apache = DEBUG
+          "a_key": "A String",
+        },
+      },
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
@@ -1865,10 +1865,10 @@
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
         "A String",
       ],
-      "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as --conf, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
         "A String",
       ],
       "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
diff --git a/docs/dyn/dataproc_v1beta1.operations.html b/docs/dyn/dataproc_v1beta1.operations.html
index bf32d6a..55aec2e 100644
--- a/docs/dyn/dataproc_v1beta1.operations.html
+++ b/docs/dyn/dataproc_v1beta1.operations.html
@@ -160,9 +160,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -187,7 +187,7 @@
   <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding below allows API services to override the binding to use different resource name schemes, such as users/*/operations.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -208,9 +208,9 @@
         },
         "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
             # Simple to use and understand for most users
-            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+            # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
             # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+            # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
             # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
             # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
             # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
diff --git a/docs/dyn/dataproc_v1beta1.projects.clusters.html b/docs/dyn/dataproc_v1beta1.projects.clusters.html
index a00b0e8..42b5202 100644
--- a/docs/dyn/dataproc_v1beta1.projects.clusters.html
+++ b/docs/dyn/dataproc_v1beta1.projects.clusters.html
@@ -258,9 +258,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -301,9 +301,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -350,9 +350,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
@@ -883,9 +883,9 @@
     },
     "error": { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). The error model is designed to be: # The error result of the operation in case of failure or cancellation.
         # Simple to use and understand for most users
-        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc which can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
+        # Flexible enough to meet unexpected needsOverviewThe Status message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers understand and resolve the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package google.rpc that can be used for common error conditions.Language mappingThe Status message is the logical representation of the error model, but it is not necessarily the actual wire format. When the Status message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.Other usesThe error model and the Status message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.Example uses of this error model include:
         # Partial errors. If a service needs to return partial errors to the client, it may embed the Status in the normal response to indicate the partial errors.
-        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting purpose.
+        # Workflow errors. A typical workflow has multiple steps. Each step may have a Status message for error reporting.
         # Batch operations. If a client uses batch request and batch response, the Status message should be used directly inside batch response, one for each error sub-response.
         # Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the Status message.
         # Logging. If some API errors are stored in logs, the message Status could be used directly after any stripping needed for security/privacy reasons.
diff --git a/docs/dyn/dataproc_v1beta1.projects.jobs.html b/docs/dyn/dataproc_v1beta1.projects.jobs.html
index 22a5584..15b1499 100644
--- a/docs/dyn/dataproc_v1beta1.projects.jobs.html
+++ b/docs/dyn/dataproc_v1beta1.projects.jobs.html
@@ -124,6 +124,41 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -155,15 +190,27 @@
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -178,54 +225,11 @@
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-      },
-    ],
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-    },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -283,10 +287,6 @@
     "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
       "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
     "statusHistory": [ # Output-only The previous job status.
       { # Cloud Dataproc job status.
         "state": "A String", # Required A state message specifying the overall job state.
@@ -371,6 +371,41 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -402,15 +437,27 @@
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -425,54 +472,11 @@
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-      },
-    ],
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-    },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -530,10 +534,6 @@
     "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
       "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
     "statusHistory": [ # Output-only The previous job status.
       { # Cloud Dataproc job status.
         "state": "A String", # Required A state message specifying the overall job state.
@@ -602,6 +602,41 @@
           "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
           "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
         },
+        "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+            "A String",
+          ],
+          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+            "A String",
+          ],
+          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+            "A String",
+          ],
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+              "a_key": "A String",
+            },
+          },
+          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+            "A String",
+          ],
+          "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+          "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+            "a_key": "A String",
+          },
+        },
+        "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+          "a_key": "A String",
+        },
+        "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+          "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+          "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+        },
+        "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+          "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+          "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+        },
         "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
           "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -633,15 +668,27 @@
             "a_key": "A String",
           },
         },
+        "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+          { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+            "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+            "state": "A String", # Required The application state.
+            "name": "A String", # Required The application name.
+            "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+          },
+        ],
         "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
           "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
           "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
             "a_key": "A String",
           },
-          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
           "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
             "A String",
           ],
+          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+              "a_key": "A String",
+            },
+          },
           "queryList": { # A list of queries to run on a cluster. # A list of queries.
             "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
                 # "hiveJob": {
@@ -656,54 +703,11 @@
               "A String",
             ],
           },
-          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-              "a_key": "A String",
-            },
-          },
+          "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
           "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
             "a_key": "A String",
           },
         },
-        "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-          { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-            "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-            "state": "A String", # Required The application state.
-            "name": "A String", # Required The application name.
-            "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-          },
-        ],
-        "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-          "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-          "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-        },
-        "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-          "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-            "A String",
-          ],
-          "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-            "A String",
-          ],
-          "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-            "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-              "a_key": "A String",
-            },
-          },
-          "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-            "A String",
-          ],
-          "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-          "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-            "A String",
-          ],
-          "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-          "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-            "a_key": "A String",
-          },
-        },
-        "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-          "a_key": "A String",
-        },
         "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
         "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
           "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -761,10 +765,6 @@
         "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
           "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
         },
-        "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-          "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-          "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-        },
         "statusHistory": [ # Output-only The previous job status.
           { # Cloud Dataproc job status.
             "state": "A String", # Required A state message specifying the overall job state.
@@ -837,6 +837,41 @@
     "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
     "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
   },
+  "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+      "A String",
+    ],
+    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+      "A String",
+    ],
+    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+      "A String",
+    ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
+    "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+      "A String",
+    ],
+    "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+    "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+      "a_key": "A String",
+    },
+  },
+  "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+    "a_key": "A String",
+  },
+  "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+    "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+    "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+  },
+  "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+    "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+    "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+  },
   "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
     "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
     "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -868,15 +903,27 @@
       "a_key": "A String",
     },
   },
+  "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+    { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+      "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+      "state": "A String", # Required The application state.
+      "name": "A String", # Required The application name.
+      "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+    },
+  ],
   "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
     "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
     "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
       "a_key": "A String",
     },
-    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
     "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
       "A String",
     ],
+    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+        "a_key": "A String",
+      },
+    },
     "queryList": { # A list of queries to run on a cluster. # A list of queries.
       "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
           # "hiveJob": {
@@ -891,54 +938,11 @@
         "A String",
       ],
     },
-    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-        "a_key": "A String",
-      },
-    },
+    "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
     "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
       "a_key": "A String",
     },
   },
-  "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-    { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-      "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-      "state": "A String", # Required The application state.
-      "name": "A String", # Required The application name.
-      "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-    },
-  ],
-  "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-    "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-    "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-  },
-  "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-    "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-      "A String",
-    ],
-    "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-      "A String",
-    ],
-    "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-      "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-        "a_key": "A String",
-      },
-    },
-    "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-      "A String",
-    ],
-    "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-    "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-      "A String",
-    ],
-    "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-    "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-      "a_key": "A String",
-    },
-  },
-  "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-    "a_key": "A String",
-  },
   "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
   "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
     "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -996,10 +1000,6 @@
   "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
     "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
   },
-  "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-    "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-    "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-  },
   "statusHistory": [ # Output-only The previous job status.
     { # Cloud Dataproc job status.
       "state": "A String", # Required A state message specifying the overall job state.
@@ -1054,6 +1054,41 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -1085,15 +1120,27 @@
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -1108,54 +1155,11 @@
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-      },
-    ],
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-    },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -1213,10 +1217,6 @@
     "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
       "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
     "statusHistory": [ # Output-only The previous job status.
       { # Cloud Dataproc job status.
         "state": "A String", # Required A state message specifying the overall job state.
@@ -1273,6 +1273,41 @@
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
         "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
       },
+      "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+          "A String",
+        ],
+        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+          "A String",
+        ],
+        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+          "A String",
+        ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
+        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+          "A String",
+        ],
+        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+        "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+          "a_key": "A String",
+        },
+      },
+      "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+        "a_key": "A String",
+      },
+      "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+        "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+        "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+      },
+      "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+        "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+        "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+      },
       "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
         "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -1304,15 +1339,27 @@
           "a_key": "A String",
         },
       },
+      "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+        { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+          "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+          "state": "A String", # Required The application state.
+          "name": "A String", # Required The application name.
+          "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+        },
+      ],
       "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
         "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
         "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
           "a_key": "A String",
         },
-        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
         "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
           "A String",
         ],
+        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+            "a_key": "A String",
+          },
+        },
         "queryList": { # A list of queries to run on a cluster. # A list of queries.
           "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
               # "hiveJob": {
@@ -1327,54 +1374,11 @@
             "A String",
           ],
         },
-        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
+        "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
         "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
           "a_key": "A String",
         },
       },
-      "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-        { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-          "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-          "state": "A String", # Required The application state.
-          "name": "A String", # Required The application name.
-          "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-        },
-      ],
-      "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-        "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-        "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-      },
-      "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-        "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-          "A String",
-        ],
-        "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-          "A String",
-        ],
-        "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-          "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-            "a_key": "A String",
-          },
-        },
-        "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-          "A String",
-        ],
-        "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-        "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-          "A String",
-        ],
-        "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-        "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-          "a_key": "A String",
-        },
-      },
-      "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-        "a_key": "A String",
-      },
       "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
       "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
         "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -1432,10 +1436,6 @@
       "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
         "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
       },
-      "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-        "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-        "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-      },
       "statusHistory": [ # Output-only The previous job status.
         { # Cloud Dataproc job status.
           "state": "A String", # Required A state message specifying the overall job state.
@@ -1490,6 +1490,41 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "details": "A String", # Optional Job state details, such as an error description if the state is <code>ERROR</code>.
     },
+    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
+      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
+        "A String",
+      ],
+      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
+        "A String",
+      ],
+      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
+        "A String",
+      ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
+      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
+      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
+        "A String",
+      ],
+      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
+      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
+        "a_key": "A String",
+      },
+    },
+    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
+      "a_key": "A String",
+    },
+    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
+      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
+      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
+    },
+    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
+      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
+      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
+    },
     "sparkSqlJob": { # A Cloud Dataproc job for running Spark SQL queries. # Job is a SparkSql job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains SQL queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Spark SQL command: SET name="value";).
@@ -1521,15 +1556,27 @@
         "a_key": "A String",
       },
     },
+    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
+      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
+        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
+        "state": "A String", # Required The application state.
+        "name": "A String", # Required The application name.
+        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
+      },
+    ],
     "pigJob": { # A Cloud Dataproc job for running Pig queries on YARN. # Job is a Pig job.
       "queryFileUri": "A String", # The HCFS URI of the script that contains the Pig queries.
       "scriptVariables": { # Optional Mapping of query variable names to values (equivalent to the Pig command: name=[value]).
         "a_key": "A String",
       },
-      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "jarFileUris": [ # Optional HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.
         "A String",
       ],
+      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
+        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
+          "a_key": "A String",
+        },
+      },
       "queryList": { # A list of queries to run on a cluster. # A list of queries.
         "queries": [ # Required The queries to execute. You do not need to terminate a query with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of an Cloud Dataproc API snippet that uses a QueryList to specify a HiveJob:
             # "hiveJob": {
@@ -1544,54 +1591,11 @@
           "A String",
         ],
       },
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
+      "continueOnFailure": True or False, # Optional Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.
       "properties": { # Optional A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.
         "a_key": "A String",
       },
     },
-    "yarnApplications": [ # Output-only The collection of YARN applications spun up by this job.
-      { # A YARN application created by a job. Application information is a subset of <code>org.apache.hadoop.yarn.proto.YarnProtos.ApplicationReportProto</code>.
-        "progress": 3.14, # Required The numerical progress of the application, from 1 to 100.
-        "state": "A String", # Required The application state.
-        "name": "A String", # Required The application name.
-        "trackingUrl": "A String", # Optional The HTTP URL of the ApplicationMaster, HistoryServer, or TimelineServer that provides application-specific information. The URL uses the internal hostname, and requires a proxy server for resolution and, possibly, access.
-      },
-    ],
-    "reference": { # Encapsulates the full scoping used to reference a job. # Optional The fully qualified reference to the job, which can be used to obtain the equivalent REST path of the job resource. If this property is not specified when a job is created, the server generates a <code>job_id</code>.
-      "projectId": "A String", # Required The ID of the Google Cloud Platform project that the job belongs to.
-      "jobId": "A String", # Required The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or hyphens (-). The maximum length is 100 characters.
-    },
-    "hadoopJob": { # A Cloud Dataproc job for running Hadoop MapReduce jobs on YARN. # Job is a Hadoop job.
-      "jarFileUris": [ # Optional Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "A String",
-      ],
-      "args": [ # Optional The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.
-        "A String",
-      ],
-      "loggingConfiguration": { # The runtime logging configuration of the job. # Optional The runtime log configuration for job execution.
-        "driverLogLevels": { # The per-package log levels for the driver. This may include "root" package name to configure rootLogger. Examples:  'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'
-          "a_key": "A String",
-        },
-      },
-      "fileUris": [ # Optional HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.
-        "A String",
-      ],
-      "mainClass": "A String", # The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in jar_file_uris.
-      "archiveUris": [ # Optional HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.
-        "A String",
-      ],
-      "mainJarFileUri": "A String", # The Hadoop Compatible Filesystem (HCFS) URI of the jar file containing the main class. Examples:  'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar'  'hdfs:/tmp/test-samples/custom-wordcount.jar'  'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'
-      "properties": { # Optional A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.
-        "a_key": "A String",
-      },
-    },
-    "labels": { # Optional The labels to associate with this job.Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}{0,62}Label values must be between 1 and 63 characters long, and must conform to the following regular expression: \p{Ll}\p{Lo}\p{N}_-{0,63}No more than 64 labels can be associated with a given job.
-      "a_key": "A String",
-    },
     "driverOutputResourceUri": "A String", # Output-only A URI pointing to the location of the stdout of the job's driver program.
     "pysparkJob": { # A Cloud Dataproc job for running PySpark applications on YARN. # Job is a Pyspark job.
       "mainPythonFileUri": "A String", # Required The Hadoop Compatible Filesystem (HCFS) URI of the main Python file to use as the driver. Must be a .py file.
@@ -1649,10 +1653,6 @@
     "scheduling": { # Job scheduling options.Beta Feature: These options are available for testing purposes only. They may be changed before final release. # Optional Job scheduling configuration.
       "maxFailuresPerHour": 42, # Optional Maximum number of times per hour a driver may be restarted as a result of driver terminating with non-zero code before job is reported failed.A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.
     },
-    "placement": { # Cloud Dataproc job configuration. # Required Job information, including how, when, and where to run the job.
-      "clusterName": "A String", # Required The name of the cluster where the job will be submitted.
-      "clusterUuid": "A String", # Output-only A cluster UUID generated by the Dataproc service when the job is submitted.
-    },
     "statusHistory": [ # Output-only The previous job status.
       { # Cloud Dataproc job status.
         "state": "A String", # Required A state message specifying the overall job state.
diff --git a/docs/dyn/datastore_v1.projects.html b/docs/dyn/datastore_v1.projects.html
index 628c6f7..1e714fd 100644
--- a/docs/dyn/datastore_v1.projects.html
+++ b/docs/dyn/datastore_v1.projects.html
@@ -316,7 +316,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -325,10 +324,52 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
-              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                  # explicitly.
+              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                  # of doubles representing degrees latitude and degrees longitude. Unless
+                  # specified otherwise, this must conform to the
+                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                  # standard</a>. Values must be within normalized ranges.
+                  #
+                  # Example of normalization code in Python:
+                  #
+                  #     def NormalizeLongitude(longitude):
+                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                  #       q, r = divmod(longitude, 360.0)
+                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                  #         return r - 360.0
+                  #       return r
+                  #
+                  #     def NormalizeLatLng(latitude, longitude):
+                  #       """Wraps decimal degrees latitude and longitude to
+                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                  #       r = latitude % 360.0
+                  #       if r <= 90.0:
+                  #         return r, NormalizeLongitude(longitude)
+                  #       elif r >= 270.0:
+                  #         return r - 360, NormalizeLongitude(longitude)
+                  #       else:
+                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                  #
+                  #     assert 180.0 == NormalizeLongitude(180.0)
+                  #     assert -180.0 == NormalizeLongitude(-180.0)
+                  #     assert -179.0 == NormalizeLongitude(181.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
               "doubleValue": 3.14, # A double value.
               "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                  # explicitly.
               "keyValue": { # A unique identifier for an entity. # A key value.
                   # If a key's partition ID or any of its path kinds or names are
                   # reserved/read-only, the key is reserved/read-only.
@@ -391,14 +432,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -410,51 +451,7 @@
                 ],
               },
               "integerValue": "A String", # An integer value.
-              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                  # of doubles representing degrees latitude and degrees longitude. Unless
-                  # specified otherwise, this must conform to the
-                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                  # standard</a>. Values must be within normalized ranges.
-                  #
-                  # Example of normalization code in Python:
-                  #
-                  #     def NormalizeLongitude(longitude):
-                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                  #       q, r = divmod(longitude, 360.0)
-                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                  #         return r - 360.0
-                  #       return r
-                  #
-                  #     def NormalizeLatLng(latitude, longitude):
-                  #       """Wraps decimal degrees latitude and longitude to
-                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                  #       r = latitude % 360.0
-                  #       if r <= 90.0:
-                  #         return r, NormalizeLongitude(longitude)
-                  #       elif r >= 270.0:
-                  #         return r - 360, NormalizeLongitude(longitude)
-                  #       else:
-                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                  #
-                  #     assert 180.0 == NormalizeLongitude(180.0)
-                  #     assert -180.0 == NormalizeLongitude(-180.0)
-                  #     assert -179.0 == NormalizeLongitude(181.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
-                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-              },
+              "nullValue": "A String", # A null value.
             },
           },
           "key": { # A unique identifier for an entity. # The entity's key.
@@ -525,71 +522,8 @@
             },
           },
         },
-        "delete": { # A unique identifier for an entity. # The key of the entity to delete. The entity may or may not already exist.
-            # Must have a complete key path and must not be reserved/read-only.
-            # If a key's partition ID or any of its path kinds or names are
-            # reserved/read-only, the key is reserved/read-only.
-            # A reserved/read-only key is forbidden in certain documented contexts.
-          "path": [ # The entity path.
-              # An entity path consists of one or more elements composed of a kind and a
-              # string or numerical identifier, which identify entities. The first
-              # element identifies a _root entity_, the second element identifies
-              # a _child_ of the root entity, the third element identifies a child of the
-              # second entity, and so forth. The entities identified by all prefixes of
-              # the path are called the element's _ancestors_.
-              #
-              # An entity path is always fully complete: *all* of the entity's ancestors
-              # are required to be in the path along with the entity identifier itself.
-              # The only exception is that in some documented cases, the identifier in the
-              # last path element (for the entity) itself may be omitted. For example,
-              # the last path element of the key of `Mutation.insert` may have no
-              # identifier.
-              #
-              # A path can never be empty, and a path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # If either name or ID is set, the element is complete.
-                # If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity.
-                  # A kind matching regex `__.*__` is reserved/read-only.
-                  # A kind must not contain more than 1500 bytes when UTF-8 encoded.
-                  # Cannot be `""`.
-              "id": "A String", # The auto-allocated ID of the entity.
-                  # Never equal to zero. Values less than zero are discouraged and may not
-                  # be supported in the future.
-              "name": "A String", # The name of the entity.
-                  # A name matching regex `__.*__` is reserved/read-only.
-                  # A name must not be more than 1500 bytes when UTF-8 encoded.
-                  # Cannot be `""`.
-            },
-          ],
-          "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
-              # ID and namespace ID.
-              # Queries are scoped to a single partition.
-              # by project and namespace, however the namespace ID may be empty.
-              #
-              # A partition ID contains several dimensions:
-              # project ID and namespace ID.
-              #
-              # Partition dimensions:
-              #
-              # - May be `""`.
-              # - Must be valid UTF-8 bytes.
-              # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
-              # If the value of any dimension matches regex `__.*__`, the partition is
-              # reserved/read-only.
-              # A reserved/read-only partition ID is forbidden in certain documented
-              # contexts.
-              #
-              # Foreign partition IDs (in which the project ID does
-              # not match the context project ID ) are discouraged.
-              # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
-            "projectId": "A String", # The ID of the project to which the entities belong.
-            "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
-          },
-        },
-        "update": { # A Datastore data object. # The entity to update. The entity must already exist.
-            # Must have a complete key path.
+        "upsert": { # A Datastore data object. # The entity to upsert. The entity may or may not already exist.
+            # The entity key's final path element may be incomplete.
             #
             # An entity is limited to 1 megabyte when stored. That _roughly_
             # corresponds to a limit of 1 megabyte for the serialized form of this
@@ -602,7 +536,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -611,10 +544,52 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
-              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                  # explicitly.
+              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                  # of doubles representing degrees latitude and degrees longitude. Unless
+                  # specified otherwise, this must conform to the
+                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                  # standard</a>. Values must be within normalized ranges.
+                  #
+                  # Example of normalization code in Python:
+                  #
+                  #     def NormalizeLongitude(longitude):
+                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                  #       q, r = divmod(longitude, 360.0)
+                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                  #         return r - 360.0
+                  #       return r
+                  #
+                  #     def NormalizeLatLng(latitude, longitude):
+                  #       """Wraps decimal degrees latitude and longitude to
+                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                  #       r = latitude % 360.0
+                  #       if r <= 90.0:
+                  #         return r, NormalizeLongitude(longitude)
+                  #       elif r >= 270.0:
+                  #         return r - 360, NormalizeLongitude(longitude)
+                  #       else:
+                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                  #
+                  #     assert 180.0 == NormalizeLongitude(180.0)
+                  #     assert -180.0 == NormalizeLongitude(-180.0)
+                  #     assert -179.0 == NormalizeLongitude(181.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
               "doubleValue": 3.14, # A double value.
               "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                  # explicitly.
               "keyValue": { # A unique identifier for an entity. # A key value.
                   # If a key's partition ID or any of its path kinds or names are
                   # reserved/read-only, the key is reserved/read-only.
@@ -677,14 +652,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -696,6 +671,99 @@
                 ],
               },
               "integerValue": "A String", # An integer value.
+              "nullValue": "A String", # A null value.
+            },
+          },
+          "key": { # A unique identifier for an entity. # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example,
+              # an entity in `Value.entity_value` may have no key).
+              # An entity's kind is its key path's last element's kind,
+              # or null if it has no key.
+              # If a key's partition ID or any of its path kinds or names are
+              # reserved/read-only, the key is reserved/read-only.
+              # A reserved/read-only key is forbidden in certain documented contexts.
+            "path": [ # The entity path.
+                # An entity path consists of one or more elements composed of a kind and a
+                # string or numerical identifier, which identify entities. The first
+                # element identifies a _root entity_, the second element identifies
+                # a _child_ of the root entity, the third element identifies a child of the
+                # second entity, and so forth. The entities identified by all prefixes of
+                # the path are called the element's _ancestors_.
+                #
+                # An entity path is always fully complete: *all* of the entity's ancestors
+                # are required to be in the path along with the entity identifier itself.
+                # The only exception is that in some documented cases, the identifier in the
+                # last path element (for the entity) itself may be omitted. For example,
+                # the last path element of the key of `Mutation.insert` may have no
+                # identifier.
+                #
+                # A path can never be empty, and a path can have at most 100 elements.
+              { # A (kind, ID/name) pair used to construct a key path.
+                  #
+                  # If either name or ID is set, the element is complete.
+                  # If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity.
+                    # A kind matching regex `__.*__` is reserved/read-only.
+                    # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+                    # Cannot be `""`.
+                "id": "A String", # The auto-allocated ID of the entity.
+                    # Never equal to zero. Values less than zero are discouraged and may not
+                    # be supported in the future.
+                "name": "A String", # The name of the entity.
+                    # A name matching regex `__.*__` is reserved/read-only.
+                    # A name must not be more than 1500 bytes when UTF-8 encoded.
+                    # Cannot be `""`.
+              },
+            ],
+            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
+                # ID and namespace ID.
+                # Queries are scoped to a single partition.
+                # by project and namespace, however the namespace ID may be empty.
+                #
+                # A partition ID contains several dimensions:
+                # project ID and namespace ID.
+                #
+                # Partition dimensions:
+                #
+                # - May be `""`.
+                # - Must be valid UTF-8 bytes.
+                # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
+                # If the value of any dimension matches regex `__.*__`, the partition is
+                # reserved/read-only.
+                # A reserved/read-only partition ID is forbidden in certain documented
+                # contexts.
+                #
+                # Foreign partition IDs (in which the project ID does
+                # not match the context project ID ) are discouraged.
+                # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
+              "projectId": "A String", # The ID of the project to which the entities belong.
+              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
+            },
+          },
+        },
+        "update": { # A Datastore data object. # The entity to update. The entity must already exist.
+            # Must have a complete key path.
+            #
+            # An entity is limited to 1 megabyte when stored. That _roughly_
+            # corresponds to a limit of 1 megabyte for the serialized form of this
+            # message.
+          "properties": { # The entity's properties.
+              # The map's keys are property names.
+              # A property name matching regex `__.*__` is reserved.
+              # A reserved property name is forbidden in certain documented contexts.
+              # The name must not contain more than 500 characters.
+              # The name cannot be `""`.
+            "a_key": { # A message that can hold any of the supported value types and associated
+                # metadata.
+              "entityValue": # Object with schema name: Entity # An entity value.
+                  #
+                  # - May have no key.
+                  # - May have a key with an incomplete key path.
+                  # - May have a reserved/read-only key.
+              "timestampValue": "A String", # A timestamp value.
+                  # When stored in the Datastore, precise only to microseconds;
+                  # any additional precision is rounded down.
               "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
                   # of doubles representing degrees latitude and degrees longitude. Unless
                   # specified otherwise, this must conform to the
@@ -735,12 +803,95 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
+              "doubleValue": 3.14, # A double value.
+              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                  # explicitly.
+              "keyValue": { # A unique identifier for an entity. # A key value.
+                  # If a key's partition ID or any of its path kinds or names are
+                  # reserved/read-only, the key is reserved/read-only.
+                  # A reserved/read-only key is forbidden in certain documented contexts.
+                "path": [ # The entity path.
+                    # An entity path consists of one or more elements composed of a kind and a
+                    # string or numerical identifier, which identify entities. The first
+                    # element identifies a _root entity_, the second element identifies
+                    # a _child_ of the root entity, the third element identifies a child of the
+                    # second entity, and so forth. The entities identified by all prefixes of
+                    # the path are called the element's _ancestors_.
+                    #
+                    # An entity path is always fully complete: *all* of the entity's ancestors
+                    # are required to be in the path along with the entity identifier itself.
+                    # The only exception is that in some documented cases, the identifier in the
+                    # last path element (for the entity) itself may be omitted. For example,
+                    # the last path element of the key of `Mutation.insert` may have no
+                    # identifier.
+                    #
+                    # A path can never be empty, and a path can have at most 100 elements.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # If either name or ID is set, the element is complete.
+                      # If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity.
+                        # A kind matching regex `__.*__` is reserved/read-only.
+                        # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+                        # Cannot be `""`.
+                    "id": "A String", # The auto-allocated ID of the entity.
+                        # Never equal to zero. Values less than zero are discouraged and may not
+                        # be supported in the future.
+                    "name": "A String", # The name of the entity.
+                        # A name matching regex `__.*__` is reserved/read-only.
+                        # A name must not be more than 1500 bytes when UTF-8 encoded.
+                        # Cannot be `""`.
+                  },
+                ],
+                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
+                    # ID and namespace ID.
+                    # Queries are scoped to a single partition.
+                    # by project and namespace, however the namespace ID may be empty.
+                    #
+                    # A partition ID contains several dimensions:
+                    # project ID and namespace ID.
+                    #
+                    # Partition dimensions:
+                    #
+                    # - May be `""`.
+                    # - Must be valid UTF-8 bytes.
+                    # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
+                    # If the value of any dimension matches regex `__.*__`, the partition is
+                    # reserved/read-only.
+                    # A reserved/read-only partition ID is forbidden in certain documented
+                    # contexts.
+                    #
+                    # Foreign partition IDs (in which the project ID does
+                    # not match the context project ID ) are discouraged.
+                    # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
+                  "projectId": "A String", # The ID of the project to which the entities belong.
+                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
+              "blobValue": "A String", # A blob value.
+                  # May have at most 1,000,000 bytes.
+                  # When `exclude_from_indexes` is false, may have at most 1500 bytes.
+                  # In JSON requests, must be base64-encoded.
+              "booleanValue": True or False, # A boolean value.
+              "arrayValue": { # An array value. # An array value.
+                  # Cannot contain another array value.
+                  # A `Value` instance that sets field `array_value` must not set fields
+                  # `meaning` or `exclude_from_indexes`.
+                "values": [ # Values in the array.
+                    # The order of this array may not be preserved if it contains a mix of
+                    # indexed and unindexed values.
+                  # Object with schema name: Value
+                ],
+              },
+              "integerValue": "A String", # An integer value.
+              "nullValue": "A String", # A null value.
             },
           },
           "key": { # A unique identifier for an entity. # The entity's key.
@@ -813,227 +964,67 @@
         },
         "baseVersion": "A String", # The version of the entity that this mutation is being applied to. If this
             # does not match the current version on the server, the mutation conflicts.
-        "upsert": { # A Datastore data object. # The entity to upsert. The entity may or may not already exist.
-            # The entity key's final path element may be incomplete.
-            #
-            # An entity is limited to 1 megabyte when stored. That _roughly_
-            # corresponds to a limit of 1 megabyte for the serialized form of this
-            # message.
-          "properties": { # The entity's properties.
-              # The map's keys are property names.
-              # A property name matching regex `__.*__` is reserved.
-              # A reserved property name is forbidden in certain documented contexts.
-              # The name must not contain more than 500 characters.
-              # The name cannot be `""`.
-            "a_key": { # A message that can hold any of the supported value types and associated
-                # metadata.
-              "booleanValue": True or False, # A boolean value.
-              "entityValue": # Object with schema name: Entity # An entity value.
-                  #
-                  # - May have no key.
-                  # - May have a key with an incomplete key path.
-                  # - May have a reserved/read-only key.
-              "timestampValue": "A String", # A timestamp value.
-                  # When stored in the Datastore, precise only to microseconds;
-                  # any additional precision is rounded down.
-              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                  # explicitly.
-              "doubleValue": 3.14, # A double value.
-              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                  # If a key's partition ID or any of its path kinds or names are
-                  # reserved/read-only, the key is reserved/read-only.
-                  # A reserved/read-only key is forbidden in certain documented contexts.
-                "path": [ # The entity path.
-                    # An entity path consists of one or more elements composed of a kind and a
-                    # string or numerical identifier, which identify entities. The first
-                    # element identifies a _root entity_, the second element identifies
-                    # a _child_ of the root entity, the third element identifies a child of the
-                    # second entity, and so forth. The entities identified by all prefixes of
-                    # the path are called the element's _ancestors_.
-                    #
-                    # An entity path is always fully complete: *all* of the entity's ancestors
-                    # are required to be in the path along with the entity identifier itself.
-                    # The only exception is that in some documented cases, the identifier in the
-                    # last path element (for the entity) itself may be omitted. For example,
-                    # the last path element of the key of `Mutation.insert` may have no
-                    # identifier.
-                    #
-                    # A path can never be empty, and a path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # If either name or ID is set, the element is complete.
-                      # If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity.
-                        # A kind matching regex `__.*__` is reserved/read-only.
-                        # A kind must not contain more than 1500 bytes when UTF-8 encoded.
-                        # Cannot be `""`.
-                    "id": "A String", # The auto-allocated ID of the entity.
-                        # Never equal to zero. Values less than zero are discouraged and may not
-                        # be supported in the future.
-                    "name": "A String", # The name of the entity.
-                        # A name matching regex `__.*__` is reserved/read-only.
-                        # A name must not be more than 1500 bytes when UTF-8 encoded.
-                        # Cannot be `""`.
-                  },
-                ],
-                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
-                    # ID and namespace ID.
-                    # Queries are scoped to a single partition.
-                    # by project and namespace, however the namespace ID may be empty.
-                    #
-                    # A partition ID contains several dimensions:
-                    # project ID and namespace ID.
-                    #
-                    # Partition dimensions:
-                    #
-                    # - May be `""`.
-                    # - Must be valid UTF-8 bytes.
-                    # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
-                    # If the value of any dimension matches regex `__.*__`, the partition is
-                    # reserved/read-only.
-                    # A reserved/read-only partition ID is forbidden in certain documented
-                    # contexts.
-                    #
-                    # Foreign partition IDs (in which the project ID does
-                    # not match the context project ID ) are discouraged.
-                    # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
-                  "projectId": "A String", # The ID of the project to which the entities belong.
-                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
-                },
-              },
-              "blobValue": "A String", # A blob value.
-                  # May have at most 1,000,000 bytes.
-                  # When `exclude_from_indexes` is false, may have at most 1500 bytes.
-                  # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
-              "arrayValue": { # An array value. # An array value.
-                  # Cannot contain another array value.
-                  # A `Value` instance that sets field `array_value` must not set fields
-                  # `meaning` or `exclude_from_indexes`.
-                "values": [ # Values in the array.
-                    # The order of this array may not be preserved if it contains a mix of
-                    # indexed and unindexed values.
-                  # Object with schema name: Value
-                ],
-              },
-              "integerValue": "A String", # An integer value.
-              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                  # of doubles representing degrees latitude and degrees longitude. Unless
-                  # specified otherwise, this must conform to the
-                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                  # standard</a>. Values must be within normalized ranges.
-                  #
-                  # Example of normalization code in Python:
-                  #
-                  #     def NormalizeLongitude(longitude):
-                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                  #       q, r = divmod(longitude, 360.0)
-                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                  #         return r - 360.0
-                  #       return r
-                  #
-                  #     def NormalizeLatLng(latitude, longitude):
-                  #       """Wraps decimal degrees latitude and longitude to
-                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                  #       r = latitude % 360.0
-                  #       if r <= 90.0:
-                  #         return r, NormalizeLongitude(longitude)
-                  #       elif r >= 270.0:
-                  #         return r - 360, NormalizeLongitude(longitude)
-                  #       else:
-                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                  #
-                  #     assert 180.0 == NormalizeLongitude(180.0)
-                  #     assert -180.0 == NormalizeLongitude(-180.0)
-                  #     assert -179.0 == NormalizeLongitude(181.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
-                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-              },
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
+        "delete": { # A unique identifier for an entity. # The key of the entity to delete. The entity may or may not already exist.
+            # Must have a complete key path and must not be reserved/read-only.
+            # If a key's partition ID or any of its path kinds or names are
+            # reserved/read-only, the key is reserved/read-only.
+            # A reserved/read-only key is forbidden in certain documented contexts.
+          "path": [ # The entity path.
+              # An entity path consists of one or more elements composed of a kind and a
+              # string or numerical identifier, which identify entities. The first
+              # element identifies a _root entity_, the second element identifies
+              # a _child_ of the root entity, the third element identifies a child of the
+              # second entity, and so forth. The entities identified by all prefixes of
+              # the path are called the element's _ancestors_.
               #
-              # An entity must have a key, unless otherwise documented (for example,
-              # an entity in `Value.entity_value` may have no key).
-              # An entity's kind is its key path's last element's kind,
-              # or null if it has no key.
-              # If a key's partition ID or any of its path kinds or names are
-              # reserved/read-only, the key is reserved/read-only.
-              # A reserved/read-only key is forbidden in certain documented contexts.
-            "path": [ # The entity path.
-                # An entity path consists of one or more elements composed of a kind and a
-                # string or numerical identifier, which identify entities. The first
-                # element identifies a _root entity_, the second element identifies
-                # a _child_ of the root entity, the third element identifies a child of the
-                # second entity, and so forth. The entities identified by all prefixes of
-                # the path are called the element's _ancestors_.
+              # An entity path is always fully complete: *all* of the entity's ancestors
+              # are required to be in the path along with the entity identifier itself.
+              # The only exception is that in some documented cases, the identifier in the
+              # last path element (for the entity) itself may be omitted. For example,
+              # the last path element of the key of `Mutation.insert` may have no
+              # identifier.
+              #
+              # A path can never be empty, and a path can have at most 100 elements.
+            { # A (kind, ID/name) pair used to construct a key path.
                 #
-                # An entity path is always fully complete: *all* of the entity's ancestors
-                # are required to be in the path along with the entity identifier itself.
-                # The only exception is that in some documented cases, the identifier in the
-                # last path element (for the entity) itself may be omitted. For example,
-                # the last path element of the key of `Mutation.insert` may have no
-                # identifier.
-                #
-                # A path can never be empty, and a path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # If either name or ID is set, the element is complete.
-                  # If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity.
-                    # A kind matching regex `__.*__` is reserved/read-only.
-                    # A kind must not contain more than 1500 bytes when UTF-8 encoded.
-                    # Cannot be `""`.
-                "id": "A String", # The auto-allocated ID of the entity.
-                    # Never equal to zero. Values less than zero are discouraged and may not
-                    # be supported in the future.
-                "name": "A String", # The name of the entity.
-                    # A name matching regex `__.*__` is reserved/read-only.
-                    # A name must not be more than 1500 bytes when UTF-8 encoded.
-                    # Cannot be `""`.
-              },
-            ],
-            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
-                # ID and namespace ID.
-                # Queries are scoped to a single partition.
-                # by project and namespace, however the namespace ID may be empty.
-                #
-                # A partition ID contains several dimensions:
-                # project ID and namespace ID.
-                #
-                # Partition dimensions:
-                #
-                # - May be `""`.
-                # - Must be valid UTF-8 bytes.
-                # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
-                # If the value of any dimension matches regex `__.*__`, the partition is
-                # reserved/read-only.
-                # A reserved/read-only partition ID is forbidden in certain documented
-                # contexts.
-                #
-                # Foreign partition IDs (in which the project ID does
-                # not match the context project ID ) are discouraged.
-                # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
-              "projectId": "A String", # The ID of the project to which the entities belong.
-              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
+                # If either name or ID is set, the element is complete.
+                # If neither is set, the element is incomplete.
+              "kind": "A String", # The kind of the entity.
+                  # A kind matching regex `__.*__` is reserved/read-only.
+                  # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+                  # Cannot be `""`.
+              "id": "A String", # The auto-allocated ID of the entity.
+                  # Never equal to zero. Values less than zero are discouraged and may not
+                  # be supported in the future.
+              "name": "A String", # The name of the entity.
+                  # A name matching regex `__.*__` is reserved/read-only.
+                  # A name must not be more than 1500 bytes when UTF-8 encoded.
+                  # Cannot be `""`.
             },
+          ],
+          "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
+              # ID and namespace ID.
+              # Queries are scoped to a single partition.
+              # by project and namespace, however the namespace ID may be empty.
+              #
+              # A partition ID contains several dimensions:
+              # project ID and namespace ID.
+              #
+              # Partition dimensions:
+              #
+              # - May be `""`.
+              # - Must be valid UTF-8 bytes.
+              # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
+              # If the value of any dimension matches regex `__.*__`, the partition is
+              # reserved/read-only.
+              # A reserved/read-only partition ID is forbidden in certain documented
+              # contexts.
+              #
+              # Foreign partition IDs (in which the project ID does
+              # not match the context project ID ) are discouraged.
+              # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
+            "projectId": "A String", # The ID of the project to which the entities belong.
+            "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
           },
         },
       },
@@ -1249,7 +1240,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -1258,10 +1248,52 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
-              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                  # explicitly.
+              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                  # of doubles representing degrees latitude and degrees longitude. Unless
+                  # specified otherwise, this must conform to the
+                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                  # standard</a>. Values must be within normalized ranges.
+                  #
+                  # Example of normalization code in Python:
+                  #
+                  #     def NormalizeLongitude(longitude):
+                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                  #       q, r = divmod(longitude, 360.0)
+                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                  #         return r - 360.0
+                  #       return r
+                  #
+                  #     def NormalizeLatLng(latitude, longitude):
+                  #       """Wraps decimal degrees latitude and longitude to
+                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                  #       r = latitude % 360.0
+                  #       if r <= 90.0:
+                  #         return r, NormalizeLongitude(longitude)
+                  #       elif r >= 270.0:
+                  #         return r - 360, NormalizeLongitude(longitude)
+                  #       else:
+                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                  #
+                  #     assert 180.0 == NormalizeLongitude(180.0)
+                  #     assert -180.0 == NormalizeLongitude(-180.0)
+                  #     assert -179.0 == NormalizeLongitude(181.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
               "doubleValue": 3.14, # A double value.
               "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                  # explicitly.
               "keyValue": { # A unique identifier for an entity. # A key value.
                   # If a key's partition ID or any of its path kinds or names are
                   # reserved/read-only, the key is reserved/read-only.
@@ -1324,14 +1356,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -1343,51 +1375,7 @@
                 ],
               },
               "integerValue": "A String", # An integer value.
-              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                  # of doubles representing degrees latitude and degrees longitude. Unless
-                  # specified otherwise, this must conform to the
-                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                  # standard</a>. Values must be within normalized ranges.
-                  #
-                  # Example of normalization code in Python:
-                  #
-                  #     def NormalizeLongitude(longitude):
-                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                  #       q, r = divmod(longitude, 360.0)
-                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                  #         return r - 360.0
-                  #       return r
-                  #
-                  #     def NormalizeLatLng(latitude, longitude):
-                  #       """Wraps decimal degrees latitude and longitude to
-                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                  #       r = latitude % 360.0
-                  #       if r <= 90.0:
-                  #         return r, NormalizeLongitude(longitude)
-                  #       elif r >= 270.0:
-                  #         return r - 360, NormalizeLongitude(longitude)
-                  #       else:
-                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                  #
-                  #     assert 180.0 == NormalizeLongitude(180.0)
-                  #     assert -180.0 == NormalizeLongitude(-180.0)
-                  #     assert -179.0 == NormalizeLongitude(181.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
-                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-              },
+              "nullValue": "A String", # A null value.
             },
           },
           "key": { # A unique identifier for an entity. # The entity's key.
@@ -1554,7 +1542,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -1563,10 +1550,52 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
-              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                  # explicitly.
+              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                  # of doubles representing degrees latitude and degrees longitude. Unless
+                  # specified otherwise, this must conform to the
+                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                  # standard</a>. Values must be within normalized ranges.
+                  #
+                  # Example of normalization code in Python:
+                  #
+                  #     def NormalizeLongitude(longitude):
+                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                  #       q, r = divmod(longitude, 360.0)
+                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                  #         return r - 360.0
+                  #       return r
+                  #
+                  #     def NormalizeLatLng(latitude, longitude):
+                  #       """Wraps decimal degrees latitude and longitude to
+                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                  #       r = latitude % 360.0
+                  #       if r <= 90.0:
+                  #         return r, NormalizeLongitude(longitude)
+                  #       elif r >= 270.0:
+                  #         return r - 360, NormalizeLongitude(longitude)
+                  #       else:
+                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                  #
+                  #     assert 180.0 == NormalizeLongitude(180.0)
+                  #     assert -180.0 == NormalizeLongitude(-180.0)
+                  #     assert -179.0 == NormalizeLongitude(181.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
               "doubleValue": 3.14, # A double value.
               "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                  # explicitly.
               "keyValue": { # A unique identifier for an entity. # A key value.
                   # If a key's partition ID or any of its path kinds or names are
                   # reserved/read-only, the key is reserved/read-only.
@@ -1629,14 +1658,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -1648,51 +1677,7 @@
                 ],
               },
               "integerValue": "A String", # An integer value.
-              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                  # of doubles representing degrees latitude and degrees longitude. Unless
-                  # specified otherwise, this must conform to the
-                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                  # standard</a>. Values must be within normalized ranges.
-                  #
-                  # Example of normalization code in Python:
-                  #
-                  #     def NormalizeLongitude(longitude):
-                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                  #       q, r = divmod(longitude, 360.0)
-                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                  #         return r - 360.0
-                  #       return r
-                  #
-                  #     def NormalizeLatLng(latitude, longitude):
-                  #       """Wraps decimal degrees latitude and longitude to
-                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                  #       r = latitude % 360.0
-                  #       if r <= 90.0:
-                  #         return r, NormalizeLongitude(longitude)
-                  #       elif r >= 270.0:
-                  #         return r - 360, NormalizeLongitude(longitude)
-                  #       else:
-                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                  #
-                  #     assert 180.0 == NormalizeLongitude(180.0)
-                  #     assert -180.0 == NormalizeLongitude(-180.0)
-                  #     assert -179.0 == NormalizeLongitude(181.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
-                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-              },
+              "nullValue": "A String", # A null value.
             },
           },
           "key": { # A unique identifier for an entity. # The entity's key.
@@ -1846,7 +1831,6 @@
           },
           "value": { # A message that can hold any of the supported value types and associated # The value to compare the property to.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -1855,10 +1839,52 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
-            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                # explicitly.
+            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
             "doubleValue": 3.14, # A double value.
             "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                # explicitly.
             "keyValue": { # A unique identifier for an entity. # A key value.
                 # If a key's partition ID or any of its path kinds or names are
                 # reserved/read-only, the key is reserved/read-only.
@@ -1921,14 +1947,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -1940,51 +1966,7 @@
               ],
             },
             "integerValue": "A String", # An integer value.
-            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                # of doubles representing degrees latitude and degrees longitude. Unless
-                # specified otherwise, this must conform to the
-                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                # standard</a>. Values must be within normalized ranges.
-                #
-                # Example of normalization code in Python:
-                #
-                #     def NormalizeLongitude(longitude):
-                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                #       q, r = divmod(longitude, 360.0)
-                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                #         return r - 360.0
-                #       return r
-                #
-                #     def NormalizeLatLng(latitude, longitude):
-                #       """Wraps decimal degrees latitude and longitude to
-                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                #       r = latitude % 360.0
-                #       if r <= 90.0:
-                #         return r, NormalizeLongitude(longitude)
-                #       elif r >= 270.0:
-                #         return r - 360, NormalizeLongitude(longitude)
-                #       else:
-                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                #
-                #     assert 180.0 == NormalizeLongitude(180.0)
-                #     assert -180.0 == NormalizeLongitude(-180.0)
-                #     assert -179.0 == NormalizeLongitude(181.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
-              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
+            "nullValue": "A String", # A null value.
           },
           "op": "A String", # The operator to filter by.
         },
@@ -2044,7 +2026,6 @@
               # result batches.
           "value": { # A message that can hold any of the supported value types and associated # A value parameter.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -2053,10 +2034,52 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
-            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                # explicitly.
+            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
             "doubleValue": 3.14, # A double value.
             "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                # explicitly.
             "keyValue": { # A unique identifier for an entity. # A key value.
                 # If a key's partition ID or any of its path kinds or names are
                 # reserved/read-only, the key is reserved/read-only.
@@ -2119,14 +2142,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -2138,51 +2161,7 @@
               ],
             },
             "integerValue": "A String", # An integer value.
-            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                # of doubles representing degrees latitude and degrees longitude. Unless
-                # specified otherwise, this must conform to the
-                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                # standard</a>. Values must be within normalized ranges.
-                #
-                # Example of normalization code in Python:
-                #
-                #     def NormalizeLongitude(longitude):
-                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                #       q, r = divmod(longitude, 360.0)
-                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                #         return r - 360.0
-                #       return r
-                #
-                #     def NormalizeLatLng(latitude, longitude):
-                #       """Wraps decimal degrees latitude and longitude to
-                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                #       r = latitude % 360.0
-                #       if r <= 90.0:
-                #         return r, NormalizeLongitude(longitude)
-                #       elif r >= 270.0:
-                #         return r - 360, NormalizeLongitude(longitude)
-                #       else:
-                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                #
-                #     assert 180.0 == NormalizeLongitude(180.0)
-                #     assert -180.0 == NormalizeLongitude(-180.0)
-                #     assert -179.0 == NormalizeLongitude(181.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
-              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
+            "nullValue": "A String", # A null value.
           },
         },
       },
@@ -2196,7 +2175,6 @@
               # result batches.
           "value": { # A message that can hold any of the supported value types and associated # A value parameter.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -2205,10 +2183,52 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
-            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                # explicitly.
+            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
             "doubleValue": 3.14, # A double value.
             "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                # explicitly.
             "keyValue": { # A unique identifier for an entity. # A key value.
                 # If a key's partition ID or any of its path kinds or names are
                 # reserved/read-only, the key is reserved/read-only.
@@ -2271,14 +2291,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -2290,51 +2310,7 @@
               ],
             },
             "integerValue": "A String", # An integer value.
-            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                # of doubles representing degrees latitude and degrees longitude. Unless
-                # specified otherwise, this must conform to the
-                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                # standard</a>. Values must be within normalized ranges.
-                #
-                # Example of normalization code in Python:
-                #
-                #     def NormalizeLongitude(longitude):
-                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                #       q, r = divmod(longitude, 360.0)
-                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                #         return r - 360.0
-                #       return r
-                #
-                #     def NormalizeLatLng(latitude, longitude):
-                #       """Wraps decimal degrees latitude and longitude to
-                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                #       r = latitude % 360.0
-                #       if r <= 90.0:
-                #         return r, NormalizeLongitude(longitude)
-                #       elif r >= 270.0:
-                #         return r - 360, NormalizeLongitude(longitude)
-                #       else:
-                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                #
-                #     assert 180.0 == NormalizeLongitude(180.0)
-                #     assert -180.0 == NormalizeLongitude(-180.0)
-                #     assert -179.0 == NormalizeLongitude(181.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
-              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
+            "nullValue": "A String", # A null value.
           },
         },
       ],
@@ -2404,7 +2380,6 @@
           },
           "value": { # A message that can hold any of the supported value types and associated # The value to compare the property to.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -2413,10 +2388,52 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
-            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                # explicitly.
+            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                # of doubles representing degrees latitude and degrees longitude. Unless
+                # specified otherwise, this must conform to the
+                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                # standard</a>. Values must be within normalized ranges.
+                #
+                # Example of normalization code in Python:
+                #
+                #     def NormalizeLongitude(longitude):
+                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                #       q, r = divmod(longitude, 360.0)
+                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                #         return r - 360.0
+                #       return r
+                #
+                #     def NormalizeLatLng(latitude, longitude):
+                #       """Wraps decimal degrees latitude and longitude to
+                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                #       r = latitude % 360.0
+                #       if r <= 90.0:
+                #         return r, NormalizeLongitude(longitude)
+                #       elif r >= 270.0:
+                #         return r - 360, NormalizeLongitude(longitude)
+                #       else:
+                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                #
+                #     assert 180.0 == NormalizeLongitude(180.0)
+                #     assert -180.0 == NormalizeLongitude(-180.0)
+                #     assert -179.0 == NormalizeLongitude(181.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
             "doubleValue": 3.14, # A double value.
             "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+            "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                # explicitly.
             "keyValue": { # A unique identifier for an entity. # A key value.
                 # If a key's partition ID or any of its path kinds or names are
                 # reserved/read-only, the key is reserved/read-only.
@@ -2479,14 +2496,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -2498,51 +2515,7 @@
               ],
             },
             "integerValue": "A String", # An integer value.
-            "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                # of doubles representing degrees latitude and degrees longitude. Unless
-                # specified otherwise, this must conform to the
-                # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                # standard</a>. Values must be within normalized ranges.
-                #
-                # Example of normalization code in Python:
-                #
-                #     def NormalizeLongitude(longitude):
-                #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                #       q, r = divmod(longitude, 360.0)
-                #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                #         return r - 360.0
-                #       return r
-                #
-                #     def NormalizeLatLng(latitude, longitude):
-                #       """Wraps decimal degrees latitude and longitude to
-                #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                #       r = latitude % 360.0
-                #       if r <= 90.0:
-                #         return r, NormalizeLongitude(longitude)
-                #       elif r >= 270.0:
-                #         return r - 360, NormalizeLongitude(longitude)
-                #       else:
-                #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                #
-                #     assert 180.0 == NormalizeLongitude(180.0)
-                #     assert -180.0 == NormalizeLongitude(-180.0)
-                #     assert -179.0 == NormalizeLongitude(181.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
-              "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
+            "nullValue": "A String", # A null value.
           },
           "op": "A String", # The operator to filter by.
         },
@@ -2604,7 +2577,6 @@
                 # The name cannot be `""`.
               "a_key": { # A message that can hold any of the supported value types and associated
                   # metadata.
-                "booleanValue": True or False, # A boolean value.
                 "entityValue": # Object with schema name: Entity # An entity value.
                     #
                     # - May have no key.
@@ -2613,10 +2585,52 @@
                 "timestampValue": "A String", # A timestamp value.
                     # When stored in the Datastore, precise only to microseconds;
                     # any additional precision is rounded down.
-                "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                    # explicitly.
+                "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                    # of doubles representing degrees latitude and degrees longitude. Unless
+                    # specified otherwise, this must conform to the
+                    # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                    # standard</a>. Values must be within normalized ranges.
+                    #
+                    # Example of normalization code in Python:
+                    #
+                    #     def NormalizeLongitude(longitude):
+                    #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                    #       q, r = divmod(longitude, 360.0)
+                    #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                    #         return r - 360.0
+                    #       return r
+                    #
+                    #     def NormalizeLatLng(latitude, longitude):
+                    #       """Wraps decimal degrees latitude and longitude to
+                    #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                    #       r = latitude % 360.0
+                    #       if r <= 90.0:
+                    #         return r, NormalizeLongitude(longitude)
+                    #       elif r >= 270.0:
+                    #         return r - 360, NormalizeLongitude(longitude)
+                    #       else:
+                    #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                    #
+                    #     assert 180.0 == NormalizeLongitude(180.0)
+                    #     assert -180.0 == NormalizeLongitude(-180.0)
+                    #     assert -179.0 == NormalizeLongitude(181.0)
+                    #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                    #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                    #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                    #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                    #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                    #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                    #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                    #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                    #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                    #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                  "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
                 "doubleValue": 3.14, # A double value.
                 "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+                "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                    # explicitly.
                 "keyValue": { # A unique identifier for an entity. # A key value.
                     # If a key's partition ID or any of its path kinds or names are
                     # reserved/read-only, the key is reserved/read-only.
@@ -2679,14 +2693,14 @@
                     "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                   },
                 },
+                "stringValue": "A String", # A UTF-8 encoded string value.
+                    # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                    # Otherwise, may be set to at least 1,000,000 bytes.
                 "blobValue": "A String", # A blob value.
                     # May have at most 1,000,000 bytes.
                     # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                     # In JSON requests, must be base64-encoded.
-                "stringValue": "A String", # A UTF-8 encoded string value.
-                    # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                    # Otherwise, may be set to at least 1,000,000 bytes.
-                "nullValue": "A String", # A null value.
+                "booleanValue": True or False, # A boolean value.
                 "arrayValue": { # An array value. # An array value.
                     # Cannot contain another array value.
                     # A `Value` instance that sets field `array_value` must not set fields
@@ -2698,51 +2712,7 @@
                   ],
                 },
                 "integerValue": "A String", # An integer value.
-                "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                    # of doubles representing degrees latitude and degrees longitude. Unless
-                    # specified otherwise, this must conform to the
-                    # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                    # standard</a>. Values must be within normalized ranges.
-                    #
-                    # Example of normalization code in Python:
-                    #
-                    #     def NormalizeLongitude(longitude):
-                    #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                    #       q, r = divmod(longitude, 360.0)
-                    #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                    #         return r - 360.0
-                    #       return r
-                    #
-                    #     def NormalizeLatLng(latitude, longitude):
-                    #       """Wraps decimal degrees latitude and longitude to
-                    #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                    #       r = latitude % 360.0
-                    #       if r <= 90.0:
-                    #         return r, NormalizeLongitude(longitude)
-                    #       elif r >= 270.0:
-                    #         return r - 360, NormalizeLongitude(longitude)
-                    #       else:
-                    #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                    #
-                    #     assert 180.0 == NormalizeLongitude(180.0)
-                    #     assert -180.0 == NormalizeLongitude(-180.0)
-                    #     assert -179.0 == NormalizeLongitude(181.0)
-                    #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                    #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                    #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                    #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                    #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                    #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                    #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                    #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                    #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                    #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                    #
-                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                    # as if it were annotated as ST_LOCATION.
-                  "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
+                "nullValue": "A String", # A null value.
               },
             },
             "key": { # A unique identifier for an entity. # The entity's key.
diff --git a/docs/dyn/datastore_v1beta1.datasets.html b/docs/dyn/datastore_v1beta1.datasets.html
deleted file mode 100644
index 26cc213..0000000
--- a/docs/dyn/datastore_v1beta1.datasets.html
+++ /dev/null
@@ -1,1281 +0,0 @@
-<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="datastore_v1beta1.html">Google Cloud Datastore API</a> . <a href="datastore_v1beta1.datasets.html">datasets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#allocateIds">allocateIds(datasetId, body)</a></code></p>
-<p class="firstline">Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).</p>
-<p class="toc_element">
-  <code><a href="#beginTransaction">beginTransaction(datasetId, body)</a></code></p>
-<p class="firstline">Begin a new transaction.</p>
-<p class="toc_element">
-  <code><a href="#blindWrite">blindWrite(datasetId, body)</a></code></p>
-<p class="firstline">Create, delete or modify some entities outside a transaction.</p>
-<p class="toc_element">
-  <code><a href="#commit">commit(datasetId, body)</a></code></p>
-<p class="firstline">Commit a transaction, optionally creating, deleting or modifying some entities.</p>
-<p class="toc_element">
-  <code><a href="#lookup">lookup(datasetId, body)</a></code></p>
-<p class="firstline">Look up some entities by key.</p>
-<p class="toc_element">
-  <code><a href="#rollback">rollback(datasetId, body)</a></code></p>
-<p class="firstline">Roll back a transaction.</p>
-<p class="toc_element">
-  <code><a href="#runQuery">runQuery(datasetId, body)</a></code></p>
-<p class="firstline">Query for entities.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="allocateIds">allocateIds(datasetId, body)</code>
-  <pre>Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "keys": [ # A list of keys with incomplete key paths to allocate IDs for. No key may be reserved/read-only.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "keys": [ # The keys specified in the request (in the same order), each with its key path completed with a newly allocated ID.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="beginTransaction">beginTransaction(datasetId, body)</code>
-  <pre>Begin a new transaction.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "isolationLevel": "A String", # The transaction isolation level. Either snapshot or serializable. The default isolation level is snapshot isolation, which means that another transaction may not concurrently modify the data that is modified by this transaction. Optionally, a transaction can request to be made serializable which means that another transaction cannot concurrently modify the data that is read or modified by this transaction.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "transaction": "A String", # The transaction identifier (always present).
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="blindWrite">blindWrite(datasetId, body)</code>
-  <pre>Create, delete or modify some entities outside a transaction.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "mutation": { # A set of changes to apply. # The mutation to perform.
-      "insert": [ # Entities to insert. Each inserted entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "force": True or False, # Ignore a user specified read-only period. Optional.
-      "insertAutoId": [ # Insert entities with a newly allocated ID. Each inserted entity's key must omit the final identifier in its path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "update": [ # Entities to update. Each updated entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "delete": [ # Keys of entities to delete. Each key must have a complete key path and must not be reserved/read-only.
-        { # A unique identifier for an entity.
-          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-              "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-              "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-            },
-          ],
-          "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-              #
-              # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-            "namespace": "A String", # The namespace.
-            "datasetId": "A String", # The dataset ID.
-          },
-        },
-      ],
-      "upsert": [ # Entities to upsert. Each upserted entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "mutationResult": { # The result of performing the mutation (always present).
-      "insertAutoIdKeys": [ # Keys for insertAutoId entities. One per entity from the request, in the same order.
-        { # A unique identifier for an entity.
-          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-              "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-              "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-            },
-          ],
-          "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-              #
-              # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-            "namespace": "A String", # The namespace.
-            "datasetId": "A String", # The dataset ID.
-          },
-        },
-      ],
-      "indexUpdates": 42, # Number of index writes.
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="commit">commit(datasetId, body)</code>
-  <pre>Commit a transaction, optionally creating, deleting or modifying some entities.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "ignoreReadOnly": True or False,
-    "transaction": "A String", # The transaction identifier, returned by a call to beginTransaction. Must be set when mode is TRANSACTIONAL.
-    "mutation": { # A set of changes to apply. # The mutation to perform. Optional.
-      "insert": [ # Entities to insert. Each inserted entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "force": True or False, # Ignore a user specified read-only period. Optional.
-      "insertAutoId": [ # Insert entities with a newly allocated ID. Each inserted entity's key must omit the final identifier in its path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "update": [ # Entities to update. Each updated entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "delete": [ # Keys of entities to delete. Each key must have a complete key path and must not be reserved/read-only.
-        { # A unique identifier for an entity.
-          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-              "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-              "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-            },
-          ],
-          "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-              #
-              # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-            "namespace": "A String", # The namespace.
-            "datasetId": "A String", # The dataset ID.
-          },
-        },
-      ],
-      "upsert": [ # Entities to upsert. Each upserted entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "mutationResult": { # The result of performing the mutation (if any).
-      "insertAutoIdKeys": [ # Keys for insertAutoId entities. One per entity from the request, in the same order.
-        { # A unique identifier for an entity.
-          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-              "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-              "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-            },
-          ],
-          "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-              #
-              # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-            "namespace": "A String", # The namespace.
-            "datasetId": "A String", # The dataset ID.
-          },
-        },
-      ],
-      "indexUpdates": 42, # Number of index writes.
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="lookup">lookup(datasetId, body)</code>
-  <pre>Look up some entities by key.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "keys": [ # Keys of entities to look up from the datastore.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-    "readOptions": { # Options for this lookup request. Optional.
-      "transaction": "A String", # The transaction to use. Optional.
-      "readConsistency": "A String", # The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "deferred": [ # A list of keys that were not looked up due to resource constraints.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-    "missing": [ # Entities not found, with only the key populated.
-      { # The result of fetching an entity from the datastore.
-        "entity": { # An entity. # The resulting entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      },
-    ],
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "found": [ # Entities found.
-      { # The result of fetching an entity from the datastore.
-        "entity": { # An entity. # The resulting entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-              "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="rollback">rollback(datasetId, body)</code>
-  <pre>Roll back a transaction.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "transaction": "A String", # The transaction identifier, returned by a call to beginTransaction.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="runQuery">runQuery(datasetId, body)</code>
-  <pre>Query for entities.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "query": { # A query. # The query to run. Either this field or field gql_query must be set, but not both.
-      "startCursor": "A String", # A starting point for the query results. Optional. Query cursors are returned in query result batches.
-      "kinds": [ # The kinds to query (if empty, returns entities from all kinds).
-        { # A representation of a kind.
-          "name": "A String", # The name of the kind.
-        },
-      ],
-      "projection": [ # The projection to return. If not set the entire entity is returned.
-        { # A representation of a property in a projection.
-          "aggregationFunction": "A String", # The aggregation function to apply to the property. Optional. Can only be used when grouping by at least one property. Must then be set on all properties in the projection that are not being grouped by. Aggregation functions: first selects the first result as determined by the query's order.
-          "property": { # A reference to a property relative to the kind expressions. # The property to project.
-            "name": "A String", # The name of the property.
-          },
-        },
-      ],
-      "order": [ # The order to apply to the query results (if empty, order is unspecified).
-        { # The desired order for a specific property.
-          "direction": "A String", # The direction to order by. One of ascending or descending. Optional, defaults to ascending.
-          "property": { # A reference to a property relative to the kind expressions. # The property to order by.
-            "name": "A String", # The name of the property.
-          },
-        },
-      ],
-      "filter": { # A holder for any type of filter. Exactly one field should be specified. # The filter to apply (optional).
-        "compositeFilter": { # A filter that merges the multiple other filters using the given operation. # A composite filter.
-          "operator": "A String", # The operator for combining multiple filters. Only "and" is currently supported.
-          "filters": [ # The list of filters to combine. Must contain at least one filter.
-            # Object with schema name: Filter
-          ],
-        },
-        "propertyFilter": { # A filter on a specific property. # A filter on a property.
-          "operator": "A String", # The operator to filter by. One of lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, equal, or hasAncestor.
-          "property": { # A reference to a property relative to the kind expressions. # The property to filter by.
-            "name": "A String", # The name of the property.
-          },
-          "value": { # A message that can hold any of the supported value types and associated metadata. # The value to compare the property to.
-            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-            "doubleValue": 3.14, # A double value.
-            "integerValue": "A String", # An integer value.
-            "meaning": 42, # The meaning field is reserved and should not be used.
-            "dateTimeValue": "A String", # A timestamp value.
-            "keyValue": { # A unique identifier for an entity. # A key value.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-            "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-            "indexed": True or False, # If the value should be indexed.
-                #
-                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-            "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-            "booleanValue": True or False, # A boolean value.
-            "blobKeyValue": "A String", # A blob key value.
-          },
-        },
-      },
-      "limit": 42, # The maximum number of results to return. Applies after all other constraints. Optional.
-      "offset": 42, # The number of results to skip. Applies before limit, but after all other constraints (optional, defaults to 0).
-      "endCursor": "A String", # An ending point for the query results. Optional. Query cursors are returned in query result batches.
-      "groupBy": [ # The properties to group by (if empty, no grouping is applied to the result set).
-        { # A reference to a property relative to the kind expressions.
-          "name": "A String", # The name of the property.
-        },
-      ],
-    },
-    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID, but all other partition IDs in RunQueryRequest are normalized with this partition ID as the context partition ID.
-        #
-        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-      "namespace": "A String", # The namespace.
-      "datasetId": "A String", # The dataset ID.
-    },
-    "gqlQuery": { # A GQL query. # The GQL query to run. Either this field or field query must be set, but not both.
-      "queryString": "A String", # The query string.
-      "nameArgs": [ # A named argument must set field GqlQueryArg.name. No two named arguments may have the same name. For each non-reserved named binding site in the query string, there must be a named argument with that name, but not necessarily the inverse.
-        { # A binding argument for a GQL query.
-          "cursor": "A String",
-          "name": "A String", # Must match regex "[A-Za-z_$][A-Za-z_$0-9]*". Must not match regex "__.*__". Must not be "".
-          "value": { # A message that can hold any of the supported value types and associated metadata.
-            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-            "doubleValue": 3.14, # A double value.
-            "integerValue": "A String", # An integer value.
-            "meaning": 42, # The meaning field is reserved and should not be used.
-            "dateTimeValue": "A String", # A timestamp value.
-            "keyValue": { # A unique identifier for an entity. # A key value.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-            "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-            "indexed": True or False, # If the value should be indexed.
-                #
-                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-            "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-            "booleanValue": True or False, # A boolean value.
-            "blobKeyValue": "A String", # A blob key value.
-          },
-        },
-      ],
-      "allowLiteral": True or False, # When false, the query string must not contain a literal.
-      "numberArgs": [ # Numbered binding site @1 references the first numbered argument, effectively using 1-based indexing, rather than the usual 0. A numbered argument must NOT set field GqlQueryArg.name. For each binding site numbered i in query_string, there must be an ith numbered argument. The inverse must also be true.
-        { # A binding argument for a GQL query.
-          "cursor": "A String",
-          "name": "A String", # Must match regex "[A-Za-z_$][A-Za-z_$0-9]*". Must not match regex "__.*__". Must not be "".
-          "value": { # A message that can hold any of the supported value types and associated metadata.
-            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-            "doubleValue": 3.14, # A double value.
-            "integerValue": "A String", # An integer value.
-            "meaning": 42, # The meaning field is reserved and should not be used.
-            "dateTimeValue": "A String", # A timestamp value.
-            "keyValue": { # A unique identifier for an entity. # A key value.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-            "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-            "indexed": True or False, # If the value should be indexed.
-                #
-                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-            "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-            "booleanValue": True or False, # A boolean value.
-            "blobKeyValue": "A String", # A blob key value.
-          },
-        },
-      ],
-    },
-    "readOptions": { # The options for this query.
-      "transaction": "A String", # The transaction to use. Optional.
-      "readConsistency": "A String", # The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "batch": { # A batch of results produced by a query. # A batch of query results (always present).
-      "moreResults": "A String", # The state of the query after the current batch. One of notFinished, moreResultsAfterLimit, noMoreResults.
-      "entityResults": [ # The results for this batch.
-        { # The result of fetching an entity from the datastore.
-          "entity": { # An entity. # The resulting entity.
-            "properties": { # The entity's properties.
-              "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-                "multi": True or False, # If this property contains a list of values. Input values may explicitly set multi to false, but otherwise false is always represented by omitting multi.
-                "values": [ # The value(s) of the property. When multi is false there is always exactly one value. When multi is true there are always one or more values. Each value can have only one value property populated. For example, you cannot have a values list of { values: [ { integerValue: 22, stringValue: "a" } ] }, but you can have { multi: true, values: [ { integerValue: 22 }, { stringValue: "a" } ] }.
-                  { # A message that can hold any of the supported value types and associated metadata.
-                    "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                    "doubleValue": 3.14, # A double value.
-                    "integerValue": "A String", # An integer value.
-                    "meaning": 42, # The meaning field is reserved and should not be used.
-                    "dateTimeValue": "A String", # A timestamp value.
-                    "keyValue": { # A unique identifier for an entity. # A key value.
-                      "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                        { # A (kind, ID/name) pair used to construct a key path.
-                            #
-                            # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                          "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                          "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                          "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                        },
-                      ],
-                      "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                          #
-                          # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                        "namespace": "A String", # The namespace.
-                        "datasetId": "A String", # The dataset ID.
-                      },
-                    },
-                    "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                    "indexed": True or False, # If the value should be indexed.
-                        #
-                        # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                    "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                    "booleanValue": True or False, # A boolean value.
-                    "blobKeyValue": "A String", # A blob key value.
-                  },
-                ],
-              },
-            },
-            "key": { # A unique identifier for an entity. # The entity's key.
-                #
-                # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-          },
-        },
-      ],
-      "skippedResults": 42, # The number of results skipped because of Query.offset.
-      "endCursor": "A String", # A cursor that points to the position after the last result in the batch. May be absent. TODO(arfuller): Once all plans produce cursors update documentation here.
-      "entityResultType": "A String", # The result type for every entity in entityResults. full for full entities, projection for entities with only projected properties, keyOnly for entities with only a key.
-    },
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/datastore_v1beta1.html b/docs/dyn/datastore_v1beta1.html
deleted file mode 100644
index fc21e15..0000000
--- a/docs/dyn/datastore_v1beta1.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<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="datastore_v1beta1.html">Google Cloud Datastore API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="datastore_v1beta1.datasets.html">datasets()</a></code>
-</p>
-<p class="firstline">Returns the datasets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/datastore_v1beta2.datasets.html b/docs/dyn/datastore_v1beta2.datasets.html
deleted file mode 100644
index 62c2ae0..0000000
--- a/docs/dyn/datastore_v1beta2.datasets.html
+++ /dev/null
@@ -1,1194 +0,0 @@
-<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="datastore_v1beta2.html">Google Cloud Datastore API</a> . <a href="datastore_v1beta2.datasets.html">datasets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#allocateIds">allocateIds(datasetId, body)</a></code></p>
-<p class="firstline">Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).</p>
-<p class="toc_element">
-  <code><a href="#beginTransaction">beginTransaction(datasetId, body)</a></code></p>
-<p class="firstline">Begin a new transaction.</p>
-<p class="toc_element">
-  <code><a href="#commit">commit(datasetId, body)</a></code></p>
-<p class="firstline">Commit a transaction, optionally creating, deleting or modifying some entities.</p>
-<p class="toc_element">
-  <code><a href="#lookup">lookup(datasetId, body)</a></code></p>
-<p class="firstline">Look up some entities by key.</p>
-<p class="toc_element">
-  <code><a href="#rollback">rollback(datasetId, body)</a></code></p>
-<p class="firstline">Roll back a transaction.</p>
-<p class="toc_element">
-  <code><a href="#runQuery">runQuery(datasetId, body)</a></code></p>
-<p class="firstline">Query for entities.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="allocateIds">allocateIds(datasetId, body)</code>
-  <pre>Allocate IDs for incomplete keys (useful for referencing an entity before it is inserted).
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "keys": [ # A list of keys with incomplete key paths to allocate IDs for. No key may be reserved/read-only.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "keys": [ # The keys specified in the request (in the same order), each with its key path completed with a newly allocated ID.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="beginTransaction">beginTransaction(datasetId, body)</code>
-  <pre>Begin a new transaction.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "isolationLevel": "A String", # The transaction isolation level. Either snapshot or serializable. The default isolation level is snapshot isolation, which means that another transaction may not concurrently modify the data that is modified by this transaction. Optionally, a transaction can request to be made serializable which means that another transaction cannot concurrently modify the data that is read or modified by this transaction.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "transaction": "A String", # The transaction identifier (always present).
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="commit">commit(datasetId, body)</code>
-  <pre>Commit a transaction, optionally creating, deleting or modifying some entities.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "ignoreReadOnly": True or False,
-    "transaction": "A String", # The transaction identifier, returned by a call to beginTransaction. Must be set when mode is TRANSACTIONAL.
-    "mode": "A String", # The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.
-    "mutation": { # A set of changes to apply. # The mutation to perform. Optional.
-      "insert": [ # Entities to insert. Each inserted entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-              "doubleValue": 3.14, # A double value.
-              "integerValue": "A String", # An integer value.
-              "meaning": 42, # The meaning field is reserved and should not be used.
-              "dateTimeValue": "A String", # A timestamp value.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                    "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                    "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                  },
-                ],
-                "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                    #
-                    # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                  "namespace": "A String", # The namespace.
-                  "datasetId": "A String", # The dataset ID.
-                },
-              },
-              "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-              "indexed": True or False, # If the value should be indexed.
-                  #
-                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-              "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-              "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                    # Object with schema name: Value
-                  ],
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-              "booleanValue": True or False, # A boolean value.
-              "blobKeyValue": "A String", # A blob key value.
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "force": True or False, # Ignore a user specified read-only period. Optional.
-      "insertAutoId": [ # Insert entities with a newly allocated ID. Each inserted entity's key must omit the final identifier in its path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-              "doubleValue": 3.14, # A double value.
-              "integerValue": "A String", # An integer value.
-              "meaning": 42, # The meaning field is reserved and should not be used.
-              "dateTimeValue": "A String", # A timestamp value.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                    "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                    "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                  },
-                ],
-                "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                    #
-                    # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                  "namespace": "A String", # The namespace.
-                  "datasetId": "A String", # The dataset ID.
-                },
-              },
-              "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-              "indexed": True or False, # If the value should be indexed.
-                  #
-                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-              "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-              "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                    # Object with schema name: Value
-                  ],
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-              "booleanValue": True or False, # A boolean value.
-              "blobKeyValue": "A String", # A blob key value.
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "update": [ # Entities to update. Each updated entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-              "doubleValue": 3.14, # A double value.
-              "integerValue": "A String", # An integer value.
-              "meaning": 42, # The meaning field is reserved and should not be used.
-              "dateTimeValue": "A String", # A timestamp value.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                    "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                    "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                  },
-                ],
-                "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                    #
-                    # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                  "namespace": "A String", # The namespace.
-                  "datasetId": "A String", # The dataset ID.
-                },
-              },
-              "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-              "indexed": True or False, # If the value should be indexed.
-                  #
-                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-              "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-              "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                    # Object with schema name: Value
-                  ],
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-              "booleanValue": True or False, # A boolean value.
-              "blobKeyValue": "A String", # A blob key value.
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-      "delete": [ # Keys of entities to delete. Each key must have a complete key path and must not be reserved/read-only.
-        { # A unique identifier for an entity.
-          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-              "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-              "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-            },
-          ],
-          "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-              #
-              # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-            "namespace": "A String", # The namespace.
-            "datasetId": "A String", # The dataset ID.
-          },
-        },
-      ],
-      "upsert": [ # Entities to upsert. Each upserted entity's key must have a complete path and must not be reserved/read-only.
-        { # An entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-              "doubleValue": 3.14, # A double value.
-              "integerValue": "A String", # An integer value.
-              "meaning": 42, # The meaning field is reserved and should not be used.
-              "dateTimeValue": "A String", # A timestamp value.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                    "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                    "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                  },
-                ],
-                "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                    #
-                    # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                  "namespace": "A String", # The namespace.
-                  "datasetId": "A String", # The dataset ID.
-                },
-              },
-              "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-              "indexed": True or False, # If the value should be indexed.
-                  #
-                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-              "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-              "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                    # Object with schema name: Value
-                  ],
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-              "booleanValue": True or False, # A boolean value.
-              "blobKeyValue": "A String", # A blob key value.
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      ],
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "mutationResult": { # The result of performing the mutation (if any).
-      "insertAutoIdKeys": [ # Keys for insertAutoId entities. One per entity from the request, in the same order.
-        { # A unique identifier for an entity.
-          "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-              "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-              "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-            },
-          ],
-          "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-              #
-              # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-            "namespace": "A String", # The namespace.
-            "datasetId": "A String", # The dataset ID.
-          },
-        },
-      ],
-      "indexUpdates": 42, # Number of index writes.
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="lookup">lookup(datasetId, body)</code>
-  <pre>Look up some entities by key.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "keys": [ # Keys of entities to look up from the datastore.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-    "readOptions": { # Options for this lookup request. Optional.
-      "transaction": "A String", # The transaction to use. Optional.
-      "readConsistency": "A String", # The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "deferred": [ # A list of keys that were not looked up due to resource constraints.
-      { # A unique identifier for an entity.
-        "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-          { # A (kind, ID/name) pair used to construct a key path.
-              #
-              # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-            "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-            "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-            "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-          },
-        ],
-        "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-            #
-            # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-          "namespace": "A String", # The namespace.
-          "datasetId": "A String", # The dataset ID.
-        },
-      },
-    ],
-    "missing": [ # Entities not found, with only the key populated.
-      { # The result of fetching an entity from the datastore.
-        "entity": { # An entity. # The resulting entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-              "doubleValue": 3.14, # A double value.
-              "integerValue": "A String", # An integer value.
-              "meaning": 42, # The meaning field is reserved and should not be used.
-              "dateTimeValue": "A String", # A timestamp value.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                    "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                    "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                  },
-                ],
-                "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                    #
-                    # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                  "namespace": "A String", # The namespace.
-                  "datasetId": "A String", # The dataset ID.
-                },
-              },
-              "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-              "indexed": True or False, # If the value should be indexed.
-                  #
-                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-              "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-              "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                    # Object with schema name: Value
-                  ],
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-              "booleanValue": True or False, # A boolean value.
-              "blobKeyValue": "A String", # A blob key value.
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      },
-    ],
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "found": [ # Entities found.
-      { # The result of fetching an entity from the datastore.
-        "entity": { # An entity. # The resulting entity.
-          "properties": { # The entity's properties.
-            "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-              "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-              "doubleValue": 3.14, # A double value.
-              "integerValue": "A String", # An integer value.
-              "meaning": 42, # The meaning field is reserved and should not be used.
-              "dateTimeValue": "A String", # A timestamp value.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                    "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                    "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                  },
-                ],
-                "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                    #
-                    # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                  "namespace": "A String", # The namespace.
-                  "datasetId": "A String", # The dataset ID.
-                },
-              },
-              "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-              "indexed": True or False, # If the value should be indexed.
-                  #
-                  # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-              "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-              "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                { # A message that can hold any of the supported value types and associated metadata.
-                  "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                  "doubleValue": 3.14, # A double value.
-                  "integerValue": "A String", # An integer value.
-                  "meaning": 42, # The meaning field is reserved and should not be used.
-                  "dateTimeValue": "A String", # A timestamp value.
-                  "keyValue": { # A unique identifier for an entity. # A key value.
-                    "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                      { # A (kind, ID/name) pair used to construct a key path.
-                          #
-                          # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                        "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                        "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                        "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                      },
-                    ],
-                    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                        #
-                        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                      "namespace": "A String", # The namespace.
-                      "datasetId": "A String", # The dataset ID.
-                    },
-                  },
-                  "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                  "indexed": True or False, # If the value should be indexed.
-                      #
-                      # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                  "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                  "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                    # Object with schema name: Value
-                  ],
-                  "booleanValue": True or False, # A boolean value.
-                  "blobKeyValue": "A String", # A blob key value.
-                },
-              ],
-              "booleanValue": True or False, # A boolean value.
-              "blobKeyValue": "A String", # A blob key value.
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
-              #
-              # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-            "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-              },
-            ],
-            "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                #
-                # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-              "namespace": "A String", # The namespace.
-              "datasetId": "A String", # The dataset ID.
-            },
-          },
-        },
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="rollback">rollback(datasetId, body)</code>
-  <pre>Roll back a transaction.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "transaction": "A String", # The transaction identifier, returned by a call to beginTransaction.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="runQuery">runQuery(datasetId, body)</code>
-  <pre>Query for entities.
-
-Args:
-  datasetId: string, Identifies the dataset. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "query": { # A query. # The query to run. Either this field or field gql_query must be set, but not both.
-      "startCursor": "A String", # A starting point for the query results. Optional. Query cursors are returned in query result batches.
-      "kinds": [ # The kinds to query (if empty, returns entities from all kinds).
-        { # A representation of a kind.
-          "name": "A String", # The name of the kind.
-        },
-      ],
-      "projection": [ # The projection to return. If not set the entire entity is returned.
-        { # A representation of a property in a projection.
-          "aggregationFunction": "A String", # The aggregation function to apply to the property. Optional. Can only be used when grouping by at least one property. Must then be set on all properties in the projection that are not being grouped by. Aggregation functions: first selects the first result as determined by the query's order.
-          "property": { # A reference to a property relative to the kind expressions. # The property to project.
-            "name": "A String", # The name of the property.
-          },
-        },
-      ],
-      "order": [ # The order to apply to the query results (if empty, order is unspecified).
-        { # The desired order for a specific property.
-          "direction": "A String", # The direction to order by. One of ascending or descending. Optional, defaults to ascending.
-          "property": { # A reference to a property relative to the kind expressions. # The property to order by.
-            "name": "A String", # The name of the property.
-          },
-        },
-      ],
-      "filter": { # A holder for any type of filter. Exactly one field should be specified. # The filter to apply (optional).
-        "compositeFilter": { # A filter that merges the multiple other filters using the given operation. # A composite filter.
-          "operator": "A String", # The operator for combining multiple filters. Only "and" is currently supported.
-          "filters": [ # The list of filters to combine. Must contain at least one filter.
-            # Object with schema name: Filter
-          ],
-        },
-        "propertyFilter": { # A filter on a specific property. # A filter on a property.
-          "operator": "A String", # The operator to filter by. One of lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, equal, or hasAncestor.
-          "property": { # A reference to a property relative to the kind expressions. # The property to filter by.
-            "name": "A String", # The name of the property.
-          },
-          "value": { # A message that can hold any of the supported value types and associated metadata. # The value to compare the property to.
-            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-            "doubleValue": 3.14, # A double value.
-            "integerValue": "A String", # An integer value.
-            "meaning": 42, # The meaning field is reserved and should not be used.
-            "dateTimeValue": "A String", # A timestamp value.
-            "keyValue": { # A unique identifier for an entity. # A key value.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-            "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-            "indexed": True or False, # If the value should be indexed.
-                #
-                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-            "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-            "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-              # Object with schema name: Value
-            ],
-            "booleanValue": True or False, # A boolean value.
-            "blobKeyValue": "A String", # A blob key value.
-          },
-        },
-      },
-      "limit": 42, # The maximum number of results to return. Applies after all other constraints. Optional.
-      "offset": 42, # The number of results to skip. Applies before limit, but after all other constraints (optional, defaults to 0).
-      "endCursor": "A String", # An ending point for the query results. Optional. Query cursors are returned in query result batches.
-      "groupBy": [ # The properties to group by (if empty, no grouping is applied to the result set).
-        { # A reference to a property relative to the kind expressions.
-          "name": "A String", # The name of the property.
-        },
-      ],
-    },
-    "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID, but all other partition IDs in RunQueryRequest are normalized with this partition ID as the context partition ID.
-        #
-        # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-      "namespace": "A String", # The namespace.
-      "datasetId": "A String", # The dataset ID.
-    },
-    "gqlQuery": { # A GQL query. # The GQL query to run. Either this field or field query must be set, but not both.
-      "queryString": "A String", # The query string.
-      "nameArgs": [ # A named argument must set field GqlQueryArg.name. No two named arguments may have the same name. For each non-reserved named binding site in the query string, there must be a named argument with that name, but not necessarily the inverse.
-        { # A binding argument for a GQL query.
-          "cursor": "A String",
-          "name": "A String", # Must match regex "[A-Za-z_$][A-Za-z_$0-9]*". Must not match regex "__.*__". Must not be "".
-          "value": { # A message that can hold any of the supported value types and associated metadata.
-            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-            "doubleValue": 3.14, # A double value.
-            "integerValue": "A String", # An integer value.
-            "meaning": 42, # The meaning field is reserved and should not be used.
-            "dateTimeValue": "A String", # A timestamp value.
-            "keyValue": { # A unique identifier for an entity. # A key value.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-            "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-            "indexed": True or False, # If the value should be indexed.
-                #
-                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-            "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-            "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-              # Object with schema name: Value
-            ],
-            "booleanValue": True or False, # A boolean value.
-            "blobKeyValue": "A String", # A blob key value.
-          },
-        },
-      ],
-      "allowLiteral": True or False, # When false, the query string must not contain a literal.
-      "numberArgs": [ # Numbered binding site @1 references the first numbered argument, effectively using 1-based indexing, rather than the usual 0. A numbered argument must NOT set field GqlQueryArg.name. For each binding site numbered i in query_string, there must be an ith numbered argument. The inverse must also be true.
-        { # A binding argument for a GQL query.
-          "cursor": "A String",
-          "name": "A String", # Must match regex "[A-Za-z_$][A-Za-z_$0-9]*". Must not match regex "__.*__". Must not be "".
-          "value": { # A message that can hold any of the supported value types and associated metadata.
-            "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-            "doubleValue": 3.14, # A double value.
-            "integerValue": "A String", # An integer value.
-            "meaning": 42, # The meaning field is reserved and should not be used.
-            "dateTimeValue": "A String", # A timestamp value.
-            "keyValue": { # A unique identifier for an entity. # A key value.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-            "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-            "indexed": True or False, # If the value should be indexed.
-                #
-                # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-            "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-            "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-              # Object with schema name: Value
-            ],
-            "booleanValue": True or False, # A boolean value.
-            "blobKeyValue": "A String", # A blob key value.
-          },
-        },
-      ],
-    },
-    "readOptions": { # The options for this query.
-      "transaction": "A String", # The transaction to use. Optional.
-      "readConsistency": "A String", # The read consistency to use. One of default, strong, or eventual. Cannot be set when transaction is set. Lookup and ancestor queries default to strong, global queries default to eventual and cannot be set to strong. Optional. Default is default.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "header": {
-      "kind": "datastore#responseHeader", # Identifies what kind of resource this is. Value: the fixed string "datastore#responseHeader".
-    },
-    "batch": { # A batch of results produced by a query. # A batch of query results (always present).
-      "moreResults": "A String", # The state of the query after the current batch. One of notFinished, moreResultsAfterLimit, noMoreResults.
-      "entityResults": [ # The results for this batch.
-        { # The result of fetching an entity from the datastore.
-          "entity": { # An entity. # The resulting entity.
-            "properties": { # The entity's properties.
-              "a_key": { # An entity property. # The name of the property. A property name matching regex "__.*__" is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. Cannot be "".
-                "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                "doubleValue": 3.14, # A double value.
-                "integerValue": "A String", # An integer value.
-                "meaning": 42, # The meaning field is reserved and should not be used.
-                "dateTimeValue": "A String", # A timestamp value.
-                "keyValue": { # A unique identifier for an entity. # A key value.
-                  "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                    { # A (kind, ID/name) pair used to construct a key path.
-                        #
-                        # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                      "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                      "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                      "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                    },
-                  ],
-                  "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                      #
-                      # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                    "namespace": "A String", # The namespace.
-                    "datasetId": "A String", # The dataset ID.
-                  },
-                },
-                "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                "indexed": True or False, # If the value should be indexed.
-                    #
-                    # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                  { # A message that can hold any of the supported value types and associated metadata.
-                    "entityValue": # Object with schema name: Entity # An entity value. May have no key. May have a key with an incomplete key path. May have a reserved/read-only key.
-                    "doubleValue": 3.14, # A double value.
-                    "integerValue": "A String", # An integer value.
-                    "meaning": 42, # The meaning field is reserved and should not be used.
-                    "dateTimeValue": "A String", # A timestamp value.
-                    "keyValue": { # A unique identifier for an entity. # A key value.
-                      "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                        { # A (kind, ID/name) pair used to construct a key path.
-                            #
-                            # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                          "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                          "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                          "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                        },
-                      ],
-                      "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                          #
-                          # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                        "namespace": "A String", # The namespace.
-                        "datasetId": "A String", # The dataset ID.
-                      },
-                    },
-                    "stringValue": "A String", # A UTF-8 encoded string value. When indexed is true, may have at most 500 characters.
-                    "indexed": True or False, # If the value should be indexed.
-                        #
-                        # The indexed property may be set for a null value. When indexed is true, stringValue is limited to 500 characters and the blob value is limited to 500 bytes. Input values by default have indexed set to true; however, you can explicitly set indexed to true if you want. (An output value never has indexed explicitly set to true.) If a value is itself an entity, it cannot have indexed set to true.
-                    "blobValue": "A String", # A blob value. May be a maximum of 1,000,000 bytes. When indexed is true, may have at most 500 bytes.
-                    "listValue": [ # A list value. Cannot contain another list value. A Value instance that sets field list_value must not set field meaning or field indexed.
-                      # Object with schema name: Value
-                    ],
-                    "booleanValue": True or False, # A boolean value.
-                    "blobKeyValue": "A String", # A blob key value.
-                  },
-                ],
-                "booleanValue": True or False, # A boolean value.
-                "blobKeyValue": "A String", # A blob key value.
-              },
-            },
-            "key": { # A unique identifier for an entity. # The entity's key.
-                #
-                # An entity must have a key, unless otherwise documented (for example, an entity in Value.entityValue may have no key). An entity's kind is its key's path's last element's kind, or null if it has no key.
-              "path": [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a root entity, the second element identifies a child of the root entity, the third element a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element's ancestors. An entity path is always fully complete: ALL of the entity's ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. A path can never be empty. The path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path.
-                    #
-                    # At most one of name or ID may be set. If either is set, the element is complete. If neither is set, the element is incomplete.
-                  "kind": "A String", # The kind of the entity. A kind matching regex "__.*__" is reserved/read-only. A kind must not contain more than 500 characters. Cannot be "".
-                  "id": "A String", # The ID of the entity. Never equal to zero. Values less than zero are discouraged and will not be supported in the future.
-                  "name": "A String", # The name of the entity. A name matching regex "__.*__" is reserved/read-only. A name must not be more than 500 characters. Cannot be "".
-                },
-              ],
-              "partitionId": { # An identifier for a particular subset of entities. # Entities are partitioned into subsets, currently identified by a dataset (usually implicitly specified by the project) and namespace ID. Queries are scoped to a single partition.
-                  #
-                  # Entities are partitioned into various subsets, each used by different datasets and different namespaces within a dataset and so forth.
-                "namespace": "A String", # The namespace.
-                "datasetId": "A String", # The dataset ID.
-              },
-            },
-          },
-        },
-      ],
-      "skippedResults": 42, # The number of results skipped because of Query.offset.
-      "endCursor": "A String", # A cursor that points to the position after the last result in the batch. May be absent. TODO(arfuller): Once all plans produce cursors update documentation here.
-      "entityResultType": "A String", # The result type for every entity in entityResults. full for full entities, projection for entities with only projected properties, keyOnly for entities with only a key.
-    },
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/datastore_v1beta3.projects.html b/docs/dyn/datastore_v1beta3.projects.html
index 4099423..c70379e 100644
--- a/docs/dyn/datastore_v1beta3.projects.html
+++ b/docs/dyn/datastore_v1beta3.projects.html
@@ -287,7 +287,6 @@
     "transaction": "A String", # The identifier of the transaction associated with the commit. A
         # transaction identifier is returned by a call to
         # Datastore.BeginTransaction.
-    "mode": "A String", # The type of commit to perform. Defaults to `TRANSACTIONAL`.
     "mutations": [ # The mutations to perform.
         # 
         # When mode is `TRANSACTIONAL`, mutations affecting a single entity are
@@ -316,7 +315,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -325,6 +323,7 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
+              "nullValue": "A String", # A null value.
               "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                   # explicitly.
               "doubleValue": 3.14, # A double value.
@@ -391,14 +390,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -449,9 +448,6 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -525,71 +521,8 @@
             },
           },
         },
-        "delete": { # A unique identifier for an entity. # The key of the entity to delete. The entity may or may not already exist.
-            # Must have a complete key path and must not be reserved/read-only.
-            # If a key's partition ID or any of its path kinds or names are
-            # reserved/read-only, the key is reserved/read-only.
-            # A reserved/read-only key is forbidden in certain documented contexts.
-          "path": [ # The entity path.
-              # An entity path consists of one or more elements composed of a kind and a
-              # string or numerical identifier, which identify entities. The first
-              # element identifies a _root entity_, the second element identifies
-              # a _child_ of the root entity, the third element identifies a child of the
-              # second entity, and so forth. The entities identified by all prefixes of
-              # the path are called the element's _ancestors_.
-              #
-              # An entity path is always fully complete: *all* of the entity's ancestors
-              # are required to be in the path along with the entity identifier itself.
-              # The only exception is that in some documented cases, the identifier in the
-              # last path element (for the entity) itself may be omitted. For example,
-              # the last path element of the key of `Mutation.insert` may have no
-              # identifier.
-              #
-              # A path can never be empty, and a path can have at most 100 elements.
-            { # A (kind, ID/name) pair used to construct a key path.
-                #
-                # If either name or ID is set, the element is complete.
-                # If neither is set, the element is incomplete.
-              "kind": "A String", # The kind of the entity.
-                  # A kind matching regex `__.*__` is reserved/read-only.
-                  # A kind must not contain more than 1500 bytes when UTF-8 encoded.
-                  # Cannot be `""`.
-              "id": "A String", # The auto-allocated ID of the entity.
-                  # Never equal to zero. Values less than zero are discouraged and may not
-                  # be supported in the future.
-              "name": "A String", # The name of the entity.
-                  # A name matching regex `__.*__` is reserved/read-only.
-                  # A name must not be more than 1500 bytes when UTF-8 encoded.
-                  # Cannot be `""`.
-            },
-          ],
-          "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
-              # ID and namespace ID.
-              # Queries are scoped to a single partition.
-              # by project and namespace, however the namespace ID may be empty.
-              #
-              # A partition ID contains several dimensions:
-              # project ID and namespace ID.
-              #
-              # Partition dimensions:
-              #
-              # - May be `""`.
-              # - Must be valid UTF-8 bytes.
-              # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
-              # If the value of any dimension matches regex `__.*__`, the partition is
-              # reserved/read-only.
-              # A reserved/read-only partition ID is forbidden in certain documented
-              # contexts.
-              #
-              # Foreign partition IDs (in which the project ID does
-              # not match the context project ID ) are discouraged.
-              # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
-            "projectId": "A String", # The ID of the project to which the entities belong.
-            "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
-          },
-        },
-        "update": { # A Datastore data object. # The entity to update. The entity must already exist.
-            # Must have a complete key path.
+        "upsert": { # A Datastore data object. # The entity to upsert. The entity may or may not already exist.
+            # The entity key's final path element may be incomplete.
             #
             # An entity is limited to 1 megabyte when stored. That _roughly_
             # corresponds to a limit of 1 megabyte for the serialized form of this
@@ -602,7 +535,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -611,6 +543,7 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
+              "nullValue": "A String", # A null value.
               "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                   # explicitly.
               "doubleValue": 3.14, # A double value.
@@ -677,14 +610,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -735,9 +668,226 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
+            },
+          },
+          "key": { # A unique identifier for an entity. # The entity's key.
+              #
+              # An entity must have a key, unless otherwise documented (for example,
+              # an entity in `Value.entity_value` may have no key).
+              # An entity's kind is its key path's last element's kind,
+              # or null if it has no key.
+              # If a key's partition ID or any of its path kinds or names are
+              # reserved/read-only, the key is reserved/read-only.
+              # A reserved/read-only key is forbidden in certain documented contexts.
+            "path": [ # The entity path.
+                # An entity path consists of one or more elements composed of a kind and a
+                # string or numerical identifier, which identify entities. The first
+                # element identifies a _root entity_, the second element identifies
+                # a _child_ of the root entity, the third element identifies a child of the
+                # second entity, and so forth. The entities identified by all prefixes of
+                # the path are called the element's _ancestors_.
+                #
+                # An entity path is always fully complete: *all* of the entity's ancestors
+                # are required to be in the path along with the entity identifier itself.
+                # The only exception is that in some documented cases, the identifier in the
+                # last path element (for the entity) itself may be omitted. For example,
+                # the last path element of the key of `Mutation.insert` may have no
+                # identifier.
+                #
+                # A path can never be empty, and a path can have at most 100 elements.
+              { # A (kind, ID/name) pair used to construct a key path.
                   #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
+                  # If either name or ID is set, the element is complete.
+                  # If neither is set, the element is incomplete.
+                "kind": "A String", # The kind of the entity.
+                    # A kind matching regex `__.*__` is reserved/read-only.
+                    # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+                    # Cannot be `""`.
+                "id": "A String", # The auto-allocated ID of the entity.
+                    # Never equal to zero. Values less than zero are discouraged and may not
+                    # be supported in the future.
+                "name": "A String", # The name of the entity.
+                    # A name matching regex `__.*__` is reserved/read-only.
+                    # A name must not be more than 1500 bytes when UTF-8 encoded.
+                    # Cannot be `""`.
+              },
+            ],
+            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
+                # ID and namespace ID.
+                # Queries are scoped to a single partition.
+                # by project and namespace, however the namespace ID may be empty.
+                #
+                # A partition ID contains several dimensions:
+                # project ID and namespace ID.
+                #
+                # Partition dimensions:
+                #
+                # - May be `""`.
+                # - Must be valid UTF-8 bytes.
+                # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
+                # If the value of any dimension matches regex `__.*__`, the partition is
+                # reserved/read-only.
+                # A reserved/read-only partition ID is forbidden in certain documented
+                # contexts.
+                #
+                # Foreign partition IDs (in which the project ID does
+                # not match the context project ID ) are discouraged.
+                # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
+              "projectId": "A String", # The ID of the project to which the entities belong.
+              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
+            },
+          },
+        },
+        "update": { # A Datastore data object. # The entity to update. The entity must already exist.
+            # Must have a complete key path.
+            #
+            # An entity is limited to 1 megabyte when stored. That _roughly_
+            # corresponds to a limit of 1 megabyte for the serialized form of this
+            # message.
+          "properties": { # The entity's properties.
+              # The map's keys are property names.
+              # A property name matching regex `__.*__` is reserved.
+              # A reserved property name is forbidden in certain documented contexts.
+              # The name must not contain more than 500 characters.
+              # The name cannot be `""`.
+            "a_key": { # A message that can hold any of the supported value types and associated
+                # metadata.
+              "entityValue": # Object with schema name: Entity # An entity value.
+                  #
+                  # - May have no key.
+                  # - May have a key with an incomplete key path.
+                  # - May have a reserved/read-only key.
+              "timestampValue": "A String", # A timestamp value.
+                  # When stored in the Datastore, precise only to microseconds;
+                  # any additional precision is rounded down.
+              "nullValue": "A String", # A null value.
+              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
+                  # explicitly.
+              "doubleValue": 3.14, # A double value.
+              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
+              "keyValue": { # A unique identifier for an entity. # A key value.
+                  # If a key's partition ID or any of its path kinds or names are
+                  # reserved/read-only, the key is reserved/read-only.
+                  # A reserved/read-only key is forbidden in certain documented contexts.
+                "path": [ # The entity path.
+                    # An entity path consists of one or more elements composed of a kind and a
+                    # string or numerical identifier, which identify entities. The first
+                    # element identifies a _root entity_, the second element identifies
+                    # a _child_ of the root entity, the third element identifies a child of the
+                    # second entity, and so forth. The entities identified by all prefixes of
+                    # the path are called the element's _ancestors_.
+                    #
+                    # An entity path is always fully complete: *all* of the entity's ancestors
+                    # are required to be in the path along with the entity identifier itself.
+                    # The only exception is that in some documented cases, the identifier in the
+                    # last path element (for the entity) itself may be omitted. For example,
+                    # the last path element of the key of `Mutation.insert` may have no
+                    # identifier.
+                    #
+                    # A path can never be empty, and a path can have at most 100 elements.
+                  { # A (kind, ID/name) pair used to construct a key path.
+                      #
+                      # If either name or ID is set, the element is complete.
+                      # If neither is set, the element is incomplete.
+                    "kind": "A String", # The kind of the entity.
+                        # A kind matching regex `__.*__` is reserved/read-only.
+                        # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+                        # Cannot be `""`.
+                    "id": "A String", # The auto-allocated ID of the entity.
+                        # Never equal to zero. Values less than zero are discouraged and may not
+                        # be supported in the future.
+                    "name": "A String", # The name of the entity.
+                        # A name matching regex `__.*__` is reserved/read-only.
+                        # A name must not be more than 1500 bytes when UTF-8 encoded.
+                        # Cannot be `""`.
+                  },
+                ],
+                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
+                    # ID and namespace ID.
+                    # Queries are scoped to a single partition.
+                    # by project and namespace, however the namespace ID may be empty.
+                    #
+                    # A partition ID contains several dimensions:
+                    # project ID and namespace ID.
+                    #
+                    # Partition dimensions:
+                    #
+                    # - May be `""`.
+                    # - Must be valid UTF-8 bytes.
+                    # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
+                    # If the value of any dimension matches regex `__.*__`, the partition is
+                    # reserved/read-only.
+                    # A reserved/read-only partition ID is forbidden in certain documented
+                    # contexts.
+                    #
+                    # Foreign partition IDs (in which the project ID does
+                    # not match the context project ID ) are discouraged.
+                    # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
+                  "projectId": "A String", # The ID of the project to which the entities belong.
+                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
+                },
+              },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
+              "blobValue": "A String", # A blob value.
+                  # May have at most 1,000,000 bytes.
+                  # When `exclude_from_indexes` is false, may have at most 1500 bytes.
+                  # In JSON requests, must be base64-encoded.
+              "booleanValue": True or False, # A boolean value.
+              "arrayValue": { # An array value. # An array value.
+                  # Cannot contain another array value.
+                  # A `Value` instance that sets field `array_value` must not set fields
+                  # `meaning` or `exclude_from_indexes`.
+                "values": [ # Values in the array.
+                    # The order of this array may not be preserved if it contains a mix of
+                    # indexed and unindexed values.
+                  # Object with schema name: Value
+                ],
+              },
+              "integerValue": "A String", # An integer value.
+              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
+                  # of doubles representing degrees latitude and degrees longitude. Unless
+                  # specified otherwise, this must conform to the
+                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+                  # standard</a>. Values must be within normalized ranges.
+                  #
+                  # Example of normalization code in Python:
+                  #
+                  #     def NormalizeLongitude(longitude):
+                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+                  #       q, r = divmod(longitude, 360.0)
+                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+                  #         return r - 360.0
+                  #       return r
+                  #
+                  #     def NormalizeLatLng(latitude, longitude):
+                  #       """Wraps decimal degrees latitude and longitude to
+                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+                  #       r = latitude % 360.0
+                  #       if r <= 90.0:
+                  #         return r, NormalizeLongitude(longitude)
+                  #       elif r >= 270.0:
+                  #         return r - 360, NormalizeLongitude(longitude)
+                  #       else:
+                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+                  #
+                  #     assert 180.0 == NormalizeLongitude(180.0)
+                  #     assert -180.0 == NormalizeLongitude(-180.0)
+                  #     assert -179.0 == NormalizeLongitude(181.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -813,231 +963,72 @@
         },
         "baseVersion": "A String", # The version of the entity that this mutation is being applied to. If this
             # does not match the current version on the server, the mutation conflicts.
-        "upsert": { # A Datastore data object. # The entity to upsert. The entity may or may not already exist.
-            # The entity key's final path element may be incomplete.
-            #
-            # An entity is limited to 1 megabyte when stored. That _roughly_
-            # corresponds to a limit of 1 megabyte for the serialized form of this
-            # message.
-          "properties": { # The entity's properties.
-              # The map's keys are property names.
-              # A property name matching regex `__.*__` is reserved.
-              # A reserved property name is forbidden in certain documented contexts.
-              # The name must not contain more than 500 characters.
-              # The name cannot be `""`.
-            "a_key": { # A message that can hold any of the supported value types and associated
-                # metadata.
-              "booleanValue": True or False, # A boolean value.
-              "entityValue": # Object with schema name: Entity # An entity value.
-                  #
-                  # - May have no key.
-                  # - May have a key with an incomplete key path.
-                  # - May have a reserved/read-only key.
-              "timestampValue": "A String", # A timestamp value.
-                  # When stored in the Datastore, precise only to microseconds;
-                  # any additional precision is rounded down.
-              "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
-                  # explicitly.
-              "doubleValue": 3.14, # A double value.
-              "meaning": 42, # The `meaning` field should only be populated for backwards compatibility.
-              "keyValue": { # A unique identifier for an entity. # A key value.
-                  # If a key's partition ID or any of its path kinds or names are
-                  # reserved/read-only, the key is reserved/read-only.
-                  # A reserved/read-only key is forbidden in certain documented contexts.
-                "path": [ # The entity path.
-                    # An entity path consists of one or more elements composed of a kind and a
-                    # string or numerical identifier, which identify entities. The first
-                    # element identifies a _root entity_, the second element identifies
-                    # a _child_ of the root entity, the third element identifies a child of the
-                    # second entity, and so forth. The entities identified by all prefixes of
-                    # the path are called the element's _ancestors_.
-                    #
-                    # An entity path is always fully complete: *all* of the entity's ancestors
-                    # are required to be in the path along with the entity identifier itself.
-                    # The only exception is that in some documented cases, the identifier in the
-                    # last path element (for the entity) itself may be omitted. For example,
-                    # the last path element of the key of `Mutation.insert` may have no
-                    # identifier.
-                    #
-                    # A path can never be empty, and a path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path.
-                      #
-                      # If either name or ID is set, the element is complete.
-                      # If neither is set, the element is incomplete.
-                    "kind": "A String", # The kind of the entity.
-                        # A kind matching regex `__.*__` is reserved/read-only.
-                        # A kind must not contain more than 1500 bytes when UTF-8 encoded.
-                        # Cannot be `""`.
-                    "id": "A String", # The auto-allocated ID of the entity.
-                        # Never equal to zero. Values less than zero are discouraged and may not
-                        # be supported in the future.
-                    "name": "A String", # The name of the entity.
-                        # A name matching regex `__.*__` is reserved/read-only.
-                        # A name must not be more than 1500 bytes when UTF-8 encoded.
-                        # Cannot be `""`.
-                  },
-                ],
-                "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
-                    # ID and namespace ID.
-                    # Queries are scoped to a single partition.
-                    # by project and namespace, however the namespace ID may be empty.
-                    #
-                    # A partition ID contains several dimensions:
-                    # project ID and namespace ID.
-                    #
-                    # Partition dimensions:
-                    #
-                    # - May be `""`.
-                    # - Must be valid UTF-8 bytes.
-                    # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
-                    # If the value of any dimension matches regex `__.*__`, the partition is
-                    # reserved/read-only.
-                    # A reserved/read-only partition ID is forbidden in certain documented
-                    # contexts.
-                    #
-                    # Foreign partition IDs (in which the project ID does
-                    # not match the context project ID ) are discouraged.
-                    # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
-                  "projectId": "A String", # The ID of the project to which the entities belong.
-                  "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
-                },
-              },
-              "blobValue": "A String", # A blob value.
-                  # May have at most 1,000,000 bytes.
-                  # When `exclude_from_indexes` is false, may have at most 1500 bytes.
-                  # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
-              "arrayValue": { # An array value. # An array value.
-                  # Cannot contain another array value.
-                  # A `Value` instance that sets field `array_value` must not set fields
-                  # `meaning` or `exclude_from_indexes`.
-                "values": [ # Values in the array.
-                    # The order of this array may not be preserved if it contains a mix of
-                    # indexed and unindexed values.
-                  # Object with schema name: Value
-                ],
-              },
-              "integerValue": "A String", # An integer value.
-              "geoPointValue": { # An object representing a latitude/longitude pair. This is expressed as a pair # A geo point value representing a point on the surface of Earth.
-                  # of doubles representing degrees latitude and degrees longitude. Unless
-                  # specified otherwise, this must conform to the
-                  # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
-                  # standard</a>. Values must be within normalized ranges.
-                  #
-                  # Example of normalization code in Python:
-                  #
-                  #     def NormalizeLongitude(longitude):
-                  #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
-                  #       q, r = divmod(longitude, 360.0)
-                  #       if r > 180.0 or (r == 180.0 and q <= -1.0):
-                  #         return r - 360.0
-                  #       return r
-                  #
-                  #     def NormalizeLatLng(latitude, longitude):
-                  #       """Wraps decimal degrees latitude and longitude to
-                  #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
-                  #       r = latitude % 360.0
-                  #       if r <= 90.0:
-                  #         return r, NormalizeLongitude(longitude)
-                  #       elif r >= 270.0:
-                  #         return r - 360, NormalizeLongitude(longitude)
-                  #       else:
-                  #         return 180 - r, NormalizeLongitude(longitude + 180.0)
-                  #
-                  #     assert 180.0 == NormalizeLongitude(180.0)
-                  #     assert -180.0 == NormalizeLongitude(-180.0)
-                  #     assert -179.0 == NormalizeLongitude(181.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
-                  #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
-                  #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
-                  #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
-                  #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
-                  #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
-                  #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
-                  #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
-                "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-              },
-            },
-          },
-          "key": { # A unique identifier for an entity. # The entity's key.
+        "delete": { # A unique identifier for an entity. # The key of the entity to delete. The entity may or may not already exist.
+            # Must have a complete key path and must not be reserved/read-only.
+            # If a key's partition ID or any of its path kinds or names are
+            # reserved/read-only, the key is reserved/read-only.
+            # A reserved/read-only key is forbidden in certain documented contexts.
+          "path": [ # The entity path.
+              # An entity path consists of one or more elements composed of a kind and a
+              # string or numerical identifier, which identify entities. The first
+              # element identifies a _root entity_, the second element identifies
+              # a _child_ of the root entity, the third element identifies a child of the
+              # second entity, and so forth. The entities identified by all prefixes of
+              # the path are called the element's _ancestors_.
               #
-              # An entity must have a key, unless otherwise documented (for example,
-              # an entity in `Value.entity_value` may have no key).
-              # An entity's kind is its key path's last element's kind,
-              # or null if it has no key.
-              # If a key's partition ID or any of its path kinds or names are
-              # reserved/read-only, the key is reserved/read-only.
-              # A reserved/read-only key is forbidden in certain documented contexts.
-            "path": [ # The entity path.
-                # An entity path consists of one or more elements composed of a kind and a
-                # string or numerical identifier, which identify entities. The first
-                # element identifies a _root entity_, the second element identifies
-                # a _child_ of the root entity, the third element identifies a child of the
-                # second entity, and so forth. The entities identified by all prefixes of
-                # the path are called the element's _ancestors_.
+              # An entity path is always fully complete: *all* of the entity's ancestors
+              # are required to be in the path along with the entity identifier itself.
+              # The only exception is that in some documented cases, the identifier in the
+              # last path element (for the entity) itself may be omitted. For example,
+              # the last path element of the key of `Mutation.insert` may have no
+              # identifier.
+              #
+              # A path can never be empty, and a path can have at most 100 elements.
+            { # A (kind, ID/name) pair used to construct a key path.
                 #
-                # An entity path is always fully complete: *all* of the entity's ancestors
-                # are required to be in the path along with the entity identifier itself.
-                # The only exception is that in some documented cases, the identifier in the
-                # last path element (for the entity) itself may be omitted. For example,
-                # the last path element of the key of `Mutation.insert` may have no
-                # identifier.
-                #
-                # A path can never be empty, and a path can have at most 100 elements.
-              { # A (kind, ID/name) pair used to construct a key path.
-                  #
-                  # If either name or ID is set, the element is complete.
-                  # If neither is set, the element is incomplete.
-                "kind": "A String", # The kind of the entity.
-                    # A kind matching regex `__.*__` is reserved/read-only.
-                    # A kind must not contain more than 1500 bytes when UTF-8 encoded.
-                    # Cannot be `""`.
-                "id": "A String", # The auto-allocated ID of the entity.
-                    # Never equal to zero. Values less than zero are discouraged and may not
-                    # be supported in the future.
-                "name": "A String", # The name of the entity.
-                    # A name matching regex `__.*__` is reserved/read-only.
-                    # A name must not be more than 1500 bytes when UTF-8 encoded.
-                    # Cannot be `""`.
-              },
-            ],
-            "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
-                # ID and namespace ID.
-                # Queries are scoped to a single partition.
-                # by project and namespace, however the namespace ID may be empty.
-                #
-                # A partition ID contains several dimensions:
-                # project ID and namespace ID.
-                #
-                # Partition dimensions:
-                #
-                # - May be `""`.
-                # - Must be valid UTF-8 bytes.
-                # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
-                # If the value of any dimension matches regex `__.*__`, the partition is
-                # reserved/read-only.
-                # A reserved/read-only partition ID is forbidden in certain documented
-                # contexts.
-                #
-                # Foreign partition IDs (in which the project ID does
-                # not match the context project ID ) are discouraged.
-                # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
-              "projectId": "A String", # The ID of the project to which the entities belong.
-              "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
+                # If either name or ID is set, the element is complete.
+                # If neither is set, the element is incomplete.
+              "kind": "A String", # The kind of the entity.
+                  # A kind matching regex `__.*__` is reserved/read-only.
+                  # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+                  # Cannot be `""`.
+              "id": "A String", # The auto-allocated ID of the entity.
+                  # Never equal to zero. Values less than zero are discouraged and may not
+                  # be supported in the future.
+              "name": "A String", # The name of the entity.
+                  # A name matching regex `__.*__` is reserved/read-only.
+                  # A name must not be more than 1500 bytes when UTF-8 encoded.
+                  # Cannot be `""`.
             },
+          ],
+          "partitionId": { # A partition ID identifies a grouping of entities. The grouping is always # Entities are partitioned into subsets, currently identified by a project
+              # ID and namespace ID.
+              # Queries are scoped to a single partition.
+              # by project and namespace, however the namespace ID may be empty.
+              #
+              # A partition ID contains several dimensions:
+              # project ID and namespace ID.
+              #
+              # Partition dimensions:
+              #
+              # - May be `""`.
+              # - Must be valid UTF-8 bytes.
+              # - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}`
+              # If the value of any dimension matches regex `__.*__`, the partition is
+              # reserved/read-only.
+              # A reserved/read-only partition ID is forbidden in certain documented
+              # contexts.
+              #
+              # Foreign partition IDs (in which the project ID does
+              # not match the context project ID ) are discouraged.
+              # Reads and writes of foreign partition IDs may fail if the project is not in an active state.
+            "projectId": "A String", # The ID of the project to which the entities belong.
+            "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
           },
         },
       },
     ],
+    "mode": "A String", # The type of commit to perform. Defaults to `TRANSACTIONAL`.
   }
 
   x__xgafv: string, V1 error format.
@@ -1049,6 +1040,8 @@
   An object of the form:
 
     { # The response for Datastore.Commit.
+    "indexUpdates": 42, # The number of index entries updated during the commit, or zero if none were
+        # updated.
     "mutationResults": [ # The result of performing the mutations.
         # The i-th mutation result corresponds to the i-th mutation in the request.
       { # The result of applying a mutation.
@@ -1124,8 +1117,6 @@
         },
       },
     ],
-    "indexUpdates": 42, # The number of index entries updated during the commit, or zero if none were
-        # updated.
   }</pre>
 </div>
 
@@ -1249,7 +1240,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -1258,6 +1248,7 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
+              "nullValue": "A String", # A null value.
               "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                   # explicitly.
               "doubleValue": 3.14, # A double value.
@@ -1324,14 +1315,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -1382,9 +1373,6 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1554,7 +1542,6 @@
               # The name cannot be `""`.
             "a_key": { # A message that can hold any of the supported value types and associated
                 # metadata.
-              "booleanValue": True or False, # A boolean value.
               "entityValue": # Object with schema name: Entity # An entity value.
                   #
                   # - May have no key.
@@ -1563,6 +1550,7 @@
               "timestampValue": "A String", # A timestamp value.
                   # When stored in the Datastore, precise only to microseconds;
                   # any additional precision is rounded down.
+              "nullValue": "A String", # A null value.
               "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                   # explicitly.
               "doubleValue": 3.14, # A double value.
@@ -1629,14 +1617,14 @@
                   "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                 },
               },
+              "stringValue": "A String", # A UTF-8 encoded string value.
+                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                  # Otherwise, may be set to at least 1,000,000 bytes.
               "blobValue": "A String", # A blob value.
                   # May have at most 1,000,000 bytes.
                   # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                   # In JSON requests, must be base64-encoded.
-              "stringValue": "A String", # A UTF-8 encoded string value.
-                  # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                  # Otherwise, may be set to at least 1,000,000 bytes.
-              "nullValue": "A String", # A null value.
+              "booleanValue": True or False, # A boolean value.
               "arrayValue": { # An array value. # An array value.
                   # Cannot contain another array value.
                   # A `Value` instance that sets field `array_value` must not set fields
@@ -1687,9 +1675,6 @@
                   #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                   #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                   #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                  #
-                  # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                  # as if it were annotated as ST_LOCATION.
                 "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                 "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
               },
@@ -1846,7 +1831,6 @@
           },
           "value": { # A message that can hold any of the supported value types and associated # The value to compare the property to.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -1855,6 +1839,7 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
+            "nullValue": "A String", # A null value.
             "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                 # explicitly.
             "doubleValue": 3.14, # A double value.
@@ -1921,14 +1906,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -1979,9 +1964,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2044,7 +2026,6 @@
               # result batches.
           "value": { # A message that can hold any of the supported value types and associated # A value parameter.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -2053,6 +2034,7 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
+            "nullValue": "A String", # A null value.
             "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                 # explicitly.
             "doubleValue": 3.14, # A double value.
@@ -2119,14 +2101,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -2177,9 +2159,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2196,7 +2175,6 @@
               # result batches.
           "value": { # A message that can hold any of the supported value types and associated # A value parameter.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -2205,6 +2183,7 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
+            "nullValue": "A String", # A null value.
             "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                 # explicitly.
             "doubleValue": 3.14, # A double value.
@@ -2271,14 +2250,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -2329,9 +2308,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2404,7 +2380,6 @@
           },
           "value": { # A message that can hold any of the supported value types and associated # The value to compare the property to.
               # metadata.
-            "booleanValue": True or False, # A boolean value.
             "entityValue": # Object with schema name: Entity # An entity value.
                 #
                 # - May have no key.
@@ -2413,6 +2388,7 @@
             "timestampValue": "A String", # A timestamp value.
                 # When stored in the Datastore, precise only to microseconds;
                 # any additional precision is rounded down.
+            "nullValue": "A String", # A null value.
             "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                 # explicitly.
             "doubleValue": 3.14, # A double value.
@@ -2479,14 +2455,14 @@
                 "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
               },
             },
+            "stringValue": "A String", # A UTF-8 encoded string value.
+                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                # Otherwise, may be set to at least 1,000,000 bytes.
             "blobValue": "A String", # A blob value.
                 # May have at most 1,000,000 bytes.
                 # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                 # In JSON requests, must be base64-encoded.
-            "stringValue": "A String", # A UTF-8 encoded string value.
-                # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                # Otherwise, may be set to at least 1,000,000 bytes.
-            "nullValue": "A String", # A null value.
+            "booleanValue": True or False, # A boolean value.
             "arrayValue": { # An array value. # An array value.
                 # Cannot contain another array value.
                 # A `Value` instance that sets field `array_value` must not set fields
@@ -2537,9 +2513,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -2604,7 +2577,6 @@
                 # The name cannot be `""`.
               "a_key": { # A message that can hold any of the supported value types and associated
                   # metadata.
-                "booleanValue": True or False, # A boolean value.
                 "entityValue": # Object with schema name: Entity # An entity value.
                     #
                     # - May have no key.
@@ -2613,6 +2585,7 @@
                 "timestampValue": "A String", # A timestamp value.
                     # When stored in the Datastore, precise only to microseconds;
                     # any additional precision is rounded down.
+                "nullValue": "A String", # A null value.
                 "excludeFromIndexes": True or False, # If the value should be excluded from all indexes including those defined
                     # explicitly.
                 "doubleValue": 3.14, # A double value.
@@ -2679,14 +2652,14 @@
                     "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                   },
                 },
+                "stringValue": "A String", # A UTF-8 encoded string value.
+                    # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
+                    # Otherwise, may be set to at least 1,000,000 bytes.
                 "blobValue": "A String", # A blob value.
                     # May have at most 1,000,000 bytes.
                     # When `exclude_from_indexes` is false, may have at most 1500 bytes.
                     # In JSON requests, must be base64-encoded.
-                "stringValue": "A String", # A UTF-8 encoded string value.
-                    # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes.
-                    # Otherwise, may be set to at least 1,000,000 bytes.
-                "nullValue": "A String", # A null value.
+                "booleanValue": True or False, # A boolean value.
                 "arrayValue": { # An array value. # An array value.
                     # Cannot contain another array value.
                     # A `Value` instance that sets field `array_value` must not set fields
@@ -2737,9 +2710,6 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                    #
-                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
diff --git a/docs/dyn/deploymentmanager_alpha.deployments.html b/docs/dyn/deploymentmanager_alpha.deployments.html
index dd0e8a1..78779c5 100644
--- a/docs/dyn/deploymentmanager_alpha.deployments.html
+++ b/docs/dyn/deploymentmanager_alpha.deployments.html
@@ -359,9 +359,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -896,9 +902,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -997,9 +1009,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
diff --git a/docs/dyn/deploymentmanager_v2.deployments.html b/docs/dyn/deploymentmanager_v2.deployments.html
index d21514a..aa253ab 100644
--- a/docs/dyn/deploymentmanager_v2.deployments.html
+++ b/docs/dyn/deploymentmanager_v2.deployments.html
@@ -359,9 +359,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -896,9 +902,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -997,9 +1009,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
diff --git a/docs/dyn/deploymentmanager_v2beta.deployments.html b/docs/dyn/deploymentmanager_v2beta.deployments.html
index c189f59..47b971c 100644
--- a/docs/dyn/deploymentmanager_v2beta.deployments.html
+++ b/docs/dyn/deploymentmanager_v2beta.deployments.html
@@ -359,9 +359,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
@@ -896,9 +902,15 @@
     # 
     # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
   "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
         #
-        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+        # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+        #
+        # Example Policy with multiple AuditConfigs:
+        #
+        # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+        #
+        # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
       "exemptedMembers": [
         "A String",
       ],
@@ -997,9 +1009,15 @@
       #
       # For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
-      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConifg must have one or more AuditLogConfigs.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.
           #
-          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice@googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
+          # If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          # { "audit_configs": [ { "service": "allServices" "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:foo@gmail.com" ] }, { "log_type": "DATA_WRITE", }, { "log_type": "ADMIN_READ", } ] }, { "service": "fooservice.googleapis.com" "audit_log_configs": [ { "log_type": "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:bar@gmail.com" ] } ] } ] }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts foo@gmail.com from DATA_READ logging, and bar@gmail.com from DATA_WRITE logging.
         "exemptedMembers": [
           "A String",
         ],
diff --git a/docs/dyn/dfareporting_v2_4.accountActiveAdSummaries.html b/docs/dyn/dfareporting_v2_4.accountActiveAdSummaries.html
deleted file mode 100644
index e8082d2..0000000
--- a/docs/dyn/dfareporting_v2_4.accountActiveAdSummaries.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.accountActiveAdSummaries.html">accountActiveAdSummaries</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, summaryAccountId)</a></code></p>
-<p class="firstline">Gets the account's active ad summary by account ID.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, summaryAccountId)</code>
-  <pre>Gets the account's active ad summary by account ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  summaryAccountId: string, Account ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Gets a summary of active ads in an account.
-    "availableAds": "A String", # Ads that can be activated for the account.
-    "kind": "dfareporting#accountActiveAdSummary", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountActiveAdSummary".
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for the account.
-    "activeAds": "A String", # Ads that have been activated for the account
-    "accountId": "A String", # ID of the account.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.accountPermissionGroups.html b/docs/dyn/dfareporting_v2_4.accountPermissionGroups.html
deleted file mode 100644
index 30df83e..0000000
--- a/docs/dyn/dfareporting_v2_4.accountPermissionGroups.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.accountPermissionGroups.html">accountPermissionGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account permission group by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves the list of account permission groups.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account permission group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account permission group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
-    "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
-    "id": "A String", # ID of this account permission group.
-    "name": "A String", # Name of this account permission group.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves the list of account permission groups.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Account Permission Group List Response
-    "kind": "dfareporting#accountPermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroupsListResponse".
-    "accountPermissionGroups": [ # Account permission group collection.
-      { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
-        "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
-        "id": "A String", # ID of this account permission group.
-        "name": "A String", # Name of this account permission group.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.accountPermissions.html b/docs/dyn/dfareporting_v2_4.accountPermissions.html
deleted file mode 100644
index 12d0064..0000000
--- a/docs/dyn/dfareporting_v2_4.accountPermissions.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.accountPermissions.html">accountPermissions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account permission by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves the list of account permissions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account permission by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account permission ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
-    "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
-    "name": "A String", # Name of this account permission.
-    "level": "A String", # Administrative level required to enable this account permission.
-    "permissionGroupId": "A String", # Permission group of this account permission.
-    "accountProfiles": [ # Account profiles associated with this account permission.
-        #
-        # Possible values are:
-        # - "ACCOUNT_PROFILE_BASIC"
-        # - "ACCOUNT_PROFILE_STANDARD"
-      "A String",
-    ],
-    "id": "A String", # ID of this account permission.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves the list of account permissions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Account Permission List Response
-    "accountPermissions": [ # Account permission collection.
-      { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
-        "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
-        "name": "A String", # Name of this account permission.
-        "level": "A String", # Administrative level required to enable this account permission.
-        "permissionGroupId": "A String", # Permission group of this account permission.
-        "accountProfiles": [ # Account profiles associated with this account permission.
-            #
-            # Possible values are:
-            # - "ACCOUNT_PROFILE_BASIC"
-            # - "ACCOUNT_PROFILE_STANDARD"
-          "A String",
-        ],
-        "id": "A String", # ID of this account permission.
-      },
-    ],
-    "kind": "dfareporting#accountPermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.accountUserProfiles.html b/docs/dyn/dfareporting_v2_4.accountUserProfiles.html
deleted file mode 100644
index 2a32cdb..0000000
--- a/docs/dyn/dfareporting_v2_4.accountUserProfiles.html
+++ /dev/null
@@ -1,677 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.accountUserProfiles.html">accountUserProfiles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account user profile by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new account user profile.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</a></code></p>
-<p class="firstline">Retrieves a list of account user profiles, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing account user profile. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing account user profile.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account user profile by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User profile ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new account user profile.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</code>
-  <pre>Retrieves a list of account user profiles, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "user profile*2015" will return objects with names like "user profile June 2015", "user profile April 2015", or simply "user profile 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "user profile" will match objects with name "my user profile", "user profile 2015", or simply "user profile".
-  subaccountId: string, Select only user profiles with the specified subaccount ID.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only user profiles with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  userRoleId: string, Select only user profiles with the specified user role ID.
-  active: boolean, Select only active user profiles.
-
-Returns:
-  An object of the form:
-
-    { # Account User Profile List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "accountUserProfiles": [ # Account user profile collection.
-      { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-          "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-          "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-          "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-          "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "locale": "A String", # Locale of the user profile. This is a required field.
-              # Acceptable values are:
-              # - "cs" (Czech)
-              # - "de" (German)
-              # - "en" (English)
-              # - "en-GB" (English United Kingdom)
-              # - "es" (Spanish)
-              # - "fr" (French)
-              # - "it" (Italian)
-              # - "ja" (Japanese)
-              # - "ko" (Korean)
-              # - "pl" (Polish)
-              # - "pt-BR" (Portuguese Brazil)
-              # - "ru" (Russian)
-              # - "sv" (Swedish)
-              # - "tr" (Turkish)
-              # - "zh-CN" (Chinese Simplified)
-              # - "zh-TW" (Chinese Traditional)
-          "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "comments": "A String", # Comments for this user profile.
-          "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-          "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-          "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-          "traffickerType": "A String", # Trafficker type of this user profile.
-          "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-          "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-          "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#accountUserProfilesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfilesListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing account user profile. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing account user profile.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.accounts.html b/docs/dyn/dfareporting_v2_4.accounts.html
deleted file mode 100644
index 793355a..0000000
--- a/docs/dyn/dfareporting_v2_4.accounts.html
+++ /dev/null
@@ -1,856 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.accounts.html">accounts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</a></code></p>
-<p class="firstline">Retrieves the list of accounts, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing account. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing account.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</code>
-  <pre>Retrieves the list of accounts, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "account*2015" will return objects with names like "account June 2015", "account April 2015", or simply "account 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "account" will match objects with name "my account", "account 2015", or simply "account".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only accounts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  active: boolean, Select only active accounts. Don't set this field to select both active and non-active accounts.
-
-Returns:
-  An object of the form:
-
-    { # Account List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountsListResponse".
-    "accounts": [ # Account collection.
-      { # Contains properties of a DCM account.
-          "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-          "countryId": "A String", # ID of the country associated with this account.
-          "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-            "A String",
-          ],
-          "description": "A String", # Description of this account.
-          "maximumImageSize": "A String", # Maximum image size allowed for this account.
-          "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-              # Acceptable values are:
-              # - "1" for USD
-              # - "2" for GBP
-              # - "3" for ESP
-              # - "4" for SEK
-              # - "5" for CAD
-              # - "6" for JPY
-              # - "7" for DEM
-              # - "8" for AUD
-              # - "9" for FRF
-              # - "10" for ITL
-              # - "11" for DKK
-              # - "12" for NOK
-              # - "13" for FIM
-              # - "14" for ZAR
-              # - "15" for IEP
-              # - "16" for NLG
-              # - "17" for EUR
-              # - "18" for KRW
-              # - "19" for TWD
-              # - "20" for SGD
-              # - "21" for CNY
-              # - "22" for HKD
-              # - "23" for NZD
-              # - "24" for MYR
-              # - "25" for BRL
-              # - "26" for PTE
-              # - "27" for MXP
-              # - "28" for CLP
-              # - "29" for TRY
-              # - "30" for ARS
-              # - "31" for PEN
-              # - "32" for ILS
-              # - "33" for CHF
-              # - "34" for VEF
-              # - "35" for COP
-              # - "36" for GTQ
-              # - "37" for PLN
-              # - "39" for INR
-              # - "40" for THB
-              # - "41" for IDR
-              # - "42" for CZK
-              # - "43" for RON
-              # - "44" for HUF
-              # - "45" for RUB
-              # - "46" for AED
-              # - "47" for BGN
-              # - "48" for HRK
-          "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-          "accountPermissionIds": [ # Account permissions assigned to this account.
-            "A String",
-          ],
-          "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-          "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-          "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-          "locale": "A String", # Locale of this account.
-              # Acceptable values are:
-              # - "cs" (Czech)
-              # - "de" (German)
-              # - "en" (English)
-              # - "en-GB" (English United Kingdom)
-              # - "es" (Spanish)
-              # - "fr" (French)
-              # - "it" (Italian)
-              # - "ja" (Japanese)
-              # - "ko" (Korean)
-              # - "pl" (Polish)
-              # - "pt-BR" (Portuguese Brazil)
-              # - "ru" (Russian)
-              # - "sv" (Swedish)
-              # - "tr" (Turkish)
-              # - "zh-CN" (Chinese Simplified)
-              # - "zh-TW" (Chinese Traditional)
-          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-          "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-            "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-                # Acceptable values are:
-                #
-                # - "1" for "America/New_York"
-                # - "2" for "Europe/London"
-                # - "3" for "Europe/Paris"
-                # - "4" for "Africa/Johannesburg"
-                # - "5" for "Asia/Jerusalem"
-                # - "6" for "Asia/Shanghai"
-                # - "7" for "Asia/Hong_Kong"
-                # - "8" for "Asia/Tokyo"
-                # - "9" for "Australia/Sydney"
-                # - "10" for "Asia/Dubai"
-                # - "11" for "America/Los_Angeles"
-                # - "12" for "Pacific/Auckland"
-                # - "13" for "America/Sao_Paulo"
-            "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-            "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            },
-          },
-          "active": True or False, # Whether this account is active.
-          "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-          "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-          "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing account. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM account.
-    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-    "countryId": "A String", # ID of the country associated with this account.
-    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-      "A String",
-    ],
-    "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
-    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-        # Acceptable values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-    "accountPermissionIds": [ # Account permissions assigned to this account.
-      "A String",
-    ],
-    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-    "locale": "A String", # Locale of this account.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-          # Acceptable values are:
-          #
-          # - "1" for "America/New_York"
-          # - "2" for "Europe/London"
-          # - "3" for "Europe/Paris"
-          # - "4" for "Africa/Johannesburg"
-          # - "5" for "Asia/Jerusalem"
-          # - "6" for "Asia/Shanghai"
-          # - "7" for "Asia/Hong_Kong"
-          # - "8" for "Asia/Tokyo"
-          # - "9" for "Australia/Sydney"
-          # - "10" for "Asia/Dubai"
-          # - "11" for "America/Los_Angeles"
-          # - "12" for "Pacific/Auckland"
-          # - "13" for "America/Sao_Paulo"
-      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-    },
-    "active": True or False, # Whether this account is active.
-    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing account.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM account.
-    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-    "countryId": "A String", # ID of the country associated with this account.
-    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-      "A String",
-    ],
-    "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
-    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-        # Acceptable values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-    "accountPermissionIds": [ # Account permissions assigned to this account.
-      "A String",
-    ],
-    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-    "locale": "A String", # Locale of this account.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-          # Acceptable values are:
-          #
-          # - "1" for "America/New_York"
-          # - "2" for "Europe/London"
-          # - "3" for "Europe/Paris"
-          # - "4" for "Africa/Johannesburg"
-          # - "5" for "Asia/Jerusalem"
-          # - "6" for "Asia/Shanghai"
-          # - "7" for "Asia/Hong_Kong"
-          # - "8" for "Asia/Tokyo"
-          # - "9" for "Australia/Sydney"
-          # - "10" for "Asia/Dubai"
-          # - "11" for "America/Los_Angeles"
-          # - "12" for "Pacific/Auckland"
-          # - "13" for "America/Sao_Paulo"
-      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-    },
-    "active": True or False, # Whether this account is active.
-    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.ads.html b/docs/dyn/dfareporting_v2_4.ads.html
deleted file mode 100644
index 4c795b6..0000000
--- a/docs/dyn/dfareporting_v2_4.ads.html
+++ /dev/null
@@ -1,2832 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.ads.html">ads</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one ad by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new ad.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</a></code></p>
-<p class="firstline">Retrieves a list of ads, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing ad. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing ad.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one ad by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Ad ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new ad.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</code>
-  <pre>Retrieves a list of ads, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  landingPageIds: string, Select only ads with these landing page IDs. (repeated)
-  overriddenEventTagId: string, Select only ads with this event tag override ID.
-  campaignIds: string, Select only ads with these campaign IDs. (repeated)
-  sizeIds: string, Select only ads with these size IDs. (repeated)
-  archived: boolean, Select only archived ads.
-  creativeOptimizationConfigurationIds: string, Select only ads with these creative optimization configuration IDs. (repeated)
-  sslCompliant: boolean, Select only ads that are SSL-compliant.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only ads with these types. (repeated)
-    Allowed values
-      AD_SERVING_CLICK_TRACKER - 
-      AD_SERVING_DEFAULT_AD - 
-      AD_SERVING_STANDARD_AD - 
-      AD_SERVING_TRACKING - 
-  sslRequired: boolean, Select only ads that require SSL.
-  creativeIds: string, Select only ads with these creative IDs assigned. (repeated)
-  remarketingListIds: string, Select only ads whose list targeting expression use these remarketing list IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  creativeType: string, Select only ads with the specified creativeType.
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_INPAGE - 
-      CUSTOM_INTERSTITIAL - 
-      ENHANCED_BANNER - 
-      ENHANCED_IMAGE - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      REDIRECT - 
-      RICH_MEDIA_EXPANDING - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_INTERSTITIAL_FLOAT - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_MULTI_FLOATING - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR - 
-      VPAID_NON_LINEAR - 
-  placementIds: string, Select only ads with these placement IDs assigned. (repeated)
-  active: boolean, Select only active ads.
-  compatibility: string, Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
-    Allowed values
-      APP - 
-      APP_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_INTERSTITIAL - 
-      IN_STREAM_VIDEO - 
-  advertiserId: string, Select only ads with this advertiser ID.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "ad*2015" will return objects with names like "ad June 2015", "ad April 2015", or simply "ad 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "ad" will match objects with name "my ad", "ad 2015", or simply "ad".
-  audienceSegmentIds: string, Select only ads with these audience segment IDs. (repeated)
-  ids: string, Select only ads with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  dynamicClickTracker: boolean, Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.
-
-Returns:
-  An object of the form:
-
-    { # Ad List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#adsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#adsListResponse".
-    "ads": [ # Ad collection.
-      { # Contains properties of a DCM ad.
-          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-          },
-          "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-          "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-          "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-              { # Contains information about a country that can be targeted by ads.
-                "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-                "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-                "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-                "countryCode": "A String", # Country code.
-                "name": "A String", # Name of this country.
-              },
-            ],
-            "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-            "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-              { # Contains information about a postal code that can be targeted by ads.
-                "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-                "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-                "code": "A String", # Postal code. This is equivalent to the id field.
-                "id": "A String", # ID of this postal code.
-                "countryCode": "A String", # Country code of the country to which this postal code belongs.
-              },
-            ],
-            "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-              { # Contains information about a region that can be targeted by ads.
-                "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-                "countryDartId": "A String", # DART ID of the country to which this region belongs.
-                "name": "A String", # Name of this region.
-                "countryCode": "A String", # Country code of the country to which this region belongs.
-                "regionCode": "A String", # Region code.
-                "dartId": "A String", # DART ID of this region.
-              },
-            ],
-            "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-              { # Contains information about a city that can be targeted by ads.
-                "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-                "countryDartId": "A String", # DART ID of the country to which this city belongs.
-                "name": "A String", # Name of this city.
-                "countryCode": "A String", # Country code of the country to which this city belongs.
-                "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-                "regionCode": "A String", # Region code of the region to which this city belongs.
-                "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-                "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-                "regionDartId": "A String", # DART ID of the region to which this city belongs.
-              },
-            ],
-            "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-              { # Contains information about a metro region that can be targeted by ads.
-                "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-                "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-                "name": "A String", # Name of this metro region.
-                "countryCode": "A String", # Country code of the country to which this metro region belongs.
-                "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-                "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-                "dartId": "A String", # DART ID of this metro region.
-              },
-            ],
-          },
-          "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-            "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-            "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-            "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-            },
-            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "eventTagOverrides": [ # Event tag overrides for this ad.
-            { # Event tag override information.
-              "enabled": True or False, # Whether this override is enabled.
-              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-            },
-          ],
-          "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-          "archived": True or False, # Whether this ad is archived.
-          "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about a platform type that can be targeted by ads.
-                "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-                "id": "A String", # ID of this platform type.
-                "name": "A String", # Name of this platform type.
-              },
-            ],
-            "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-              { # Contains information about a particular version of an operating system that can be targeted by ads.
-                "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-                "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-                "name": "A String", # Name of this operating system version.
-                "id": "A String", # ID of this operating system version.
-                "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-                  "mobile": True or False, # Whether this operating system is for mobile.
-                  "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-                  "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-                  "name": "A String", # Name of this operating system.
-                  "desktop": True or False, # Whether this operating system is for desktop.
-                },
-                "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-              },
-            ],
-            "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about a browser that can be targeted by ads.
-                "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-                "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-                "name": "A String", # Name of this browser.
-                "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-                "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-                "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-              },
-            ],
-            "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-              { # Contains information about an operating system that can be targeted by ads.
-                "mobile": True or False, # Whether this operating system is for mobile.
-                "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-                "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-                "name": "A String", # Name of this operating system.
-                "desktop": True or False, # Whether this operating system is for desktop.
-              },
-            ],
-            "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-              { # Contains information about a mobile carrier that can be targeted by ads.
-                "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-                "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-                "id": "A String", # ID of this mobile carrier.
-                "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-                "name": "A String", # Name of this mobile carrier.
-              },
-            ],
-            "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-                "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-                "id": "A String", # ID of this connection type.
-                "name": "A String", # Name of this connection type.
-              },
-            ],
-          },
-          "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-            "creativeAssignments": [ # Creative assignments in this creative rotation.
-              { # Creative Assignment.
-                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-                "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-                "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                    # Applicable when the creative type is any of the following:
-                    # - RICH_MEDIA_INPAGE
-                    # - RICH_MEDIA_INPAGE_FLOATING
-                    # - RICH_MEDIA_IM_EXPAND
-                    # - RICH_MEDIA_EXPANDING
-                    # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                    # - RICH_MEDIA_MOBILE_IN_APP
-                    # - RICH_MEDIA_MULTI_FLOATING
-                    # - RICH_MEDIA_PEEL_DOWN
-                    # - ADVANCED_BANNER
-                    # - VPAID_LINEAR
-                    # - VPAID_NON_LINEAR
-                  { # Rich Media Exit Override.
-                    "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                    "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                    "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-                  },
-                ],
-                "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-                "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-                  { # Creative Group Assignment.
-                    "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                    "creativeGroupId": "A String", # ID of the creative group to be assigned.
-                  },
-                ],
-                "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-                  { # Companion Click-through override.
-                    "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                    },
-                    "creativeId": "A String", # ID of the creative for this companion click-through override.
-                  },
-                ],
-                "startTime": "A String", # Date and time that the assigned creative should start serving.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-                "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-                "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-                "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              },
-            ],
-            "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-            "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-            "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-          },
-          "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "comments": "A String", # Comments for this ad.
-          "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "expression": "A String", # Expression describing which lists are being targeted by the ad.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-          "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-          "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "expression": "A String", # Keyword expression being targeted by the ad.
-          },
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-          },
-          "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-          "active": True or False, # Whether this ad is active.
-          "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-          "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-          "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-          "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-              42,
-            ],
-            "daysOfWeek": [ # Days of the week when the ad will serve.
-                #
-                # Acceptable values are:
-                # - "SUNDAY"
-                # - "MONDAY"
-                # - "TUESDAY"
-                # - "WEDNESDAY"
-                # - "THURSDAY"
-                # - "FRIDAY"
-                # - "SATURDAY"
-              "A String",
-            ],
-          },
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "placementAssignments": [ # Placement assignments for this ad.
-            { # Placement Assignment.
-              "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-              "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-              "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            },
-          ],
-          "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-          "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing ad. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Ad ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing ad.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.advertiserGroups.html b/docs/dyn/dfareporting_v2_4.advertiserGroups.html
deleted file mode 100644
index 2be3804..0000000
--- a/docs/dyn/dfareporting_v2_4.advertiserGroups.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.advertiserGroups.html">advertiserGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing advertiser group.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one advertiser group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new advertiser group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of advertiser groups, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one advertiser group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of advertiser groups, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser group June 2015", "advertiser group April 2015", or simply "advertiser group 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertisergroup" will match objects with name "my advertisergroup", "advertisergroup 2015", or simply "advertisergroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only advertiser groups with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Advertiser Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#advertiserGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroupsListResponse".
-    "advertiserGroups": [ # Advertiser group collection.
-      { # Groups advertisers together so that reports can be generated for the entire group at once.
-          "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-          "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-          "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing advertiser group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.advertisers.html b/docs/dyn/dfareporting_v2_4.advertisers.html
deleted file mode 100644
index 31df699..0000000
--- a/docs/dyn/dfareporting_v2_4.advertisers.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.advertisers.html">advertisers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one advertiser by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new advertiser.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of advertisers, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one advertiser by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new advertiser.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</code>
-  <pre>Retrieves a list of advertisers, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  includeAdvertisersWithoutGroupsOnly: boolean, Select only advertisers which do not belong to any advertiser group.
-  onlyParent: boolean, Select only advertisers which use another advertiser's floodlight configuration.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  status: string, Select only advertisers with the specified status.
-    Allowed values
-      APPROVED - 
-      ON_HOLD - 
-  maxResults: integer, Maximum number of results to return.
-  advertiserGroupIds: string, Select only advertisers with these advertiser group IDs. (repeated)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser June 2015", "advertiser April 2015", or simply "advertiser 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertiser" will match objects with name "my advertiser", "advertiser 2015", or simply "advertiser".
-  subaccountId: string, Select only advertisers with these subaccount IDs.
-  ids: string, Select only advertisers with these IDs. (repeated)
-  floodlightConfigurationIds: string, Select only advertisers with these floodlight configuration IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # Advertiser List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "advertisers": [ # Advertiser collection.
-      { # Contains properties of a DCM advertiser.
-          "status": "A String", # Status of this advertiser.
-          "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-          "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-          "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-          "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-          "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-          "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-              # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-              # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-          "suspended": True or False, # Suspension status of this advertiser.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-          "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#advertisersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertisersListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing advertiser. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing advertiser.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.browsers.html b/docs/dyn/dfareporting_v2_4.browsers.html
deleted file mode 100644
index ab147ee..0000000
--- a/docs/dyn/dfareporting_v2_4.browsers.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.browsers.html">browsers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of browsers.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of browsers.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Browser List Response
-    "kind": "dfareporting#browsersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browsersListResponse".
-    "browsers": [ # Browser collection.
-      { # Contains information about a browser that can be targeted by ads.
-        "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-        "name": "A String", # Name of this browser.
-        "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-        "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-        "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.campaignCreativeAssociations.html b/docs/dyn/dfareporting_v2_4.campaignCreativeAssociations.html
deleted file mode 100644
index 3e92444..0000000
--- a/docs/dyn/dfareporting_v2_4.campaignCreativeAssociations.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.campaignCreativeAssociations.html">campaignCreativeAssociations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves the list of creative IDs associated with the specified campaign.</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="insert">insert(profileId, campaignId, body)</code>
-  <pre>Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Campaign ID in this association. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Identifies a creative which has been associated with a given campaign.
-    "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-    "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Identifies a creative which has been associated with a given campaign.
-      "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-      "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</code>
-  <pre>Retrieves the list of creative IDs associated with the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Campaign ID in this association. (required)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Campaign Creative Association List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "campaignCreativeAssociations": [ # Campaign creative association collection
-      { # Identifies a creative which has been associated with a given campaign.
-          "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-          "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-        },
-    ],
-    "kind": "dfareporting#campaignCreativeAssociationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociationsListResponse".
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.campaigns.html b/docs/dyn/dfareporting_v2_4.campaigns.html
deleted file mode 100644
index 795b29c..0000000
--- a/docs/dyn/dfareporting_v2_4.campaigns.html
+++ /dev/null
@@ -1,1139 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.campaigns.html">campaigns</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one campaign by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</a></code></p>
-<p class="firstline">Inserts a new campaign.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</a></code></p>
-<p class="firstline">Retrieves a list of campaigns, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing campaign. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing campaign.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one campaign by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Campaign ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</code>
-  <pre>Inserts a new campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  defaultLandingPageName: string, Default landing page name for this new campaign. Must be less than 256 characters long. (required)
-  defaultLandingPageUrl: string, Default landing page URL for this new campaign. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</code>
-  <pre>Retrieves a list of campaigns, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  overriddenEventTagId: string, Select only campaigns that have overridden this event tag ID.
-  archived: boolean, Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.
-  advertiserIds: string, Select only campaigns that belong to these advertisers. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxResults: integer, Maximum number of results to return.
-  excludedIds: string, Exclude campaigns with these IDs. (repeated)
-  advertiserGroupIds: string, Select only campaigns whose advertisers belong to these advertiser groups. (repeated)
-  searchString: string, Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, "campaign*2015" will return campaigns with names like "campaign June 2015", "campaign April 2015", or simply "campaign 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "campaign" will match campaigns with name "my campaign", "campaign 2015", or simply "campaign".
-  subaccountId: string, Select only campaigns that belong to this subaccount.
-  ids: string, Select only campaigns with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  atLeastOneOptimizationActivity: boolean, Select only campaigns that have at least one optimization activity.
-
-Returns:
-  An object of the form:
-
-    { # Campaign List Response
-    "campaigns": [ # Campaign collection.
-      { # Contains properties of a DCM campaign.
-          "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-          "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-          "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-          },
-          "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-            { # Event tag override information.
-              "enabled": True or False, # Whether this override is enabled.
-              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-            },
-          ],
-          "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-            "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-              { # Creative optimization activity.
-                "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-                "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-                "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-              },
-            ],
-            "optimizationModel": "A String", # Optimization model for this configuration.
-            "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-            "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-          },
-          "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-          "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-          "traffickerEmails": [ # Campaign trafficker contact emails.
-            "A String",
-          ],
-          "archived": True or False, # Whether this campaign has been archived.
-          "externalId": "A String", # External ID for this campaign.
-          "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-          "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-          "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-            "A String",
-          ],
-          "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-            { # Creative optimization settings.
-              "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-                { # Creative optimization activity.
-                  "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-                  "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                    "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                    "value": "A String", # The value of the dimension.
-                    "dimensionName": "A String", # The name of the dimension.
-                    "etag": "A String", # The eTag of this response for caching purposes.
-                    "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                    "id": "A String", # The ID associated with the value if available.
-                  },
-                  "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-                },
-              ],
-              "optimizationModel": "A String", # Optimization model for this configuration.
-              "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-              "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-            },
-          ],
-          "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-          },
-          "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-          "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-            { # Audience Segment Group.
-              "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-                { # Audience Segment.
-                  "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-                  "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-                  "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-                },
-              ],
-              "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-            },
-          ],
-        },
-    ],
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#campaignsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing campaign. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.changeLogs.html b/docs/dyn/dfareporting_v2_4.changeLogs.html
deleted file mode 100644
index 96274ce..0000000
--- a/docs/dyn/dfareporting_v2_4.changeLogs.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.changeLogs.html">changeLogs</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one change log by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of change logs.</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="get">get(profileId, id)</code>
-  <pre>Gets one change log by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Change log ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Describes a change that a user has made to a resource.
-    "changeTime": "A String", # Time when the object was modified.
-    "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
-    "subaccountId": "A String", # Subaccount ID of the modified object.
-    "userProfileId": "A String", # ID of the user who modified the object.
-    "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
-    "newValue": "A String", # New value of the object field.
-    "userProfileName": "A String", # User profile name of the user who modified the object.
-    "fieldName": "A String", # Field name of the object which changed.
-    "oldValue": "A String", # Old value of the object field.
-    "action": "A String", # Action which caused the change.
-    "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
-    "objectType": "A String", # Object type of the change log.
-    "id": "A String", # ID of this change log.
-    "accountId": "A String", # Account ID of the modified object.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</code>
-  <pre>Retrieves a list of change logs.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  objectType: string, Select only change logs with the specified object type.
-    Allowed values
-      OBJECT_ACCOUNT - 
-      OBJECT_ACCOUNT_BILLING_FEATURE - 
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_ADVERTISER_GROUP - 
-      OBJECT_BILLING_ACCOUNT_GROUP - 
-      OBJECT_BILLING_FEATURE - 
-      OBJECT_BILLING_MINIMUM_FEE - 
-      OBJECT_BILLING_PROFILE - 
-      OBJECT_CAMPAIGN - 
-      OBJECT_CONTENT_CATEGORY - 
-      OBJECT_CREATIVE - 
-      OBJECT_CREATIVE_ASSET - 
-      OBJECT_CREATIVE_BUNDLE - 
-      OBJECT_CREATIVE_FIELD - 
-      OBJECT_CREATIVE_GROUP - 
-      OBJECT_DFA_SITE - 
-      OBJECT_EVENT_TAG - 
-      OBJECT_FLOODLIGHT_ACTIVITY_GROUP - 
-      OBJECT_FLOODLIGHT_ACTVITY - 
-      OBJECT_FLOODLIGHT_CONFIGURATION - 
-      OBJECT_INSTREAM_CREATIVE - 
-      OBJECT_LANDING_PAGE - 
-      OBJECT_MEDIA_ORDER - 
-      OBJECT_PLACEMENT - 
-      OBJECT_PLACEMENT_STRATEGY - 
-      OBJECT_PLAYSTORE_LINK - 
-      OBJECT_PROVIDED_LIST_CLIENT - 
-      OBJECT_RATE_CARD - 
-      OBJECT_REMARKETING_LIST - 
-      OBJECT_RICHMEDIA_CREATIVE - 
-      OBJECT_SD_SITE - 
-      OBJECT_SIZE - 
-      OBJECT_SUBACCOUNT - 
-      OBJECT_TARGETING_TEMPLATE - 
-      OBJECT_USER_PROFILE - 
-      OBJECT_USER_PROFILE_FILTER - 
-      OBJECT_USER_ROLE - 
-  maxChangeTime: string, Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  action: string, Select only change logs with the specified action.
-    Allowed values
-      ACTION_ADD - 
-      ACTION_ASSIGN - 
-      ACTION_ASSOCIATE - 
-      ACTION_CREATE - 
-      ACTION_DELETE - 
-      ACTION_DISABLE - 
-      ACTION_EMAIL_TAGS - 
-      ACTION_ENABLE - 
-      ACTION_LINK - 
-      ACTION_MARK_AS_DEFAULT - 
-      ACTION_PUSH - 
-      ACTION_REMOVE - 
-      ACTION_SEND - 
-      ACTION_SHARE - 
-      ACTION_UNASSIGN - 
-      ACTION_UNLINK - 
-      ACTION_UPDATE - 
-  minChangeTime: string, Select only change logs whose change time is before the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
-  searchString: string, Select only change logs whose object ID, user name, old or new values match the search string.
-  userProfileIds: string, Select only change logs with these user profile IDs. (repeated)
-  ids: string, Select only change logs with these IDs. (repeated)
-  objectIds: string, Select only change logs with these object IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Change Log List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#changeLogsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLogsListResponse".
-    "changeLogs": [ # Change log collection.
-      { # Describes a change that a user has made to a resource.
-        "changeTime": "A String", # Time when the object was modified.
-        "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
-        "subaccountId": "A String", # Subaccount ID of the modified object.
-        "userProfileId": "A String", # ID of the user who modified the object.
-        "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
-        "newValue": "A String", # New value of the object field.
-        "userProfileName": "A String", # User profile name of the user who modified the object.
-        "fieldName": "A String", # Field name of the object which changed.
-        "oldValue": "A String", # Old value of the object field.
-        "action": "A String", # Action which caused the change.
-        "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
-        "objectType": "A String", # Object type of the change log.
-        "id": "A String", # ID of this change log.
-        "accountId": "A String", # Account ID of the modified object.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.cities.html b/docs/dyn/dfareporting_v2_4.cities.html
deleted file mode 100644
index 65d5c20..0000000
--- a/docs/dyn/dfareporting_v2_4.cities.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.cities.html">cities</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of cities, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</code>
-  <pre>Retrieves a list of cities, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartIds: string, Select only cities with these DART IDs. (repeated)
-  namePrefix: string, Select only cities with names starting with this prefix.
-  regionDartIds: string, Select only cities from these regions. (repeated)
-  countryDartIds: string, Select only cities from these countries. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # City List Response
-    "kind": "dfareporting#citiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#citiesListResponse".
-    "cities": [ # City collection.
-      { # Contains information about a city that can be targeted by ads.
-        "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-        "countryDartId": "A String", # DART ID of the country to which this city belongs.
-        "name": "A String", # Name of this city.
-        "countryCode": "A String", # Country code of the country to which this city belongs.
-        "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-        "regionCode": "A String", # Region code of the region to which this city belongs.
-        "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-        "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-        "regionDartId": "A String", # DART ID of the region to which this city belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.connectionTypes.html b/docs/dyn/dfareporting_v2_4.connectionTypes.html
deleted file mode 100644
index dfa2e97..0000000
--- a/docs/dyn/dfareporting_v2_4.connectionTypes.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.connectionTypes.html">connectionTypes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one connection type by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of connection types.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one connection type by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Connection type ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-    "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-    "id": "A String", # ID of this connection type.
-    "name": "A String", # Name of this connection type.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of connection types.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Connection Type List Response
-    "kind": "dfareporting#connectionTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionTypesListResponse".
-    "connectionTypes": [ # Collection of connection types such as broadband and mobile.
-      { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-        "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-        "id": "A String", # ID of this connection type.
-        "name": "A String", # Name of this connection type.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.contentCategories.html b/docs/dyn/dfareporting_v2_4.contentCategories.html
deleted file mode 100644
index d02867e..0000000
--- a/docs/dyn/dfareporting_v2_4.contentCategories.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.contentCategories.html">contentCategories</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing content category.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one content category by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new content category.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of content categories, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing content category. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing content category.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one content category by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of content categories, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "contentcategory*2015" will return objects with names like "contentcategory June 2015", "contentcategory April 2015", or simply "contentcategory 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "contentcategory" will match objects with name "my contentcategory", "contentcategory 2015", or simply "contentcategory".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only content categories with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Content Category List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#contentCategoriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategoriesListResponse".
-    "contentCategories": [ # Content category collection.
-      { # Organizes placements according to the contents of their associated webpages.
-          "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-          "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-          "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing content category. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.creativeAssets.html b/docs/dyn/dfareporting_v2_4.creativeAssets.html
deleted file mode 100644
index 5898e9f..0000000
--- a/docs/dyn/dfareporting_v2_4.creativeAssets.html
+++ /dev/null
@@ -1,191 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.creativeAssets.html">creativeAssets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, advertiserId, body=None, media_body=None)</a></code></p>
-<p class="firstline">Inserts a new creative asset.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="insert">insert(profileId, advertiserId, body=None, media_body=None)</code>
-  <pre>Inserts a new creative asset.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Advertiser ID of this creative. This is a required field. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
-    "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
-        # 
-        # Possible values are:
-        # - "ADMOB_REFERENCED"
-        # - "ASSET_FORMAT_UNSUPPORTED_DCM"
-        # - "ASSET_INVALID"
-        # - "CLICK_TAG_HARD_CODED"
-        # - "CLICK_TAG_INVALID"
-        # - "CLICK_TAG_IN_GWD"
-        # - "CLICK_TAG_MISSING"
-        # - "CLICK_TAG_MORE_THAN_ONE"
-        # - "CLICK_TAG_NON_TOP_LEVEL"
-        # - "COMPONENT_UNSUPPORTED_DCM"
-        # - "ENABLER_UNSUPPORTED_METHOD_DCM"
-        # - "EXTERNAL_FILE_REFERENCED"
-        # - "FILE_DETAIL_EMPTY"
-        # - "FILE_TYPE_INVALID"
-        # - "GWD_PROPERTIES_INVALID"
-        # - "HTML5_FEATURE_UNSUPPORTED"
-        # - "LINKED_FILE_NOT_FOUND"
-        # - "MAX_FLASH_VERSION_11"
-        # - "MRAID_REFERENCED"
-        # - "NOT_SSL_COMPLIANT"
-        # - "ORPHANED_ASSET"
-        # - "PRIMARY_HTML_MISSING"
-        # - "SVG_INVALID"
-        # - "ZIP_INVALID"
-      "A String",
-    ],
-    "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
-    "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
-      "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-      "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-    },
-  }
-
-  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
-
-Returns:
-  An object of the form:
-
-    { # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
-      "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
-          #
-          # Possible values are:
-          # - "ADMOB_REFERENCED"
-          # - "ASSET_FORMAT_UNSUPPORTED_DCM"
-          # - "ASSET_INVALID"
-          # - "CLICK_TAG_HARD_CODED"
-          # - "CLICK_TAG_INVALID"
-          # - "CLICK_TAG_IN_GWD"
-          # - "CLICK_TAG_MISSING"
-          # - "CLICK_TAG_MORE_THAN_ONE"
-          # - "CLICK_TAG_NON_TOP_LEVEL"
-          # - "COMPONENT_UNSUPPORTED_DCM"
-          # - "ENABLER_UNSUPPORTED_METHOD_DCM"
-          # - "EXTERNAL_FILE_REFERENCED"
-          # - "FILE_DETAIL_EMPTY"
-          # - "FILE_TYPE_INVALID"
-          # - "GWD_PROPERTIES_INVALID"
-          # - "HTML5_FEATURE_UNSUPPORTED"
-          # - "LINKED_FILE_NOT_FOUND"
-          # - "MAX_FLASH_VERSION_11"
-          # - "MRAID_REFERENCED"
-          # - "NOT_SSL_COMPLIANT"
-          # - "ORPHANED_ASSET"
-          # - "PRIMARY_HTML_MISSING"
-          # - "SVG_INVALID"
-          # - "ZIP_INVALID"
-        "A String",
-      ],
-      "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
-      "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
-        "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-        "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.creativeFieldValues.html b/docs/dyn/dfareporting_v2_4.creativeFieldValues.html
deleted file mode 100644
index 5c233ee..0000000
--- a/docs/dyn/dfareporting_v2_4.creativeFieldValues.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.creativeFieldValues.html">creativeFieldValues</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, creativeFieldId, id)</a></code></p>
-<p class="firstline">Deletes an existing creative field value.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, creativeFieldId, id)</a></code></p>
-<p class="firstline">Gets one creative field value by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, creativeFieldId, body)</a></code></p>
-<p class="firstline">Inserts a new creative field value.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative field values, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, creativeFieldId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative field value. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, creativeFieldId, body)</a></code></p>
-<p class="firstline">Updates an existing creative field value.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, creativeFieldId, id)</code>
-  <pre>Deletes an existing creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, creativeFieldId, id)</code>
-  <pre>Gets one creative field value by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, creativeFieldId, body)</code>
-  <pre>Inserts a new creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative field values, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  searchString: string, Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      VALUE - 
-  ids: string, Select only creative field values with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Field Value List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#creativeFieldValuesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValuesListResponse".
-    "creativeFieldValues": [ # Creative field value collection.
-      { # Contains properties of a creative field value.
-          "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-          "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-          "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, creativeFieldId, id, body)</code>
-  <pre>Updates an existing creative field value. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, creativeFieldId, body)</code>
-  <pre>Updates an existing creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.creativeGroups.html b/docs/dyn/dfareporting_v2_4.creativeGroups.html
deleted file mode 100644
index ede5cb1..0000000
--- a/docs/dyn/dfareporting_v2_4.creativeGroups.html
+++ /dev/null
@@ -1,364 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.creativeGroups.html">creativeGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative groups, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative groups, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, "creativegroup*2015" will return creative groups with names like "creativegroup June 2015", "creativegroup April 2015", or simply "creativegroup 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativegroup" will match creative groups with the name "my creativegroup", "creativegroup 2015", or simply "creativegroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only creative groups that belong to these advertisers. (repeated)
-  groupNumber: integer, Select only creative groups that belong to this subgroup.
-  maxResults: integer, Maximum number of results to return.
-  ids: string, Select only creative groups with these IDs. (repeated)
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "creativeGroups": [ # Creative group collection.
-      { # Contains properties of a creative group.
-          "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-          "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-              # Acceptable values are:
-              # - 1
-              # - 2
-          "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#creativeGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroupsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.creatives.html b/docs/dyn/dfareporting_v2_4.creatives.html
deleted file mode 100644
index bb0b809..0000000
--- a/docs/dyn/dfareporting_v2_4.creatives.html
+++ /dev/null
@@ -1,2893 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.creatives.html">creatives</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of creatives, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</code>
-  <pre>Retrieves a list of creatives, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Select only creatives with this campaign ID.
-  advertiserId: string, Select only creatives with this advertiser ID.
-  sizeIds: string, Select only creatives with these size IDs. (repeated)
-  archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  renderingIds: string, Select only creatives with these rendering IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active creatives. Leave blank to select active and inactive creatives.
-  companionCreativeIds: string, Select only in-stream video creatives with these companion IDs. (repeated)
-  types: string, Select only creatives with these creative types. (repeated)
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_INPAGE - 
-      CUSTOM_INTERSTITIAL - 
-      ENHANCED_BANNER - 
-      ENHANCED_IMAGE - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      REDIRECT - 
-      RICH_MEDIA_EXPANDING - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_INTERSTITIAL_FLOAT - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_MULTI_FLOATING - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR - 
-      VPAID_NON_LINEAR - 
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "creative*2015" will return objects with names like "creative June 2015", "creative April 2015", or simply "creative 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "creative" will match objects with name "my creative", "creative 2015", or simply "creative".
-  ids: string, Select only creatives with these IDs. (repeated)
-  studioCreativeId: string, Select only creatives corresponding to this Studio creative ID.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  creativeFieldIds: string, Select only creatives with these creative field IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Creative List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#creativesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativesListResponse".
-    "creatives": [ # Creative collection.
-      { # Contains properties of a Creative.
-          "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-            { # Third-party Tracking URL.
-              "url": "A String", # URL for the specified third-party URL type.
-              "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-            },
-          ],
-          "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-          "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-          "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-          "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-            "windowHeight": 42, # Height of the window.
-            "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-            "windowWidth": 42, # Width of the window.
-            "positionOption": "A String", # Position in the browser where the window will open.
-            "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-          },
-          "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-          "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-          "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-          "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-          "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-          "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-          "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-          "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-            { # Creative Field Assignment.
-              "creativeFieldId": "A String", # ID of the creative field.
-              "creativeFieldValueId": "A String", # ID of the creative field value.
-            },
-          ],
-          "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-          "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-            "A String",
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-          "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-          "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-            { # Creative Asset.
-              "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-              "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-              "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-              "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-                "A String",
-              ],
-              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-              "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-              "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-              "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-              "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-                  # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-                  # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-                  # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-                  # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-                  # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-                  # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-                  # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-                  # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-              "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-              "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-              "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-              "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-              "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-              "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-              "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-              "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-              "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-                "targetType": "A String", # Target type used by the event.
-                "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-                "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-                "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                  "showStatusBar": True or False, # Whether to display the browser status bar.
-                  "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                  "showAddressBar": True or False, # Whether to display the browser address bar.
-                  "showMenuBar": True or False, # Whether to display the browser menu bar.
-                  "title": "A String", # Title of popup window.
-                  "showToolBar": True or False, # Whether to display the browser tool bar.
-                  "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                  "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                    "top": 42, # Offset distance from top side of an asset or a window.
-                    "left": 42, # Offset distance from left side of an asset or a window.
-                  },
-                  "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                    "width": 42, # Width of this size.
-                    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                    "height": 42, # Height of this size.
-                  },
-                },
-                "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-                "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-                "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-                "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-                "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-                "advertiserCustomEventName": "A String", # User-entered name for the event.
-              },
-              "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-              "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-                "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-                "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-              },
-              "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-              "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-            },
-          ],
-          "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-          "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-          "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-          "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            { # Creative Click Tag.
-              "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-              "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-              "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-            },
-          ],
-          "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-          "active": True or False, # Whether the creative is active. Applicable to all creative types.
-          "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-              #
-              # Acceptable values are:
-              # - "APP"
-              # - "APP_INTERSTITIAL"
-              # - "IN_STREAM_VIDEO"
-              # - "DISPLAY"
-              # - "DISPLAY_INTERSTITIAL"
-            "A String",
-          ],
-          "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-            "A String",
-          ],
-          "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-          "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-          "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-          "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-          "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-          "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-          "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-            "A String",
-          ],
-          "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-          "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-            "A String",
-          ],
-          "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "customHtml": "A String", # User-entered value.
-            "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-          },
-          "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.directorySiteContacts.html b/docs/dyn/dfareporting_v2_4.directorySiteContacts.html
deleted file mode 100644
index 8f9331f..0000000
--- a/docs/dyn/dfareporting_v2_4.directorySiteContacts.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.directorySiteContacts.html">directorySiteContacts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one directory site contact by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of directory site contacts, possibly filtered.</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="get">get(profileId, id)</code>
-  <pre>Gets one directory site contact by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Directory site contact ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Site Directory contact.
-    "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
-    "firstName": "A String", # First name of this directory site contact.
-    "title": "A String", # Title or designation of this directory site contact.
-    "lastName": "A String", # Last name of this directory site contact.
-    "email": "A String", # Email address of this directory site contact.
-    "phone": "A String", # Phone number of this directory site contact.
-    "role": "A String", # Directory site contact role.
-    "address": "A String", # Address of this directory site contact.
-    "type": "A String", # Directory site contact type.
-    "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of directory site contacts, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "directory site contact*2015" will return objects with names like "directory site contact June 2015", "directory site contact April 2015", or simply "directory site contact 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site contact" will match objects with name "my directory site contact", "directory site contact 2015", or simply "directory site contact".
-  directorySiteIds: string, Select only directory site contacts with these directory site IDs. This is a required field. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only directory site contacts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Directory Site Contact List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "directorySiteContacts": [ # Directory site contact collection
-      { # Contains properties of a Site Directory contact.
-        "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
-        "firstName": "A String", # First name of this directory site contact.
-        "title": "A String", # Title or designation of this directory site contact.
-        "lastName": "A String", # Last name of this directory site contact.
-        "email": "A String", # Email address of this directory site contact.
-        "phone": "A String", # Phone number of this directory site contact.
-        "role": "A String", # Directory site contact role.
-        "address": "A String", # Address of this directory site contact.
-        "type": "A String", # Directory site contact type.
-        "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "kind": "dfareporting#directorySiteContactsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContactsListResponse".
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.directorySites.html b/docs/dyn/dfareporting_v2_4.directorySites.html
deleted file mode 100644
index fa3f7ac..0000000
--- a/docs/dyn/dfareporting_v2_4.directorySites.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.directorySites.html">directorySites</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one directory site by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new directory site.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</a></code></p>
-<p class="firstline">Retrieves a list of directory sites, possibly filtered.</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="get">get(profileId, id)</code>
-  <pre>Gets one directory site by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Directory site ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-      "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
-      "settings": { # Directory Site Settings # Directory site settings.
-        "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-        "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
-          "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
-          "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-          "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
-        },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-        "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-        "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-      },
-      "currencyId": "A String", # Currency ID of this directory site.
-          # Possible values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "inpageTagFormats": [ # Tag types for regular placements.
-          #
-          # Acceptable values are:
-          # - "STANDARD"
-          # - "IFRAME_JAVASCRIPT_INPAGE"
-          # - "INTERNAL_REDIRECT_INPAGE"
-          # - "JAVASCRIPT_INPAGE"
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "interstitialTagFormats": [ # Tag types for interstitial placements.
-          #
-          # Acceptable values are:
-          # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-          # - "INTERNAL_REDIRECT_INTERSTITIAL"
-          # - "JAVASCRIPT_INTERSTITIAL"
-        "A String",
-      ],
-      "contactAssignments": [ # Directory site contacts.
-        { # Directory Site Contact Assignment
-          "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-          "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-        },
-      ],
-      "url": "A String", # URL of this directory site.
-      "parentId": "A String", # Parent directory site ID.
-      "active": True or False, # Whether this directory site is active.
-      "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this directory site.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new directory site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-    "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-    "countryId": "A String", # Country ID of this directory site.
-    "description": "A String", # Description of this directory site.
-    "settings": { # Directory Site Settings # Directory site settings.
-      "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-      "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-      "dfp_settings": { # DFP Settings # Directory site DFP settings.
-        "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-        "dfp_network_name": "A String", # DFP network name for this directory site.
-        "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-        "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-        "dfp_network_code": "A String", # DFP network code for this directory site.
-      },
-      "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-      "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-      "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-      "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-    },
-    "currencyId": "A String", # Currency ID of this directory site.
-        # Possible values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "inpageTagFormats": [ # Tag types for regular placements.
-        # 
-        # Acceptable values are:
-        # - "STANDARD"
-        # - "IFRAME_JAVASCRIPT_INPAGE"
-        # - "INTERNAL_REDIRECT_INPAGE"
-        # - "JAVASCRIPT_INPAGE"
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "interstitialTagFormats": [ # Tag types for interstitial placements.
-        # 
-        # Acceptable values are:
-        # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-        # - "INTERNAL_REDIRECT_INTERSTITIAL"
-        # - "JAVASCRIPT_INTERSTITIAL"
-      "A String",
-    ],
-    "contactAssignments": [ # Directory site contacts.
-      { # Directory Site Contact Assignment
-        "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-        "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-      },
-    ],
-    "url": "A String", # URL of this directory site.
-    "parentId": "A String", # Parent directory site ID.
-    "active": True or False, # Whether this directory site is active.
-    "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this directory site.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-      "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
-      "settings": { # Directory Site Settings # Directory site settings.
-        "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-        "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
-          "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
-          "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-          "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
-        },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-        "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-        "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-      },
-      "currencyId": "A String", # Currency ID of this directory site.
-          # Possible values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "inpageTagFormats": [ # Tag types for regular placements.
-          #
-          # Acceptable values are:
-          # - "STANDARD"
-          # - "IFRAME_JAVASCRIPT_INPAGE"
-          # - "INTERNAL_REDIRECT_INPAGE"
-          # - "JAVASCRIPT_INPAGE"
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "interstitialTagFormats": [ # Tag types for interstitial placements.
-          #
-          # Acceptable values are:
-          # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-          # - "INTERNAL_REDIRECT_INTERSTITIAL"
-          # - "JAVASCRIPT_INTERSTITIAL"
-        "A String",
-      ],
-      "contactAssignments": [ # Directory site contacts.
-        { # Directory Site Contact Assignment
-          "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-          "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-        },
-      ],
-      "url": "A String", # URL of this directory site.
-      "parentId": "A String", # Parent directory site ID.
-      "active": True or False, # Whether this directory site is active.
-      "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this directory site.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</code>
-  <pre>Retrieves a list of directory sites, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  countryId: string, Select only directory sites with this country ID.
-  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  parentId: string, Select only directory sites with this parent ID.
-  acceptsPublisherPaidPlacements: boolean, Select only directory sites that accept publisher paid placements. This field can be left blank.
-  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.
-  searchString: string, Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, "directory site*2015" will return objects with names like "directory site June 2015", "directory site April 2015", or simply "directory site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site" will match objects with name "my directory site", "directory site 2015" or simply, "directory site".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only directory sites with these IDs. (repeated)
-  dfp_network_code: string, Select only directory sites with this DFP network code.
-
-Returns:
-  An object of the form:
-
-    { # Directory Site List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#directorySitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySitesListResponse".
-    "directorySites": [ # Directory site collection.
-      { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-          "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-          "countryId": "A String", # Country ID of this directory site.
-          "description": "A String", # Description of this directory site.
-          "settings": { # Directory Site Settings # Directory site settings.
-            "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-            "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-            "dfp_settings": { # DFP Settings # Directory site DFP settings.
-              "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-              "dfp_network_name": "A String", # DFP network name for this directory site.
-              "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-              "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-              "dfp_network_code": "A String", # DFP network code for this directory site.
-            },
-            "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-            "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-            "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-            "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-          },
-          "currencyId": "A String", # Currency ID of this directory site.
-              # Possible values are:
-              # - "1" for USD
-              # - "2" for GBP
-              # - "3" for ESP
-              # - "4" for SEK
-              # - "5" for CAD
-              # - "6" for JPY
-              # - "7" for DEM
-              # - "8" for AUD
-              # - "9" for FRF
-              # - "10" for ITL
-              # - "11" for DKK
-              # - "12" for NOK
-              # - "13" for FIM
-              # - "14" for ZAR
-              # - "15" for IEP
-              # - "16" for NLG
-              # - "17" for EUR
-              # - "18" for KRW
-              # - "19" for TWD
-              # - "20" for SGD
-              # - "21" for CNY
-              # - "22" for HKD
-              # - "23" for NZD
-              # - "24" for MYR
-              # - "25" for BRL
-              # - "26" for PTE
-              # - "27" for MXP
-              # - "28" for CLP
-              # - "29" for TRY
-              # - "30" for ARS
-              # - "31" for PEN
-              # - "32" for ILS
-              # - "33" for CHF
-              # - "34" for VEF
-              # - "35" for COP
-              # - "36" for GTQ
-              # - "37" for PLN
-              # - "39" for INR
-              # - "40" for THB
-              # - "41" for IDR
-              # - "42" for CZK
-              # - "43" for RON
-              # - "44" for HUF
-              # - "45" for RUB
-              # - "46" for AED
-              # - "47" for BGN
-              # - "48" for HRK
-          "inpageTagFormats": [ # Tag types for regular placements.
-              #
-              # Acceptable values are:
-              # - "STANDARD"
-              # - "IFRAME_JAVASCRIPT_INPAGE"
-              # - "INTERNAL_REDIRECT_INPAGE"
-              # - "JAVASCRIPT_INPAGE"
-            "A String",
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "interstitialTagFormats": [ # Tag types for interstitial placements.
-              #
-              # Acceptable values are:
-              # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-              # - "INTERNAL_REDIRECT_INTERSTITIAL"
-              # - "JAVASCRIPT_INTERSTITIAL"
-            "A String",
-          ],
-          "contactAssignments": [ # Directory site contacts.
-            { # Directory Site Contact Assignment
-              "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-              "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-            },
-          ],
-          "url": "A String", # URL of this directory site.
-          "parentId": "A String", # Parent directory site ID.
-          "active": True or False, # Whether this directory site is active.
-          "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this directory site.
-        },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.files.html b/docs/dyn/dfareporting_v2_4.files.html
deleted file mode 100644
index 99bf5d8..0000000
--- a/docs/dyn/dfareporting_v2_4.files.html
+++ /dev/null
@@ -1,205 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.files.html">files</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
-<p class="toc_element">
-  <code><a href="#get_media">get_media(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
-<p class="firstline">Lists files for a user profile.</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="get">get(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
-
-Args:
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get_media">get_media(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
-
-Args:
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  The media object as a string.
-
-    </pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
-  <pre>Lists files for a user profile.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by file ID.
-      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
-    Allowed values
-      ALL - All files in account.
-      MINE - My files.
-      SHARED_WITH_ME - Files shared with me.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of File resources.
-    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The files returned in this response.
-      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-        "status": "A String", # The status of the report file.
-        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-        "format": "A String", # The output format of the report. Only available once the file is available.
-        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "fileName": "A String", # The filename of the file.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "reportId": "A String", # The ID of the report this file was generated from.
-        "urls": { # The URLs where the completed report file can be downloaded.
-          "browserUrl": "A String", # The URL for downloading the report data through a browser.
-          "apiUrl": "A String", # The URL for downloading the report data through the API.
-        },
-        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-        "id": "A String", # The unique ID of this report file.
-      },
-    ],
-    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.floodlightActivities.html b/docs/dyn/dfareporting_v2_4.floodlightActivities.html
deleted file mode 100644
index ad4e347..0000000
--- a/docs/dyn/dfareporting_v2_4.floodlightActivities.html
+++ /dev/null
@@ -1,1045 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.floodlightActivities.html">floodlightActivities</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#generatetag">generatetag(profileId, floodlightActivityId=None)</a></code></p>
-<p class="firstline">Generates a tag for a floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight activity by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight activities, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="generatetag">generatetag(profileId, floodlightActivityId=None)</code>
-  <pre>Generates a tag for a floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  floodlightActivityId: string, Floodlight activity ID for which we want to generate a tag.
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity GenerateTag Response
-    "kind": "dfareporting#floodlightActivitiesGenerateTagResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesGenerateTagResponse".
-    "floodlightActivityTag": "A String", # Generated tag for this floodlight activity.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight activity by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</code>
-  <pre>Retrieves a list of floodlight activities, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  floodlightActivityGroupName: string, Select only floodlight activities with the specified floodlight activity group name.
-  advertiserId: string, Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
-  tagString: string, Select only floodlight activities with the specified tag string.
-  floodlightActivityGroupTagString: string, Select only floodlight activities with the specified floodlight activity group tag string.
-  floodlightActivityGroupIds: string, Select only floodlight activities with the specified floodlight activity group IDs. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxResults: integer, Maximum number of results to return.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivity*2015" will return objects with names like "floodlightactivity June 2015", "floodlightactivity April 2015", or simply "floodlightactivity 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivity" will match objects with name "my floodlightactivity activity", "floodlightactivity 2015", or simply "floodlightactivity".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightConfigurationId: string, Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
-  ids: string, Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result. (repeated)
-  floodlightActivityGroupType: string, Select only floodlight activities with the specified floodlight activity group type.
-    Allowed values
-      COUNTER - 
-      SALE - 
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#floodlightActivitiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesListResponse".
-    "floodlightActivities": [ # Floodlight activity collection.
-      { # Contains properties of a Floodlight activity.
-          "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-          "secure": True or False, # Whether this tag should use SSL.
-          "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-          "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-          "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-          "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-          "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-          "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-          "publisherTags": [ # Publisher dynamic floodlight tags.
-            { # Publisher Dynamic Tag
-              "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-              "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-              "siteId": "A String", # Site ID of this dynamic tag.
-              "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-                "tag": "A String", # Tag code.
-                "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-                "name": "A String", # Name of this tag.
-              },
-              "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-              "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            },
-          ],
-          "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "hidden": True or False, # Whether this activity is archived.
-          "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-          "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-          "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-          "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-          "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-          "notes": "A String", # General notes or implementation instructions for the tag.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-          "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-              # Acceptable values are:
-              # - "U1"
-              # - "U2"
-              # - "U3"
-              # - "U4"
-              # - "U5"
-              # - "U6"
-              # - "U7"
-              # - "U8"
-              # - "U9"
-              # - "U10"
-              # - "U11"
-              # - "U12"
-              # - "U13"
-              # - "U14"
-              # - "U15"
-              # - "U16"
-              # - "U17"
-              # - "U18"
-              # - "U19"
-              # - "U20"
-            "A String",
-          ],
-          "defaultTags": [ # Dynamic floodlight tags.
-            { # Dynamic Tag
-              "tag": "A String", # Tag code.
-              "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this tag.
-            },
-          ],
-          "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-          "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight activity. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.floodlightActivityGroups.html b/docs/dyn/dfareporting_v2_4.floodlightActivityGroups.html
deleted file mode 100644
index 0cff6d1..0000000
--- a/docs/dyn/dfareporting_v2_4.floodlightActivityGroups.html
+++ /dev/null
@@ -1,488 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.floodlightActivityGroups.html">floodlightActivityGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight activity group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new floodlight activity group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight activity groups, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight activity group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity Group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new floodlight activity group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</code>
-  <pre>Retrieves a list of floodlight activity groups, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only floodlight activity groups with the specified advertiser ID. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivitygroup*2015" will return objects with names like "floodlightactivitygroup June 2015", "floodlightactivitygroup April 2015", or simply "floodlightactivitygroup 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivitygroup" will match objects with name "my floodlightactivitygroup activity", "floodlightactivitygroup 2015", or simply "floodlightactivitygroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightConfigurationId: string, Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.
-  ids: string, Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only floodlight activity groups with the specified floodlight activity group type.
-    Allowed values
-      COUNTER - 
-      SALE - 
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#floodlightActivityGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroupsListResponse".
-    "floodlightActivityGroups": [ # Floodlight activity group collection.
-      { # Contains properties of a Floodlight activity group.
-          "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-          "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-          "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-          "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-          "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight activity group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity Group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight activity group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.floodlightConfigurations.html b/docs/dyn/dfareporting_v2_4.floodlightConfigurations.html
deleted file mode 100644
index 1b1a7cf..0000000
--- a/docs/dyn/dfareporting_v2_4.floodlightConfigurations.html
+++ /dev/null
@@ -1,514 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.floodlightConfigurations.html">floodlightConfigurations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight configuration by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight configurations, possibly filtered.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight configuration. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight configuration.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight configuration by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight configuration ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, ids=None)</code>
-  <pre>Retrieves a list of floodlight configurations, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  ids: string, Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Configuration List Response
-    "floodlightConfigurations": [ # Floodlight configuration collection.
-      { # Contains properties of a Floodlight configuration.
-          "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-          "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-          "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-            "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-            "imageTagEnabled": True or False, # Whether image tags are enabled.
-          },
-          "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-          "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-              #
-              # Acceptable values are:
-              # - "ORD"
-              # - "NUM"
-            "A String",
-          ],
-          "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-            "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-            "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-          },
-          "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-          "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-          "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-          "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-          "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-            { # Third Party Authentication Token
-              "name": "A String", # Name of the third-party authentication token.
-              "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-            },
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-          "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-            { # User Defined Variable configuration.
-              "dataType": "A String", # Data type for the variable. This is a required field.
-              "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-              "variableType": "A String", # Variable name in the tag. This is a required field.
-            },
-          ],
-          "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#floodlightConfigurationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfigurationsListResponse".
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight configuration. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight configuration ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight configuration.
-    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-      "imageTagEnabled": True or False, # Whether image tags are enabled.
-    },
-    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
-    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-    },
-    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-    "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-    "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-      { # Third Party Authentication Token
-        "name": "A String", # Name of the third-party authentication token.
-        "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-      },
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-      { # User Defined Variable configuration.
-        "dataType": "A String", # Data type for the variable. This is a required field.
-        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-        "variableType": "A String", # Variable name in the tag. This is a required field.
-      },
-    ],
-    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight configuration.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight configuration.
-    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-      "imageTagEnabled": True or False, # Whether image tags are enabled.
-    },
-    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
-    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-    },
-    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-    "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-    "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-      { # Third Party Authentication Token
-        "name": "A String", # Name of the third-party authentication token.
-        "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-      },
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-      { # User Defined Variable configuration.
-        "dataType": "A String", # Data type for the variable. This is a required field.
-        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-        "variableType": "A String", # Variable name in the tag. This is a required field.
-      },
-    ],
-    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.html b/docs/dyn/dfareporting_v2_4.html
deleted file mode 100644
index 74ca9bc..0000000
--- a/docs/dyn/dfareporting_v2_4.html
+++ /dev/null
@@ -1,373 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.accountActiveAdSummaries.html">accountActiveAdSummaries()</a></code>
-</p>
-<p class="firstline">Returns the accountActiveAdSummaries Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.accountPermissionGroups.html">accountPermissionGroups()</a></code>
-</p>
-<p class="firstline">Returns the accountPermissionGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.accountPermissions.html">accountPermissions()</a></code>
-</p>
-<p class="firstline">Returns the accountPermissions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.accountUserProfiles.html">accountUserProfiles()</a></code>
-</p>
-<p class="firstline">Returns the accountUserProfiles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.accounts.html">accounts()</a></code>
-</p>
-<p class="firstline">Returns the accounts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.ads.html">ads()</a></code>
-</p>
-<p class="firstline">Returns the ads Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.advertiserGroups.html">advertiserGroups()</a></code>
-</p>
-<p class="firstline">Returns the advertiserGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.advertisers.html">advertisers()</a></code>
-</p>
-<p class="firstline">Returns the advertisers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.browsers.html">browsers()</a></code>
-</p>
-<p class="firstline">Returns the browsers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.campaignCreativeAssociations.html">campaignCreativeAssociations()</a></code>
-</p>
-<p class="firstline">Returns the campaignCreativeAssociations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.campaigns.html">campaigns()</a></code>
-</p>
-<p class="firstline">Returns the campaigns Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.changeLogs.html">changeLogs()</a></code>
-</p>
-<p class="firstline">Returns the changeLogs Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.cities.html">cities()</a></code>
-</p>
-<p class="firstline">Returns the cities Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.connectionTypes.html">connectionTypes()</a></code>
-</p>
-<p class="firstline">Returns the connectionTypes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.contentCategories.html">contentCategories()</a></code>
-</p>
-<p class="firstline">Returns the contentCategories Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.countries.html">countries()</a></code>
-</p>
-<p class="firstline">Returns the countries Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.creativeAssets.html">creativeAssets()</a></code>
-</p>
-<p class="firstline">Returns the creativeAssets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.creativeFieldValues.html">creativeFieldValues()</a></code>
-</p>
-<p class="firstline">Returns the creativeFieldValues Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.creativeFields.html">creativeFields()</a></code>
-</p>
-<p class="firstline">Returns the creativeFields Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.creativeGroups.html">creativeGroups()</a></code>
-</p>
-<p class="firstline">Returns the creativeGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.creatives.html">creatives()</a></code>
-</p>
-<p class="firstline">Returns the creatives Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.dimensionValues.html">dimensionValues()</a></code>
-</p>
-<p class="firstline">Returns the dimensionValues Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.directorySiteContacts.html">directorySiteContacts()</a></code>
-</p>
-<p class="firstline">Returns the directorySiteContacts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.directorySites.html">directorySites()</a></code>
-</p>
-<p class="firstline">Returns the directorySites Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.eventTags.html">eventTags()</a></code>
-</p>
-<p class="firstline">Returns the eventTags Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.files.html">files()</a></code>
-</p>
-<p class="firstline">Returns the files Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.floodlightActivities.html">floodlightActivities()</a></code>
-</p>
-<p class="firstline">Returns the floodlightActivities Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.floodlightActivityGroups.html">floodlightActivityGroups()</a></code>
-</p>
-<p class="firstline">Returns the floodlightActivityGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.floodlightConfigurations.html">floodlightConfigurations()</a></code>
-</p>
-<p class="firstline">Returns the floodlightConfigurations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.inventoryItems.html">inventoryItems()</a></code>
-</p>
-<p class="firstline">Returns the inventoryItems Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.landingPages.html">landingPages()</a></code>
-</p>
-<p class="firstline">Returns the landingPages Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.metros.html">metros()</a></code>
-</p>
-<p class="firstline">Returns the metros Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.mobileCarriers.html">mobileCarriers()</a></code>
-</p>
-<p class="firstline">Returns the mobileCarriers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.operatingSystemVersions.html">operatingSystemVersions()</a></code>
-</p>
-<p class="firstline">Returns the operatingSystemVersions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.operatingSystems.html">operatingSystems()</a></code>
-</p>
-<p class="firstline">Returns the operatingSystems Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.orderDocuments.html">orderDocuments()</a></code>
-</p>
-<p class="firstline">Returns the orderDocuments Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.orders.html">orders()</a></code>
-</p>
-<p class="firstline">Returns the orders Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.placementGroups.html">placementGroups()</a></code>
-</p>
-<p class="firstline">Returns the placementGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.placementStrategies.html">placementStrategies()</a></code>
-</p>
-<p class="firstline">Returns the placementStrategies Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.placements.html">placements()</a></code>
-</p>
-<p class="firstline">Returns the placements Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.platformTypes.html">platformTypes()</a></code>
-</p>
-<p class="firstline">Returns the platformTypes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.postalCodes.html">postalCodes()</a></code>
-</p>
-<p class="firstline">Returns the postalCodes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.projects.html">projects()</a></code>
-</p>
-<p class="firstline">Returns the projects Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.regions.html">regions()</a></code>
-</p>
-<p class="firstline">Returns the regions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.remarketingListShares.html">remarketingListShares()</a></code>
-</p>
-<p class="firstline">Returns the remarketingListShares Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.remarketingLists.html">remarketingLists()</a></code>
-</p>
-<p class="firstline">Returns the remarketingLists Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.reports.html">reports()</a></code>
-</p>
-<p class="firstline">Returns the reports Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.sites.html">sites()</a></code>
-</p>
-<p class="firstline">Returns the sites Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.sizes.html">sizes()</a></code>
-</p>
-<p class="firstline">Returns the sizes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.subaccounts.html">subaccounts()</a></code>
-</p>
-<p class="firstline">Returns the subaccounts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.targetableRemarketingLists.html">targetableRemarketingLists()</a></code>
-</p>
-<p class="firstline">Returns the targetableRemarketingLists Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.userProfiles.html">userProfiles()</a></code>
-</p>
-<p class="firstline">Returns the userProfiles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.userRolePermissionGroups.html">userRolePermissionGroups()</a></code>
-</p>
-<p class="firstline">Returns the userRolePermissionGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.userRolePermissions.html">userRolePermissions()</a></code>
-</p>
-<p class="firstline">Returns the userRolePermissions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.userRoles.html">userRoles()</a></code>
-</p>
-<p class="firstline">Returns the userRoles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.inventoryItems.html b/docs/dyn/dfareporting_v2_4.inventoryItems.html
deleted file mode 100644
index a280c07..0000000
--- a/docs/dyn/dfareporting_v2_4.inventoryItems.html
+++ /dev/null
@@ -1,250 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.inventoryItems.html">inventoryItems</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one inventory item by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, pageToken=None, inPlan=None, sortOrder=None, type=None, orderId=None, maxResults=None, siteId=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of inventory items, possibly filtered.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one inventory item by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  id: string, Inventory item ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a buy from the DoubleClick Planning inventory store.
-    "orderId": "A String", # Order ID of this inventory item.
-    "pricing": { # Pricing Information # Pricing of this inventory item.
-      "groupType": "A String", # Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.
-      "startDate": "A String", # Start date of this inventory item.
-      "endDate": "A String", # End date of this inventory item.
-      "pricingType": "A String", # Pricing type of this inventory item.
-      "flights": [ # Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.
-        { # Flight
-          "rateOrCost": "A String", # Rate or cost of this flight.
-          "startDate": "A String", # Inventory item flight start date.
-          "units": "A String", # Units of this flight.
-          "endDate": "A String", # Inventory item flight end date.
-        },
-      ],
-      "capCostType": "A String", # Cap cost type of this inventory item.
-    },
-    "kind": "dfareporting#inventoryItem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItem".
-    "negotiationChannelId": "A String", # Negotiation channel ID of this inventory item.
-    "subaccountId": "A String", # Subaccount ID of this inventory item.
-    "name": "A String", # Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.
-    "estimatedClickThroughRate": "A String", # Estimated click-through rate of this inventory item.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this inventory item.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "estimatedConversionRate": "A String", # Estimated conversion rate of this inventory item.
-    "inPlan": True or False, # Whether this inventory item is in plan.
-    "id": "A String", # ID of this inventory item.
-    "advertiserId": "A String", # Advertiser ID of this inventory item.
-    "siteId": "A String", # ID of the site this inventory item is associated with.
-    "adSlots": [ # Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.
-      { # Ad Slot
-        "comment": "A String", # Comment for this ad slot.
-        "linkedPlacementId": "A String", # ID of the placement from an external platform that is linked to this ad slot.
-        "name": "A String", # Name of this ad slot.
-        "primary": True or False, # Primary ad slot of a roadblock inventory item.
-        "height": "A String", # Height of this ad slot.
-        "width": "A String", # Width of this ad slot.
-        "paymentSourceType": "A String", # Payment source type of this ad slot.
-        "compatibility": "A String", # Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.
-      },
-    ],
-    "projectId": "A String", # Project ID of this inventory item.
-    "rfpId": "A String", # RFP ID of this inventory item.
-    "type": "A String", # Type of inventory item.
-    "contentCategoryId": "A String", # Content category ID of this inventory item.
-    "placementStrategyId": "A String", # Placement strategy ID of this inventory item.
-    "accountId": "A String", # Account ID of this inventory item.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, pageToken=None, inPlan=None, sortOrder=None, type=None, orderId=None, maxResults=None, siteId=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of inventory items, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  inPlan: boolean, Select only inventory items that are in plan.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only inventory items with this type.
-    Allowed values
-      PLANNING_PLACEMENT_TYPE_CREDIT - 
-      PLANNING_PLACEMENT_TYPE_REGULAR - 
-  orderId: string, Select only inventory items that belong to specified orders. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  siteId: string, Select only inventory items that are associated with these sites. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only inventory items with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Inventory item List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#inventoryItemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItemsListResponse".
-    "inventoryItems": [ # Inventory item collection
-      { # Represents a buy from the DoubleClick Planning inventory store.
-        "orderId": "A String", # Order ID of this inventory item.
-        "pricing": { # Pricing Information # Pricing of this inventory item.
-          "groupType": "A String", # Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.
-          "startDate": "A String", # Start date of this inventory item.
-          "endDate": "A String", # End date of this inventory item.
-          "pricingType": "A String", # Pricing type of this inventory item.
-          "flights": [ # Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.
-            { # Flight
-              "rateOrCost": "A String", # Rate or cost of this flight.
-              "startDate": "A String", # Inventory item flight start date.
-              "units": "A String", # Units of this flight.
-              "endDate": "A String", # Inventory item flight end date.
-            },
-          ],
-          "capCostType": "A String", # Cap cost type of this inventory item.
-        },
-        "kind": "dfareporting#inventoryItem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItem".
-        "negotiationChannelId": "A String", # Negotiation channel ID of this inventory item.
-        "subaccountId": "A String", # Subaccount ID of this inventory item.
-        "name": "A String", # Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.
-        "estimatedClickThroughRate": "A String", # Estimated click-through rate of this inventory item.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this inventory item.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "estimatedConversionRate": "A String", # Estimated conversion rate of this inventory item.
-        "inPlan": True or False, # Whether this inventory item is in plan.
-        "id": "A String", # ID of this inventory item.
-        "advertiserId": "A String", # Advertiser ID of this inventory item.
-        "siteId": "A String", # ID of the site this inventory item is associated with.
-        "adSlots": [ # Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.
-          { # Ad Slot
-            "comment": "A String", # Comment for this ad slot.
-            "linkedPlacementId": "A String", # ID of the placement from an external platform that is linked to this ad slot.
-            "name": "A String", # Name of this ad slot.
-            "primary": True or False, # Primary ad slot of a roadblock inventory item.
-            "height": "A String", # Height of this ad slot.
-            "width": "A String", # Width of this ad slot.
-            "paymentSourceType": "A String", # Payment source type of this ad slot.
-            "compatibility": "A String", # Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.
-          },
-        ],
-        "projectId": "A String", # Project ID of this inventory item.
-        "rfpId": "A String", # RFP ID of this inventory item.
-        "type": "A String", # Type of inventory item.
-        "contentCategoryId": "A String", # Content category ID of this inventory item.
-        "placementStrategyId": "A String", # Placement strategy ID of this inventory item.
-        "accountId": "A String", # Account ID of this inventory item.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.landingPages.html b/docs/dyn/dfareporting_v2_4.landingPages.html
deleted file mode 100644
index e2c37b9..0000000
--- a/docs/dyn/dfareporting_v2_4.landingPages.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.landingPages.html">landingPages</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, campaignId, id)</a></code></p>
-<p class="firstline">Deletes an existing campaign landing page.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, campaignId, id)</a></code></p>
-<p class="firstline">Gets one campaign landing page by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Inserts a new landing page for the specified campaign.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId)</a></code></p>
-<p class="firstline">Retrieves the list of landing pages for the specified campaign.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, campaignId, id, body)</a></code></p>
-<p class="firstline">Updates an existing campaign landing page. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Updates an existing campaign landing page.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, campaignId, id)</code>
-  <pre>Deletes an existing campaign landing page.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, campaignId, id)</code>
-  <pre>Gets one campaign landing page by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, campaignId, body)</code>
-  <pre>Inserts a new landing page for the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId)</code>
-  <pre>Retrieves the list of landing pages for the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Landing Page List Response
-    "kind": "dfareporting#landingPagesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPagesListResponse".
-    "landingPages": [ # Landing page collection
-      { # Contains information about where a user's browser is taken after the user clicks an ad.
-          "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-          "url": "A String", # URL of this landing page. This is a required field.
-          "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-          "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, campaignId, id, body)</code>
-  <pre>Updates an existing campaign landing page. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, campaignId, body)</code>
-  <pre>Updates an existing campaign landing page.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.metros.html b/docs/dyn/dfareporting_v2_4.metros.html
deleted file mode 100644
index 1b40ec6..0000000
--- a/docs/dyn/dfareporting_v2_4.metros.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.metros.html">metros</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of metros.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of metros.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Metro List Response
-    "kind": "dfareporting#metrosListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metrosListResponse".
-    "metros": [ # Metro collection.
-      { # Contains information about a metro region that can be targeted by ads.
-        "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-        "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-        "name": "A String", # Name of this metro region.
-        "countryCode": "A String", # Country code of the country to which this metro region belongs.
-        "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-        "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-        "dartId": "A String", # DART ID of this metro region.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.mobileCarriers.html b/docs/dyn/dfareporting_v2_4.mobileCarriers.html
deleted file mode 100644
index 3b89e0c..0000000
--- a/docs/dyn/dfareporting_v2_4.mobileCarriers.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.mobileCarriers.html">mobileCarriers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one mobile carrier by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of mobile carriers.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one mobile carrier by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Mobile carrier ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a mobile carrier that can be targeted by ads.
-    "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-    "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-    "id": "A String", # ID of this mobile carrier.
-    "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-    "name": "A String", # Name of this mobile carrier.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of mobile carriers.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Mobile Carrier List Response
-    "kind": "dfareporting#mobileCarriersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarriersListResponse".
-    "mobileCarriers": [ # Mobile carrier collection.
-      { # Contains information about a mobile carrier that can be targeted by ads.
-        "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-        "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-        "id": "A String", # ID of this mobile carrier.
-        "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-        "name": "A String", # Name of this mobile carrier.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.operatingSystemVersions.html b/docs/dyn/dfareporting_v2_4.operatingSystemVersions.html
deleted file mode 100644
index d07674e..0000000
--- a/docs/dyn/dfareporting_v2_4.operatingSystemVersions.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.operatingSystemVersions.html">operatingSystemVersions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one operating system version by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of operating system versions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one operating system version by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Operating system version ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a particular version of an operating system that can be targeted by ads.
-    "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-    "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-    "name": "A String", # Name of this operating system version.
-    "id": "A String", # ID of this operating system version.
-    "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-      "mobile": True or False, # Whether this operating system is for mobile.
-      "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-      "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-      "name": "A String", # Name of this operating system.
-      "desktop": True or False, # Whether this operating system is for desktop.
-    },
-    "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of operating system versions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Operating System Version List Response
-    "kind": "dfareporting#operatingSystemVersionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersionsListResponse".
-    "operatingSystemVersions": [ # Operating system version collection.
-      { # Contains information about a particular version of an operating system that can be targeted by ads.
-        "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-        "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-        "name": "A String", # Name of this operating system version.
-        "id": "A String", # ID of this operating system version.
-        "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-        "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.operatingSystems.html b/docs/dyn/dfareporting_v2_4.operatingSystems.html
deleted file mode 100644
index da7183b..0000000
--- a/docs/dyn/dfareporting_v2_4.operatingSystems.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.operatingSystems.html">operatingSystems</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, dartId)</a></code></p>
-<p class="firstline">Gets one operating system by DART ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of operating systems.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, dartId)</code>
-  <pre>Gets one operating system by DART ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartId: string, Operating system DART ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about an operating system that can be targeted by ads.
-    "mobile": True or False, # Whether this operating system is for mobile.
-    "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-    "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-    "name": "A String", # Name of this operating system.
-    "desktop": True or False, # Whether this operating system is for desktop.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of operating systems.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Operating System List Response
-    "kind": "dfareporting#operatingSystemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemsListResponse".
-    "operatingSystems": [ # Operating system collection.
-      { # Contains information about an operating system that can be targeted by ads.
-        "mobile": True or False, # Whether this operating system is for mobile.
-        "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-        "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-        "name": "A String", # Name of this operating system.
-        "desktop": True or False, # Whether this operating system is for desktop.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.orderDocuments.html b/docs/dyn/dfareporting_v2_4.orderDocuments.html
deleted file mode 100644
index a8acfc5..0000000
--- a/docs/dyn/dfareporting_v2_4.orderDocuments.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.orderDocuments.html">orderDocuments</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one order document by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, pageToken=None, sortOrder=None, orderId=None, maxResults=None, siteId=None, approved=None, searchString=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of order documents, possibly filtered.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one order document by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  id: string, Order document ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DoubleClick Planning order document.
-    "orderId": "A String", # ID of the order from which this order document is created.
-    "approvedByUserProfileIds": [ # IDs of users who have approved this order document.
-      "A String",
-    ],
-    "kind": "dfareporting#orderDocument", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocument".
-    "subaccountId": "A String", # Subaccount ID of this order document.
-    "effectiveDate": "A String", # Effective date of this order document.
-    "lastSentTime": "A String", # Timestamp of the last email sent with this order document.
-    "lastSentRecipients": [ # List of email addresses that received the last sent document.
-      "A String",
-    ],
-    "title": "A String", # Title of this order document.
-    "amendedOrderDocumentId": "A String", # The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.
-    "signed": True or False, # Whether this order document has been signed.
-    "createdInfo": { # Modification timestamp. # Information about the creation of this order document.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "advertiserId": "A String", # Advertiser ID of this order document.
-    "projectId": "A String", # Project ID of this order document.
-    "cancelled": True or False, # Whether this order document is cancelled.
-    "type": "A String", # Type of this order document
-    "id": "A String", # ID of this order document.
-    "accountId": "A String", # Account ID of this order document.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, pageToken=None, sortOrder=None, orderId=None, maxResults=None, siteId=None, approved=None, searchString=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of order documents, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  orderId: string, Select only order documents for specified orders. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  siteId: string, Select only order documents that are associated with these sites. (repeated)
-  approved: boolean, Select only order documents that have been approved by at least one user.
-  searchString: string, Allows searching for order documents by name or ID. Wildcards (*) are allowed. For example, "orderdocument*2015" will return order documents with names like "orderdocument June 2015", "orderdocument April 2015", or simply "orderdocument 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "orderdocument" will match order documents with name "my orderdocument", "orderdocument 2015", or simply "orderdocument".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only order documents with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Order document List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#orderDocumentsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocumentsListResponse".
-    "orderDocuments": [ # Order document collection
-      { # Contains properties of a DoubleClick Planning order document.
-        "orderId": "A String", # ID of the order from which this order document is created.
-        "approvedByUserProfileIds": [ # IDs of users who have approved this order document.
-          "A String",
-        ],
-        "kind": "dfareporting#orderDocument", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocument".
-        "subaccountId": "A String", # Subaccount ID of this order document.
-        "effectiveDate": "A String", # Effective date of this order document.
-        "lastSentTime": "A String", # Timestamp of the last email sent with this order document.
-        "lastSentRecipients": [ # List of email addresses that received the last sent document.
-          "A String",
-        ],
-        "title": "A String", # Title of this order document.
-        "amendedOrderDocumentId": "A String", # The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.
-        "signed": True or False, # Whether this order document has been signed.
-        "createdInfo": { # Modification timestamp. # Information about the creation of this order document.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "advertiserId": "A String", # Advertiser ID of this order document.
-        "projectId": "A String", # Project ID of this order document.
-        "cancelled": True or False, # Whether this order document is cancelled.
-        "type": "A String", # Type of this order document
-        "id": "A String", # ID of this order document.
-        "accountId": "A String", # Account ID of this order document.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.orders.html b/docs/dyn/dfareporting_v2_4.orders.html
deleted file mode 100644
index a966db5..0000000
--- a/docs/dyn/dfareporting_v2_4.orders.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.orders.html">orders</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one order by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None, siteId=None)</a></code></p>
-<p class="firstline">Retrieves a list of orders, possibly filtered.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one order by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for orders. (required)
-  id: string, Order ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Describes properties of a DoubleClick Planning order.
-    "termsAndConditions": "A String", # Terms and conditions of this order.
-    "kind": "dfareporting#order", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#order".
-    "sellerOrganizationName": "A String", # Name of the seller organization.
-    "subaccountId": "A String", # Subaccount ID of this order.
-    "name": "A String", # Name of this order.
-    "buyerInvoiceId": "A String", # Buyer invoice ID associated with this order.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this order.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "notes": "A String", # Notes of this order.
-    "contacts": [ # Contacts for this order.
-      { # Contact of an order.
-        "signatureUserProfileId": "A String", # ID of the user profile containing the signature that will be embedded into order documents.
-        "contactTitle": "A String", # Title of this contact.
-        "contactInfo": "A String", # Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.
-        "contactName": "A String", # Name of this contact.
-        "contactType": "A String", # Type of this contact.
-      },
-    ],
-    "buyerOrganizationName": "A String", # Name of the buyer organization.
-    "comments": "A String", # Comments in this order.
-    "advertiserId": "A String", # Advertiser ID of this order.
-    "approverUserProfileIds": [ # IDs for users that have to approve documents created for this order.
-      "A String",
-    ],
-    "siteId": [ # Site IDs this order is associated with.
-      "A String",
-    ],
-    "sellerOrderId": "A String", # Seller order ID associated with this order.
-    "projectId": "A String", # Project ID of this order.
-    "siteNames": [ # Free-form site names this order is associated with.
-      "A String",
-    ],
-    "planningTermId": "A String", # ID of the terms and conditions template used in this order.
-    "id": "A String", # ID of this order. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this order.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None, siteId=None)</code>
-  <pre>Retrieves a list of orders, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for orders. (required)
-  searchString: string, Allows searching for orders by name or ID. Wildcards (*) are allowed. For example, "order*2015" will return orders with names like "order June 2015", "order April 2015", or simply "order 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "order" will match orders with name "my order", "order 2015", or simply "order".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only orders with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  siteId: string, Select only orders that are associated with these site IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Order List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#ordersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ordersListResponse".
-    "orders": [ # Order collection.
-      { # Describes properties of a DoubleClick Planning order.
-        "termsAndConditions": "A String", # Terms and conditions of this order.
-        "kind": "dfareporting#order", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#order".
-        "sellerOrganizationName": "A String", # Name of the seller organization.
-        "subaccountId": "A String", # Subaccount ID of this order.
-        "name": "A String", # Name of this order.
-        "buyerInvoiceId": "A String", # Buyer invoice ID associated with this order.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this order.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "notes": "A String", # Notes of this order.
-        "contacts": [ # Contacts for this order.
-          { # Contact of an order.
-            "signatureUserProfileId": "A String", # ID of the user profile containing the signature that will be embedded into order documents.
-            "contactTitle": "A String", # Title of this contact.
-            "contactInfo": "A String", # Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.
-            "contactName": "A String", # Name of this contact.
-            "contactType": "A String", # Type of this contact.
-          },
-        ],
-        "buyerOrganizationName": "A String", # Name of the buyer organization.
-        "comments": "A String", # Comments in this order.
-        "advertiserId": "A String", # Advertiser ID of this order.
-        "approverUserProfileIds": [ # IDs for users that have to approve documents created for this order.
-          "A String",
-        ],
-        "siteId": [ # Site IDs this order is associated with.
-          "A String",
-        ],
-        "sellerOrderId": "A String", # Seller order ID associated with this order.
-        "projectId": "A String", # Project ID of this order.
-        "siteNames": [ # Free-form site names this order is associated with.
-          "A String",
-        ],
-        "planningTermId": "A String", # ID of the terms and conditions template used in this order.
-        "id": "A String", # ID of this order. This is a read-only, auto-generated field.
-        "accountId": "A String", # Account ID of this order.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.placementGroups.html b/docs/dyn/dfareporting_v2_4.placementGroups.html
deleted file mode 100644
index 310997e..0000000
--- a/docs/dyn/dfareporting_v2_4.placementGroups.html
+++ /dev/null
@@ -1,977 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.placementGroups.html">placementGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, searchString=None, minEndDate=None, directorySiteIds=None, ids=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of placement groups, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, searchString=None, minEndDate=None, directorySiteIds=None, ids=None, sortField=None)</code>
-  <pre>Retrieves a list of placement groups, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  siteIds: string, Select only placement groups that are associated with these sites. (repeated)
-  placementGroupType: string, Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.
-    Allowed values
-      PLACEMENT_PACKAGE - 
-      PLACEMENT_ROADBLOCK - 
-  pricingTypes: string, Select only placement groups with these pricing types. (repeated)
-    Allowed values
-      PRICING_TYPE_CPA - 
-      PRICING_TYPE_CPC - 
-      PRICING_TYPE_CPM - 
-      PRICING_TYPE_CPM_ACTIVEVIEW - 
-      PRICING_TYPE_FLAT_RATE_CLICKS - 
-      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
-  campaignIds: string, Select only placement groups that belong to these campaigns. (repeated)
-  advertiserIds: string, Select only placement groups that belong to these advertisers. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as "yyyy-MM-dd".
-  placementStrategyIds: string, Select only placement groups that are associated with these placement strategies. (repeated)
-  contentCategoryIds: string, Select only placement groups that are associated with these content categories. (repeated)
-  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
-  maxResults: integer, Maximum number of results to return.
-  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as "yyyy-MM-dd".
-  searchString: string, Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placement groups with names like "placement group June 2015", "placement group May 2015", or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementgroup" will match placement groups with name "my placementgroup", "placementgroup 2015", or simply "placementgroup".
-  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as "yyyy-MM-dd".
-  directorySiteIds: string, Select only placement groups that are associated with these directory sites. (repeated)
-  ids: string, Select only placement groups with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # Placement Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroupsListResponse".
-    "placementGroups": [ # Placement group collection.
-      { # Contains properties of a package or roadblock.
-          "comment": "A String", # Comments for this placement group.
-          "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-          "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-          "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-          "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-          "archived": True or False, # Whether this placement group is archived.
-          "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-            "A String",
-          ],
-          "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-          "externalId": "A String", # External ID for this placement.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-          "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-          "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-            "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-            "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-            "capCostOption": "A String", # Placement cap cost option.
-            "pricingPeriods": [ # Pricing periods for this placement.
-              { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-                "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-                "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-                "pricingComment": "A String", # Comments for this pricing period.
-              },
-            ],
-            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-          },
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.placementStrategies.html b/docs/dyn/dfareporting_v2_4.placementStrategies.html
deleted file mode 100644
index a2f1cb5..0000000
--- a/docs/dyn/dfareporting_v2_4.placementStrategies.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.placementStrategies.html">placementStrategies</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing placement strategy.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement strategy by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement strategy.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of placement strategies, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement strategy. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement strategy.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement strategy by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of placement strategies, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "placementstrategy*2015" will return objects with names like "placementstrategy June 2015", "placementstrategy April 2015", or simply "placementstrategy 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementstrategy" will match objects with name "my placementstrategy", "placementstrategy 2015", or simply "placementstrategy".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only placement strategies with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Placement Strategy List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementStrategiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategiesListResponse".
-    "placementStrategies": [ # Placement strategy collection.
-      { # Contains properties of a placement strategy.
-          "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-          "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-          "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement strategy. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.placements.html b/docs/dyn/dfareporting_v2_4.placements.html
deleted file mode 100644
index 7e04a57..0000000
--- a/docs/dyn/dfareporting_v2_4.placements.html
+++ /dev/null
@@ -1,1360 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.placements.html">placements</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</a></code></p>
-<p class="firstline">Generates tags for a placement.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, advertiserIds=None, sizeIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, compatibilities=None, searchString=None, minEndDate=None, directorySiteIds=None, sortField=None, ids=None, groupIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of placements, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</code>
-  <pre>Generates tags for a placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Generate placements belonging to this campaign. This is a required field.
-  tagFormats: string, Tag formats to generate for these placements. (repeated)
-    Allowed values
-      PLACEMENT_TAG_CLICK_COMMANDS - 
-      PLACEMENT_TAG_IFRAME_ILAYER - 
-      PLACEMENT_TAG_IFRAME_JAVASCRIPT - 
-      PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
-      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3 - 
-      PLACEMENT_TAG_INTERNAL_REDIRECT - 
-      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
-      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT - 
-      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT - 
-      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_JAVASCRIPT - 
-      PLACEMENT_TAG_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_STANDARD - 
-      PLACEMENT_TAG_TRACKING - 
-      PLACEMENT_TAG_TRACKING_IFRAME - 
-      PLACEMENT_TAG_TRACKING_JAVASCRIPT - 
-  placementIds: string, Generate tags for these placements. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Placement GenerateTags Response
-    "kind": "dfareporting#placementsGenerateTagsResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsGenerateTagsResponse".
-    "placementTags": [ # Set of generated tags for the specified placements.
-      { # Placement Tag
-        "tagDatas": [ # Tags generated for this placement.
-          { # Placement Tag Data
-            "clickTag": "A String", # Tag string to record a click.
-            "impressionTag": "A String", # Tag string for serving an ad.
-            "creativeId": "A String", # Creative associated with this placement tag.
-            "adId": "A String", # Ad associated with this placement tag.
-            "format": "A String", # TagData tag format of this tag.
-          },
-        ],
-        "placementId": "A String", # Placement ID
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, advertiserIds=None, sizeIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, compatibilities=None, searchString=None, minEndDate=None, directorySiteIds=None, sortField=None, ids=None, groupIds=None)</code>
-  <pre>Retrieves a list of placements, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  siteIds: string, Select only placements that are associated with these sites. (repeated)
-  paymentSource: string, Select only placements with this payment source.
-    Allowed values
-      PLACEMENT_AGENCY_PAID - 
-      PLACEMENT_PUBLISHER_PAID - 
-  pricingTypes: string, Select only placements with these pricing types. (repeated)
-    Allowed values
-      PRICING_TYPE_CPA - 
-      PRICING_TYPE_CPC - 
-      PRICING_TYPE_CPM - 
-      PRICING_TYPE_CPM_ACTIVEVIEW - 
-      PRICING_TYPE_FLAT_RATE_CLICKS - 
-      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
-  campaignIds: string, Select only placements that belong to these campaigns. (repeated)
-  advertiserIds: string, Select only placements that belong to these advertisers. (repeated)
-  sizeIds: string, Select only placements that are associated with these sizes. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as "yyyy-MM-dd".
-  placementStrategyIds: string, Select only placements that are associated with these placement strategies. (repeated)
-  contentCategoryIds: string, Select only placements that are associated with these content categories. (repeated)
-  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
-  maxResults: integer, Maximum number of results to return.
-  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as "yyyy-MM-dd".
-  compatibilities: string, Select only placements that are associated with these compatibilities. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. (repeated)
-    Allowed values
-      APP - 
-      APP_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_INTERSTITIAL - 
-      IN_STREAM_VIDEO - 
-  searchString: string, Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placements with names like "placement June 2015", "placement May 2015", or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placement" will match placements with name "my placement", "placement 2015", or simply "placement".
-  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as "yyyy-MM-dd".
-  directorySiteIds: string, Select only placements that are associated with these directory sites. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only placements with these IDs. (repeated)
-  groupIds: string, Select only placements that belong to these placement groups. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Placement List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsListResponse".
-    "placements": [ # Placement collection.
-      { # Contains properties of a placement.
-          "comment": "A String", # Comments for this placement.
-          "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-          "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-          "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-          "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this placement. This field can be left blank.
-          "archived": True or False, # Whether this placement is archived.
-          "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-              # Acceptable values are:
-              # - "PLACEMENT_TAG_STANDARD"
-              # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-              # - "PLACEMENT_TAG_IFRAME_ILAYER"
-              # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-              # - "PLACEMENT_TAG_JAVASCRIPT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-              # - "PLACEMENT_TAG_CLICK_COMMANDS"
-              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-              # - "PLACEMENT_TAG_TRACKING"
-              # - "PLACEMENT_TAG_TRACKING_IFRAME"
-              # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-            "A String",
-          ],
-          "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-          "tagSetting": { # Tag Settings # Tag settings for this placement.
-            "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-            "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-            "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-            "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-          },
-          "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-          "externalId": "A String", # External ID for this placement.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-          "status": "A String", # Third-party placement status.
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-          "placementGroupId": "A String", # ID of this placement's group, if applicable.
-          "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-          "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-          "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-          "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-            "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-            "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-            "capCostOption": "A String", # Placement cap cost option.
-            "pricingPeriods": [ # Pricing periods for this placement.
-              { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-                "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-                "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-                "pricingComment": "A String", # Comments for this pricing period.
-              },
-            ],
-            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-          },
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.platformTypes.html b/docs/dyn/dfareporting_v2_4.platformTypes.html
deleted file mode 100644
index 5250217..0000000
--- a/docs/dyn/dfareporting_v2_4.platformTypes.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.platformTypes.html">platformTypes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one platform type by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of platform types.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one platform type by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Platform type ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a platform type that can be targeted by ads.
-    "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-    "id": "A String", # ID of this platform type.
-    "name": "A String", # Name of this platform type.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of platform types.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Platform Type List Response
-    "kind": "dfareporting#platformTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformTypesListResponse".
-    "platformTypes": [ # Platform type collection.
-      { # Contains information about a platform type that can be targeted by ads.
-        "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-        "id": "A String", # ID of this platform type.
-        "name": "A String", # Name of this platform type.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.postalCodes.html b/docs/dyn/dfareporting_v2_4.postalCodes.html
deleted file mode 100644
index 90efd3f..0000000
--- a/docs/dyn/dfareporting_v2_4.postalCodes.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.postalCodes.html">postalCodes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, code)</a></code></p>
-<p class="firstline">Gets one postal code by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of postal codes.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, code)</code>
-  <pre>Gets one postal code by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  code: string, Postal code ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a postal code that can be targeted by ads.
-    "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-    "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-    "code": "A String", # Postal code. This is equivalent to the id field.
-    "id": "A String", # ID of this postal code.
-    "countryCode": "A String", # Country code of the country to which this postal code belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of postal codes.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Postal Code List Response
-    "kind": "dfareporting#postalCodesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCodesListResponse".
-    "postalCodes": [ # Postal code collection.
-      { # Contains information about a postal code that can be targeted by ads.
-        "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-        "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-        "code": "A String", # Postal code. This is equivalent to the id field.
-        "id": "A String", # ID of this postal code.
-        "countryCode": "A String", # Country code of the country to which this postal code belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.projects.html b/docs/dyn/dfareporting_v2_4.projects.html
deleted file mode 100644
index 8ea5382..0000000
--- a/docs/dyn/dfareporting_v2_4.projects.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.projects.html">projects</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one project by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of projects, possibly filtered.</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="get">get(profileId, id)</code>
-  <pre>Gets one project by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Project ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DoubleClick Planning project.
-    "startDate": "A String", # Start date of the project.
-    "kind": "dfareporting#project", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#project".
-    "targetConversions": "A String", # Number of conversions that the advertiser is targeting.
-    "endDate": "A String", # End date of the project.
-    "name": "A String", # Name of this project.
-    "targetCpmNanos": "A String", # CPM that the advertiser is targeting.
-    "targetCpcNanos": "A String", # CPC that the advertiser is targeting.
-    "clientBillingCode": "A String", # Client billing code of this project.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this project.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "targetClicks": "A String", # Number of clicks that the advertiser is targeting.
-    "budget": "A String", # Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.
-    "targetCpaNanos": "A String", # CPA that the advertiser is targeting.
-    "advertiserId": "A String", # Advertiser ID of this project.
-    "targetImpressions": "A String", # Number of impressions that the advertiser is targeting.
-    "overview": "A String", # Overview of this project.
-    "audienceAgeGroup": "A String", # Audience age group of this project.
-    "subaccountId": "A String", # Subaccount ID of this project.
-    "audienceGender": "A String", # Audience gender of this project.
-    "id": "A String", # ID of this project. This is a read-only, auto-generated field.
-    "clientName": "A String", # Name of the project client.
-    "accountId": "A String", # Account ID of this project.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of projects, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for projects by name or ID. Wildcards (*) are allowed. For example, "project*2015" will return projects with names like "project June 2015", "project April 2015", or simply "project 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "project" will match projects with name "my project", "project 2015", or simply "project".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only projects with these advertiser IDs. (repeated)
-  ids: string, Select only projects with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Project List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#projectsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#projectsListResponse".
-    "projects": [ # Project collection.
-      { # Contains properties of a DoubleClick Planning project.
-        "startDate": "A String", # Start date of the project.
-        "kind": "dfareporting#project", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#project".
-        "targetConversions": "A String", # Number of conversions that the advertiser is targeting.
-        "endDate": "A String", # End date of the project.
-        "name": "A String", # Name of this project.
-        "targetCpmNanos": "A String", # CPM that the advertiser is targeting.
-        "targetCpcNanos": "A String", # CPC that the advertiser is targeting.
-        "clientBillingCode": "A String", # Client billing code of this project.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this project.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "targetClicks": "A String", # Number of clicks that the advertiser is targeting.
-        "budget": "A String", # Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.
-        "targetCpaNanos": "A String", # CPA that the advertiser is targeting.
-        "advertiserId": "A String", # Advertiser ID of this project.
-        "targetImpressions": "A String", # Number of impressions that the advertiser is targeting.
-        "overview": "A String", # Overview of this project.
-        "audienceAgeGroup": "A String", # Audience age group of this project.
-        "subaccountId": "A String", # Subaccount ID of this project.
-        "audienceGender": "A String", # Audience gender of this project.
-        "id": "A String", # ID of this project. This is a read-only, auto-generated field.
-        "clientName": "A String", # Name of the project client.
-        "accountId": "A String", # Account ID of this project.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.regions.html b/docs/dyn/dfareporting_v2_4.regions.html
deleted file mode 100644
index 6909828..0000000
--- a/docs/dyn/dfareporting_v2_4.regions.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.regions.html">regions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of regions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of regions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Region List Response
-    "regions": [ # Region collection.
-      { # Contains information about a region that can be targeted by ads.
-        "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-        "countryDartId": "A String", # DART ID of the country to which this region belongs.
-        "name": "A String", # Name of this region.
-        "countryCode": "A String", # Country code of the country to which this region belongs.
-        "regionCode": "A String", # Region code.
-        "dartId": "A String", # DART ID of this region.
-      },
-    ],
-    "kind": "dfareporting#regionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#regionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.remarketingListShares.html b/docs/dyn/dfareporting_v2_4.remarketingListShares.html
deleted file mode 100644
index 2c7adf8..0000000
--- a/docs/dyn/dfareporting_v2_4.remarketingListShares.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.remarketingListShares.html">remarketingListShares</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, remarketingListId)</a></code></p>
-<p class="firstline">Gets one remarketing list share by remarketing list ID.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, remarketingListId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list share. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list share.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, remarketingListId)</code>
-  <pre>Gets one remarketing list share by remarketing list ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  remarketingListId: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, remarketingListId, body)</code>
-  <pre>Updates an existing remarketing list share. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  remarketingListId: string, Remarketing list ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-    "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-      "A String",
-    ],
-    "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-    "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing remarketing list share.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-    "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-      "A String",
-    ],
-    "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-    "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.reports.compatibleFields.html b/docs/dyn/dfareporting_v2_4.reports.compatibleFields.html
deleted file mode 100644
index 891a6ab..0000000
--- a/docs/dyn/dfareporting_v2_4.reports.compatibleFields.html
+++ /dev/null
@@ -1,551 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.reports.html">reports</a> . <a href="dfareporting_v2_4.reports.compatibleFields.html">compatibleFields</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#query">query(profileId, body)</a></code></p>
-<p class="firstline">Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="query">query(profileId, body)</code>
-  <pre>Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a response to the queryCompatibleFields method.
-    "kind": "dfareporting#compatibleFields", # The kind of resource this is, in this case dfareporting#compatibleFields.
-    "reachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "REACH". # Contains items that are compatible to be selected for a report of type "REACH".
-      "kind": "dfareporting#reachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "reachByFrequencyMetrics": [ # Metrics which are compatible to be selected in the "reachByFrequencyMetricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-    },
-    "pathToConversionReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "PATH_TO_CONVERSION". # Contains items that are compatible to be selected for a report of type "PATH_TO_CONVERSION".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "perInteractionDimensions": [ # Per-interaction dimensions which are compatible to be selected in the "perInteractionDimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "kind": "dfareporting#pathToConversionReportCompatibleFields", # The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.
-      "conversionDimensions": [ # Conversion dimensions which are compatible to be selected in the "conversionDimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "customFloodlightVariables": [ # Custom floodlight variables which are compatible to be selected in the "customFloodlightVariables" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "crossDimensionReachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH". # Contains items that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # Dimensions which are compatible to be selected in the "breakdown" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#crossDimensionReachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.
-      "overlapMetrics": [ # Metrics which are compatible to be selected in the "overlapMetricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "floodlightReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "FlOODLIGHT". # Contains items that are compatible to be selected for a report of type "FLOODLIGHT".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#floodlightReportCompatibleFields", # The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "reportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "STANDARD". # Contains items that are compatible to be selected for a report of type "STANDARD".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#reportCompatibleFields", # The kind of resource this is, in this case dfareporting#reportCompatibleFields.
-      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.reports.files.html b/docs/dyn/dfareporting_v2_4.reports.files.html
deleted file mode 100644
index 9e07b24..0000000
--- a/docs/dyn/dfareporting_v2_4.reports.files.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.reports.html">reports</a> . <a href="dfareporting_v2_4.reports.files.html">files</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
-<p class="toc_element">
-  <code><a href="#get_media">get_media(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Lists files for a report.</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="get">get(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get_media">get_media(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  The media object as a string.
-
-    </pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</code>
-  <pre>Lists files for a report.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the parent report. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by file ID.
-      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of File resources.
-    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The files returned in this response.
-      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-        "status": "A String", # The status of the report file.
-        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-        "format": "A String", # The output format of the report. Only available once the file is available.
-        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "fileName": "A String", # The filename of the file.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "reportId": "A String", # The ID of the report this file was generated from.
-        "urls": { # The URLs where the completed report file can be downloaded.
-          "browserUrl": "A String", # The URL for downloading the report data through a browser.
-          "apiUrl": "A String", # The URL for downloading the report data through the API.
-        },
-        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-        "id": "A String", # The unique ID of this report file.
-      },
-    ],
-    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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
diff --git a/docs/dyn/dfareporting_v2_4.reports.html b/docs/dyn/dfareporting_v2_4.reports.html
deleted file mode 100644
index 5b1e347..0000000
--- a/docs/dyn/dfareporting_v2_4.reports.html
+++ /dev/null
@@ -1,2795 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.reports.html">reports</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.reports.compatibleFields.html">compatibleFields()</a></code>
-</p>
-<p class="firstline">Returns the compatibleFields Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_4.reports.files.html">files()</a></code>
-</p>
-<p class="firstline">Returns the files Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, reportId)</a></code></p>
-<p class="firstline">Deletes a report by its ID.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, reportId)</a></code></p>
-<p class="firstline">Retrieves a report by its ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Creates a report.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
-<p class="firstline">Retrieves list of reports.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, reportId, body)</a></code></p>
-<p class="firstline">Updates a report. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#run">run(profileId, reportId, synchronous=None)</a></code></p>
-<p class="firstline">Runs a report.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, reportId, body)</a></code></p>
-<p class="firstline">Updates a report.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, reportId)</code>
-  <pre>Deletes a report by its ID.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, reportId)</code>
-  <pre>Retrieves a report by its ID.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Creates a report.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
-  <pre>Retrieves list of reports.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by report ID.
-      LAST_MODIFIED_TIME - Sort by 'lastModifiedTime' field.
-      NAME - Sort by name of reports.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
-    Allowed values
-      ALL - All reports in account.
-      MINE - My reports.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of reports.
-    "nextPageToken": "A String", # Continuation token used to page through reports. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The reports returned in this response.
-      { # Represents a Report resource.
-          "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-            "conversionDimensions": [ # The list of conversion dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "reportProperties": { # The properties of the report.
-              "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-              "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-              "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-              "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-              "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-              "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-              "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-            },
-            "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "customRichMediaEvents": [ # The list of custom rich media events to include.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-          },
-          "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-          "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-          "name": "A String", # The name of the report.
-          "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-            "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-            "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-                # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-            "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-            "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-            "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-            "repeats": "A String", # The interval for which the report is repeated. Note:
-                # - "DAILY" also requires field "every" to be set.
-                # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-                # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-            "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-              "A String",
-            ],
-          },
-          "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-          "ownerProfileId": "A String", # The user profile id of the owner of this report.
-          "reachCriteria": { # The report criteria for a report of type "REACH".
-            "activities": { # Represents an activity group. # Activity group.
-              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-              "metricNames": [ # List of names of floodlight activity metrics.
-                "A String",
-              ],
-            },
-            "dimensions": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-              "A String",
-            ],
-            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-            },
-            "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-          },
-          "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-            "dimensions": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "customRichMediaEvents": [ # The list of custom rich media events to include.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "reportProperties": { # The properties of the report.
-              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-              "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-            },
-          },
-          "fileName": "A String", # The filename used when generating report files for this report.
-          "delivery": { # The report's email delivery settings.
-            "message": "A String", # The message to be sent with each email.
-            "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-            "recipients": [ # The list of recipients to which to email the report.
-              { # Represents a recipient.
-                "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-                "deliveryType": "A String", # The delivery type for the recipient.
-                "email": "A String", # The email address of the recipient.
-              },
-            ],
-            "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-          },
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "criteria": { # The report criteria for a report of type "STANDARD".
-            "activities": { # Represents an activity group. # Activity group.
-              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-              "metricNames": [ # List of names of floodlight activity metrics.
-                "A String",
-              ],
-            },
-            "dimensions": [ # The list of standard dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range for which this report should be run.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-            },
-          },
-          "id": "A String", # The unique ID identifying this report resource.
-          "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-          "type": "A String", # The type of the report.
-          "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-            "breakdown": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-              "A String",
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-            "dimension": "A String", # The dimension option.
-          },
-          "accountId": "A String", # The account ID to which this report belongs.
-        },
-    ],
-    "kind": "dfareporting#reportList", # The kind of list this is, in this case dfareporting#reportList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, reportId, body)</code>
-  <pre>Updates a report. This method supports patch semantics.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="run">run(profileId, reportId, synchronous=None)</code>
-  <pre>Runs a report.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  synchronous: boolean, If set and true, tries to run the report synchronously.
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, reportId, body)</code>
-  <pre>Updates a report.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.sites.html b/docs/dyn/dfareporting_v2_4.sites.html
deleted file mode 100644
index 010251c..0000000
--- a/docs/dyn/dfareporting_v2_4.sites.html
+++ /dev/null
@@ -1,675 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.sites.html">sites</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one site by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new site.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of sites, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing site. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing site.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one site by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Site ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of sites, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  unmappedSite: boolean, Select only sites that have not been mapped to a directory site.
-  campaignIds: string, Select only sites with these campaign IDs. (repeated)
-  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  acceptsPublisherPaidPlacements: boolean, Select only sites that accept publisher paid placements.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  maxResults: integer, Maximum number of results to return.
-  adWordsSite: boolean, Select only AdWords sites.
-  approved: boolean, Select only approved sites.
-  searchString: string, Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, "site*2015" will return objects with names like "site June 2015", "site April 2015", or simply "site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "site" will match objects with name "my site", "site 2015", or simply "site".
-  subaccountId: string, Select only sites with this subaccount ID.
-  directorySiteIds: string, Select only sites with these directory site IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only sites with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Site List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#sitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sitesListResponse".
-    "sites": [ # Site collection.
-      { # Contains properties of a site.
-          "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-          "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteSettings": { # Site Settings # Site-wide settings.
-            "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-            "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-            "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            },
-            "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-            "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-              "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-              "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-              "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-              "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-            },
-            "creativeSettings": { # Creative Settings # Site-wide creative settings.
-              "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-              "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-            },
-            "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-          },
-          "approved": True or False, # Whether this site is approved.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteContacts": [ # Site contacts.
-            { # Site Contact
-              "firstName": "A String", # First name of this site contact.
-              "title": "A String", # Title or designation of this site contact.
-              "lastName": "A String", # Last name of this site contact.
-              "address": "A String", # Address of this site contact.
-              "email": "A String", # Email address of this site contact. This is a required field.
-              "phone": "A String", # Primary phone number of this site contact.
-              "contactType": "A String", # Site contact type.
-              "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-            },
-          ],
-          "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-          "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-          "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing site. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Site ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.sizes.html b/docs/dyn/dfareporting_v2_4.sizes.html
deleted file mode 100644
index 9bc012a..0000000
--- a/docs/dyn/dfareporting_v2_4.sizes.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.sizes.html">sizes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one size by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new size.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</a></code></p>
-<p class="firstline">Retrieves a list of sizes, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one size by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Size ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
-    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new size.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents the dimensions of ads, placements, creatives, or creative assets.
-  "width": 42, # Width of this size.
-  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-  "height": 42, # Height of this size.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
-    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</code>
-  <pre>Retrieves a list of sizes, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  iabStandard: boolean, Select only IAB standard sizes.
-  width: integer, Select only sizes with this width.
-  ids: string, Select only sizes with these IDs. (repeated)
-  height: integer, Select only sizes with this height.
-
-Returns:
-  An object of the form:
-
-    { # Size List Response
-    "kind": "dfareporting#sizesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sizesListResponse".
-    "sizes": [ # Size collection.
-      { # Represents the dimensions of ads, placements, creatives, or creative assets.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.subaccounts.html b/docs/dyn/dfareporting_v2_4.subaccounts.html
deleted file mode 100644
index 69bb776..0000000
--- a/docs/dyn/dfareporting_v2_4.subaccounts.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.subaccounts.html">subaccounts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one subaccount by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new subaccount.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Gets a list of subaccounts, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing subaccount. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing subaccount.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one subaccount by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Subaccount ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new subaccount.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Gets a list of subaccounts, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "subaccount*2015" will return objects with names like "subaccount June 2015", "subaccount April 2015", or simply "subaccount 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "subaccount" will match objects with name "my subaccount", "subaccount 2015", or simply "subaccount".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only subaccounts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Subaccount List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#subaccountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccountsListResponse".
-    "subaccounts": [ # Subaccount collection.
-      { # Contains properties of a DCM subaccount.
-          "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-          "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-            "A String",
-          ],
-          "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-          "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing subaccount. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Subaccount ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing subaccount.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.userProfiles.html b/docs/dyn/dfareporting_v2_4.userProfiles.html
deleted file mode 100644
index bb3e1a4..0000000
--- a/docs/dyn/dfareporting_v2_4.userProfiles.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.userProfiles.html">userProfiles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId)</a></code></p>
-<p class="firstline">Gets one user profile by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list()</a></code></p>
-<p class="firstline">Retrieves list of user profiles for a user.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId)</code>
-  <pre>Gets one user profile by ID.
-
-Args:
-  profileId: string, The user profile ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a UserProfile resource.
-    "userName": "A String", # The user name.
-    "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
-    "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
-    "accountName": "A String", # The account name this profile belongs to.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
-    "profileId": "A String", # The unique ID of the user profile.
-    "accountId": "A String", # The account ID to which this profile belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list()</code>
-  <pre>Retrieves list of user profiles for a user.
-
-Args:
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of user profiles.
-    "items": [ # The user profiles returned in this response.
-      { # Represents a UserProfile resource.
-        "userName": "A String", # The user name.
-        "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
-        "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
-        "accountName": "A String", # The account name this profile belongs to.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
-        "profileId": "A String", # The unique ID of the user profile.
-        "accountId": "A String", # The account ID to which this profile belongs.
-      },
-    ],
-    "kind": "dfareporting#userProfileList", # The kind of list this is, in this case dfareporting#userProfileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.userRolePermissionGroups.html b/docs/dyn/dfareporting_v2_4.userRolePermissionGroups.html
deleted file mode 100644
index c4cd0a3..0000000
--- a/docs/dyn/dfareporting_v2_4.userRolePermissionGroups.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.userRolePermissionGroups.html">userRolePermissionGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role permission group by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Gets a list of all supported user role permission groups.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role permission group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role permission group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a grouping of related user role permissions.
-    "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
-    "id": "A String", # ID of this user role permission.
-    "name": "A String", # Name of this user role permission group.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Gets a list of all supported user role permission groups.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # User Role Permission Group List Response
-    "userRolePermissionGroups": [ # User role permission group collection.
-      { # Represents a grouping of related user role permissions.
-        "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
-        "id": "A String", # ID of this user role permission.
-        "name": "A String", # Name of this user role permission group.
-      },
-    ],
-    "kind": "dfareporting#userRolePermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroupsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.userRolePermissions.html b/docs/dyn/dfareporting_v2_4.userRolePermissions.html
deleted file mode 100644
index 362066a..0000000
--- a/docs/dyn/dfareporting_v2_4.userRolePermissions.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.userRolePermissions.html">userRolePermissions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role permission by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, ids=None)</a></code></p>
-<p class="firstline">Gets a list of user role permissions, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role permission by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role permission ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a user role permission.
-    "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-    "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-    "availability": "A String", # Levels of availability for a user role permission.
-    "name": "A String", # Name of this user role permission.
-    "id": "A String", # ID of this user role permission.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, ids=None)</code>
-  <pre>Gets a list of user role permissions, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  ids: string, Select only user role permissions with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # User Role Permission List Response
-    "userRolePermissions": [ # User role permission collection.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "kind": "dfareporting#userRolePermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.userRoles.html b/docs/dyn/dfareporting_v2_4.userRoles.html
deleted file mode 100644
index 8b16799..0000000
--- a/docs/dyn/dfareporting_v2_4.userRoles.html
+++ /dev/null
@@ -1,361 +0,0 @@
-<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="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.userRoles.html">userRoles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing user role.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new user role.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of user roles, possibly filtered.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing user role. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing user role.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</code>
-  <pre>Retrieves a list of user roles, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "userrole*2015" will return objects with names like "userrole June 2015", "userrole April 2015", or simply "userrole 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "userrole" will match objects with name "my userrole", "userrole 2015", or simply "userrole".
-  subaccountId: string, Select only user roles that belong to this subaccount.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  ids: string, Select only user roles with the specified IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  accountUserRoleOnly: boolean, Select only account level user roles not associated with any specific subaccount.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # User Role List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#userRolesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolesListResponse".
-    "userRoles": [ # User role collection.
-      { # Contains properties of auser role, which is used to manage user access.
-          "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-          "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-          "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-          "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-          "permissions": [ # List of permissions associated with this user role.
-            { # Contains properties of a user role permission.
-              "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-              "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-              "availability": "A String", # Levels of availability for a user role permission.
-              "name": "A String", # Name of this user role permission.
-              "id": "A String", # ID of this user role permission.
-            },
-          ],
-          "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing user role. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.accountActiveAdSummaries.html b/docs/dyn/dfareporting_v2_5.accountActiveAdSummaries.html
deleted file mode 100644
index e9b5402..0000000
--- a/docs/dyn/dfareporting_v2_5.accountActiveAdSummaries.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.accountActiveAdSummaries.html">accountActiveAdSummaries</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, summaryAccountId)</a></code></p>
-<p class="firstline">Gets the account's active ad summary by account ID.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, summaryAccountId)</code>
-  <pre>Gets the account's active ad summary by account ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  summaryAccountId: string, Account ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Gets a summary of active ads in an account.
-    "availableAds": "A String", # Ads that can be activated for the account.
-    "kind": "dfareporting#accountActiveAdSummary", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountActiveAdSummary".
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for the account.
-    "activeAds": "A String", # Ads that have been activated for the account
-    "accountId": "A String", # ID of the account.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.accountPermissionGroups.html b/docs/dyn/dfareporting_v2_5.accountPermissionGroups.html
deleted file mode 100644
index 7f40fac..0000000
--- a/docs/dyn/dfareporting_v2_5.accountPermissionGroups.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.accountPermissionGroups.html">accountPermissionGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account permission group by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves the list of account permission groups.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account permission group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account permission group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
-    "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
-    "id": "A String", # ID of this account permission group.
-    "name": "A String", # Name of this account permission group.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves the list of account permission groups.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Account Permission Group List Response
-    "kind": "dfareporting#accountPermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroupsListResponse".
-    "accountPermissionGroups": [ # Account permission group collection.
-      { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
-        "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
-        "id": "A String", # ID of this account permission group.
-        "name": "A String", # Name of this account permission group.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.accountUserProfiles.html b/docs/dyn/dfareporting_v2_5.accountUserProfiles.html
deleted file mode 100644
index 73e285e..0000000
--- a/docs/dyn/dfareporting_v2_5.accountUserProfiles.html
+++ /dev/null
@@ -1,677 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.accountUserProfiles.html">accountUserProfiles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account user profile by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new account user profile.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</a></code></p>
-<p class="firstline">Retrieves a list of account user profiles, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing account user profile. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing account user profile.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account user profile by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User profile ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new account user profile.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</code>
-  <pre>Retrieves a list of account user profiles, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "user profile*2015" will return objects with names like "user profile June 2015", "user profile April 2015", or simply "user profile 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "user profile" will match objects with name "my user profile", "user profile 2015", or simply "user profile".
-  subaccountId: string, Select only user profiles with the specified subaccount ID.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only user profiles with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  userRoleId: string, Select only user profiles with the specified user role ID.
-  active: boolean, Select only active user profiles.
-
-Returns:
-  An object of the form:
-
-    { # Account User Profile List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "accountUserProfiles": [ # Account user profile collection.
-      { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-          "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-          "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-          "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-          "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "locale": "A String", # Locale of the user profile. This is a required field.
-              # Acceptable values are:
-              # - "cs" (Czech)
-              # - "de" (German)
-              # - "en" (English)
-              # - "en-GB" (English United Kingdom)
-              # - "es" (Spanish)
-              # - "fr" (French)
-              # - "it" (Italian)
-              # - "ja" (Japanese)
-              # - "ko" (Korean)
-              # - "pl" (Polish)
-              # - "pt-BR" (Portuguese Brazil)
-              # - "ru" (Russian)
-              # - "sv" (Swedish)
-              # - "tr" (Turkish)
-              # - "zh-CN" (Chinese Simplified)
-              # - "zh-TW" (Chinese Traditional)
-          "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "comments": "A String", # Comments for this user profile.
-          "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-          "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-          "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-          "traffickerType": "A String", # Trafficker type of this user profile.
-          "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-          "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-          "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#accountUserProfilesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfilesListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing account user profile. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing account user profile.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.accounts.html b/docs/dyn/dfareporting_v2_5.accounts.html
deleted file mode 100644
index 6ff646e..0000000
--- a/docs/dyn/dfareporting_v2_5.accounts.html
+++ /dev/null
@@ -1,856 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.accounts.html">accounts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</a></code></p>
-<p class="firstline">Retrieves the list of accounts, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing account. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing account.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</code>
-  <pre>Retrieves the list of accounts, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "account*2015" will return objects with names like "account June 2015", "account April 2015", or simply "account 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "account" will match objects with name "my account", "account 2015", or simply "account".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only accounts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  active: boolean, Select only active accounts. Don't set this field to select both active and non-active accounts.
-
-Returns:
-  An object of the form:
-
-    { # Account List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountsListResponse".
-    "accounts": [ # Account collection.
-      { # Contains properties of a DCM account.
-          "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-          "countryId": "A String", # ID of the country associated with this account.
-          "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-            "A String",
-          ],
-          "description": "A String", # Description of this account.
-          "maximumImageSize": "A String", # Maximum image size allowed for this account.
-          "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-              # Acceptable values are:
-              # - "1" for USD
-              # - "2" for GBP
-              # - "3" for ESP
-              # - "4" for SEK
-              # - "5" for CAD
-              # - "6" for JPY
-              # - "7" for DEM
-              # - "8" for AUD
-              # - "9" for FRF
-              # - "10" for ITL
-              # - "11" for DKK
-              # - "12" for NOK
-              # - "13" for FIM
-              # - "14" for ZAR
-              # - "15" for IEP
-              # - "16" for NLG
-              # - "17" for EUR
-              # - "18" for KRW
-              # - "19" for TWD
-              # - "20" for SGD
-              # - "21" for CNY
-              # - "22" for HKD
-              # - "23" for NZD
-              # - "24" for MYR
-              # - "25" for BRL
-              # - "26" for PTE
-              # - "27" for MXP
-              # - "28" for CLP
-              # - "29" for TRY
-              # - "30" for ARS
-              # - "31" for PEN
-              # - "32" for ILS
-              # - "33" for CHF
-              # - "34" for VEF
-              # - "35" for COP
-              # - "36" for GTQ
-              # - "37" for PLN
-              # - "39" for INR
-              # - "40" for THB
-              # - "41" for IDR
-              # - "42" for CZK
-              # - "43" for RON
-              # - "44" for HUF
-              # - "45" for RUB
-              # - "46" for AED
-              # - "47" for BGN
-              # - "48" for HRK
-          "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-          "accountPermissionIds": [ # Account permissions assigned to this account.
-            "A String",
-          ],
-          "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-          "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-          "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-          "locale": "A String", # Locale of this account.
-              # Acceptable values are:
-              # - "cs" (Czech)
-              # - "de" (German)
-              # - "en" (English)
-              # - "en-GB" (English United Kingdom)
-              # - "es" (Spanish)
-              # - "fr" (French)
-              # - "it" (Italian)
-              # - "ja" (Japanese)
-              # - "ko" (Korean)
-              # - "pl" (Polish)
-              # - "pt-BR" (Portuguese Brazil)
-              # - "ru" (Russian)
-              # - "sv" (Swedish)
-              # - "tr" (Turkish)
-              # - "zh-CN" (Chinese Simplified)
-              # - "zh-TW" (Chinese Traditional)
-          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-          "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-            "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-                # Acceptable values are:
-                #
-                # - "1" for "America/New_York"
-                # - "2" for "Europe/London"
-                # - "3" for "Europe/Paris"
-                # - "4" for "Africa/Johannesburg"
-                # - "5" for "Asia/Jerusalem"
-                # - "6" for "Asia/Shanghai"
-                # - "7" for "Asia/Hong_Kong"
-                # - "8" for "Asia/Tokyo"
-                # - "9" for "Australia/Sydney"
-                # - "10" for "Asia/Dubai"
-                # - "11" for "America/Los_Angeles"
-                # - "12" for "Pacific/Auckland"
-                # - "13" for "America/Sao_Paulo"
-            "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-            "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            },
-          },
-          "active": True or False, # Whether this account is active.
-          "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-          "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-          "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing account. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM account.
-    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-    "countryId": "A String", # ID of the country associated with this account.
-    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-      "A String",
-    ],
-    "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
-    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-        # Acceptable values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-    "accountPermissionIds": [ # Account permissions assigned to this account.
-      "A String",
-    ],
-    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-    "locale": "A String", # Locale of this account.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-          # Acceptable values are:
-          #
-          # - "1" for "America/New_York"
-          # - "2" for "Europe/London"
-          # - "3" for "Europe/Paris"
-          # - "4" for "Africa/Johannesburg"
-          # - "5" for "Asia/Jerusalem"
-          # - "6" for "Asia/Shanghai"
-          # - "7" for "Asia/Hong_Kong"
-          # - "8" for "Asia/Tokyo"
-          # - "9" for "Australia/Sydney"
-          # - "10" for "Asia/Dubai"
-          # - "11" for "America/Los_Angeles"
-          # - "12" for "Pacific/Auckland"
-          # - "13" for "America/Sao_Paulo"
-      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-    },
-    "active": True or False, # Whether this account is active.
-    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing account.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM account.
-    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-    "countryId": "A String", # ID of the country associated with this account.
-    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-      "A String",
-    ],
-    "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
-    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-        # Acceptable values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-    "accountPermissionIds": [ # Account permissions assigned to this account.
-      "A String",
-    ],
-    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-    "locale": "A String", # Locale of this account.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-          # Acceptable values are:
-          #
-          # - "1" for "America/New_York"
-          # - "2" for "Europe/London"
-          # - "3" for "Europe/Paris"
-          # - "4" for "Africa/Johannesburg"
-          # - "5" for "Asia/Jerusalem"
-          # - "6" for "Asia/Shanghai"
-          # - "7" for "Asia/Hong_Kong"
-          # - "8" for "Asia/Tokyo"
-          # - "9" for "Australia/Sydney"
-          # - "10" for "Asia/Dubai"
-          # - "11" for "America/Los_Angeles"
-          # - "12" for "Pacific/Auckland"
-          # - "13" for "America/Sao_Paulo"
-      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-    },
-    "active": True or False, # Whether this account is active.
-    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.ads.html b/docs/dyn/dfareporting_v2_5.ads.html
deleted file mode 100644
index 11dccee..0000000
--- a/docs/dyn/dfareporting_v2_5.ads.html
+++ /dev/null
@@ -1,2832 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.ads.html">ads</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one ad by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new ad.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</a></code></p>
-<p class="firstline">Retrieves a list of ads, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing ad. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing ad.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one ad by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Ad ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new ad.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived. When true, active must be false.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active. When true, archived must be false.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</code>
-  <pre>Retrieves a list of ads, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  landingPageIds: string, Select only ads with these landing page IDs. (repeated)
-  overriddenEventTagId: string, Select only ads with this event tag override ID.
-  campaignIds: string, Select only ads with these campaign IDs. (repeated)
-  sizeIds: string, Select only ads with these size IDs. (repeated)
-  archived: boolean, Select only archived ads.
-  creativeOptimizationConfigurationIds: string, Select only ads with these creative optimization configuration IDs. (repeated)
-  sslCompliant: boolean, Select only ads that are SSL-compliant.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only ads with these types. (repeated)
-    Allowed values
-      AD_SERVING_CLICK_TRACKER - 
-      AD_SERVING_DEFAULT_AD - 
-      AD_SERVING_STANDARD_AD - 
-      AD_SERVING_TRACKING - 
-  sslRequired: boolean, Select only ads that require SSL.
-  creativeIds: string, Select only ads with these creative IDs assigned. (repeated)
-  remarketingListIds: string, Select only ads whose list targeting expression use these remarketing list IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  creativeType: string, Select only ads with the specified creativeType.
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_DISPLAY - 
-      CUSTOM_DISPLAY_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_IMAGE_GALLERY - 
-      DISPLAY_REDIRECT - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      RICH_MEDIA_DISPLAY_BANNER - 
-      RICH_MEDIA_DISPLAY_EXPANDING - 
-      RICH_MEDIA_DISPLAY_INTERSTITIAL - 
-      RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR_VIDEO - 
-      VPAID_NON_LINEAR_VIDEO - 
-  placementIds: string, Select only ads with these placement IDs assigned. (repeated)
-  active: boolean, Select only active ads.
-  compatibility: string, Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
-    Allowed values
-      APP - 
-      APP_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_INTERSTITIAL - 
-      IN_STREAM_VIDEO - 
-  advertiserId: string, Select only ads with this advertiser ID.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "ad*2015" will return objects with names like "ad June 2015", "ad April 2015", or simply "ad 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "ad" will match objects with name "my ad", "ad 2015", or simply "ad".
-  audienceSegmentIds: string, Select only ads with these audience segment IDs. (repeated)
-  ids: string, Select only ads with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  dynamicClickTracker: boolean, Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.
-
-Returns:
-  An object of the form:
-
-    { # Ad List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#adsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#adsListResponse".
-    "ads": [ # Ad collection.
-      { # Contains properties of a DCM ad.
-          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-          },
-          "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-          "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-          "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-              { # Contains information about a country that can be targeted by ads.
-                "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-                "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-                "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-                "countryCode": "A String", # Country code.
-                "name": "A String", # Name of this country.
-              },
-            ],
-            "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-            "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-              { # Contains information about a postal code that can be targeted by ads.
-                "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-                "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-                "code": "A String", # Postal code. This is equivalent to the id field.
-                "id": "A String", # ID of this postal code.
-                "countryCode": "A String", # Country code of the country to which this postal code belongs.
-              },
-            ],
-            "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-              { # Contains information about a region that can be targeted by ads.
-                "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-                "countryDartId": "A String", # DART ID of the country to which this region belongs.
-                "name": "A String", # Name of this region.
-                "countryCode": "A String", # Country code of the country to which this region belongs.
-                "regionCode": "A String", # Region code.
-                "dartId": "A String", # DART ID of this region.
-              },
-            ],
-            "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-              { # Contains information about a city that can be targeted by ads.
-                "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-                "countryDartId": "A String", # DART ID of the country to which this city belongs.
-                "name": "A String", # Name of this city.
-                "countryCode": "A String", # Country code of the country to which this city belongs.
-                "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-                "regionCode": "A String", # Region code of the region to which this city belongs.
-                "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-                "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-                "regionDartId": "A String", # DART ID of the region to which this city belongs.
-              },
-            ],
-            "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-              { # Contains information about a metro region that can be targeted by ads.
-                "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-                "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-                "name": "A String", # Name of this metro region.
-                "countryCode": "A String", # Country code of the country to which this metro region belongs.
-                "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-                "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-                "dartId": "A String", # DART ID of this metro region.
-              },
-            ],
-          },
-          "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-            "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-            "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-            "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-            },
-            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "eventTagOverrides": [ # Event tag overrides for this ad.
-            { # Event tag override information.
-              "enabled": True or False, # Whether this override is enabled.
-              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-            },
-          ],
-          "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-          "archived": True or False, # Whether this ad is archived. When true, active must be false.
-          "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about a platform type that can be targeted by ads.
-                "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-                "id": "A String", # ID of this platform type.
-                "name": "A String", # Name of this platform type.
-              },
-            ],
-            "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-              { # Contains information about a particular version of an operating system that can be targeted by ads.
-                "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-                "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-                "name": "A String", # Name of this operating system version.
-                "id": "A String", # ID of this operating system version.
-                "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-                  "mobile": True or False, # Whether this operating system is for mobile.
-                  "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-                  "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-                  "name": "A String", # Name of this operating system.
-                  "desktop": True or False, # Whether this operating system is for desktop.
-                },
-                "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-              },
-            ],
-            "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about a browser that can be targeted by ads.
-                "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-                "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-                "name": "A String", # Name of this browser.
-                "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-                "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-                "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-              },
-            ],
-            "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-              { # Contains information about an operating system that can be targeted by ads.
-                "mobile": True or False, # Whether this operating system is for mobile.
-                "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-                "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-                "name": "A String", # Name of this operating system.
-                "desktop": True or False, # Whether this operating system is for desktop.
-              },
-            ],
-            "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-              { # Contains information about a mobile carrier that can be targeted by ads.
-                "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-                "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-                "id": "A String", # ID of this mobile carrier.
-                "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-                "name": "A String", # Name of this mobile carrier.
-              },
-            ],
-            "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-                "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-                "id": "A String", # ID of this connection type.
-                "name": "A String", # Name of this connection type.
-              },
-            ],
-          },
-          "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-            "creativeAssignments": [ # Creative assignments in this creative rotation.
-              { # Creative Assignment.
-                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-                "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-                "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                    # Applicable when the creative type is any of the following:
-                    # - RICH_MEDIA_INPAGE
-                    # - RICH_MEDIA_INPAGE_FLOATING
-                    # - RICH_MEDIA_IM_EXPAND
-                    # - RICH_MEDIA_EXPANDING
-                    # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                    # - RICH_MEDIA_MOBILE_IN_APP
-                    # - RICH_MEDIA_MULTI_FLOATING
-                    # - RICH_MEDIA_PEEL_DOWN
-                    # - ADVANCED_BANNER
-                    # - VPAID_LINEAR
-                    # - VPAID_NON_LINEAR
-                  { # Rich Media Exit Override.
-                    "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                    "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                    "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-                  },
-                ],
-                "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-                "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-                  { # Creative Group Assignment.
-                    "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                    "creativeGroupId": "A String", # ID of the creative group to be assigned.
-                  },
-                ],
-                "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-                  { # Companion Click-through override.
-                    "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                    },
-                    "creativeId": "A String", # ID of the creative for this companion click-through override.
-                  },
-                ],
-                "startTime": "A String", # Date and time that the assigned creative should start serving.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-                "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-                "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-                "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              },
-            ],
-            "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-            "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-            "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-          },
-          "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "comments": "A String", # Comments for this ad.
-          "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "expression": "A String", # Expression describing which lists are being targeted by the ad.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-          "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-          "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "expression": "A String", # Keyword expression being targeted by the ad.
-          },
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-          },
-          "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-          "active": True or False, # Whether this ad is active. When true, archived must be false.
-          "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-          "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-          "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-          "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-              42,
-            ],
-            "daysOfWeek": [ # Days of the week when the ad will serve.
-                #
-                # Acceptable values are:
-                # - "SUNDAY"
-                # - "MONDAY"
-                # - "TUESDAY"
-                # - "WEDNESDAY"
-                # - "THURSDAY"
-                # - "FRIDAY"
-                # - "SATURDAY"
-              "A String",
-            ],
-          },
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "placementAssignments": [ # Placement assignments for this ad.
-            { # Placement Assignment.
-              "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-              "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-              "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            },
-          ],
-          "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-          "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing ad. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Ad ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived. When true, active must be false.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active. When true, archived must be false.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing ad.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived. When true, active must be false.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active. When true, archived must be false.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.advertiserGroups.html b/docs/dyn/dfareporting_v2_5.advertiserGroups.html
deleted file mode 100644
index b9b11cd..0000000
--- a/docs/dyn/dfareporting_v2_5.advertiserGroups.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.advertiserGroups.html">advertiserGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing advertiser group.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one advertiser group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new advertiser group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of advertiser groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one advertiser group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of advertiser groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser group June 2015", "advertiser group April 2015", or simply "advertiser group 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertisergroup" will match objects with name "my advertisergroup", "advertisergroup 2015", or simply "advertisergroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only advertiser groups with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Advertiser Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#advertiserGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroupsListResponse".
-    "advertiserGroups": [ # Advertiser group collection.
-      { # Groups advertisers together so that reports can be generated for the entire group at once.
-          "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-          "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-          "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing advertiser group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.advertisers.html b/docs/dyn/dfareporting_v2_5.advertisers.html
deleted file mode 100644
index e7c5af6..0000000
--- a/docs/dyn/dfareporting_v2_5.advertisers.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.advertisers.html">advertisers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one advertiser by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new advertiser.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of advertisers, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one advertiser by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new advertiser.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</code>
-  <pre>Retrieves a list of advertisers, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  includeAdvertisersWithoutGroupsOnly: boolean, Select only advertisers which do not belong to any advertiser group.
-  onlyParent: boolean, Select only advertisers which use another advertiser's floodlight configuration.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  status: string, Select only advertisers with the specified status.
-    Allowed values
-      APPROVED - 
-      ON_HOLD - 
-  maxResults: integer, Maximum number of results to return.
-  advertiserGroupIds: string, Select only advertisers with these advertiser group IDs. (repeated)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser June 2015", "advertiser April 2015", or simply "advertiser 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertiser" will match objects with name "my advertiser", "advertiser 2015", or simply "advertiser".
-  subaccountId: string, Select only advertisers with these subaccount IDs.
-  ids: string, Select only advertisers with these IDs. (repeated)
-  floodlightConfigurationIds: string, Select only advertisers with these floodlight configuration IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # Advertiser List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "advertisers": [ # Advertiser collection.
-      { # Contains properties of a DCM advertiser.
-          "status": "A String", # Status of this advertiser.
-          "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-          "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-          "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-          "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-          "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-          "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-              # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-              # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-          "suspended": True or False, # Suspension status of this advertiser.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-          "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#advertisersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertisersListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing advertiser. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing advertiser.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.campaigns.html b/docs/dyn/dfareporting_v2_5.campaigns.html
deleted file mode 100644
index f9af52e..0000000
--- a/docs/dyn/dfareporting_v2_5.campaigns.html
+++ /dev/null
@@ -1,1139 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.campaigns.html">campaigns</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one campaign by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</a></code></p>
-<p class="firstline">Inserts a new campaign.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</a></code></p>
-<p class="firstline">Retrieves a list of campaigns, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing campaign. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing campaign.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one campaign by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Campaign ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</code>
-  <pre>Inserts a new campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  defaultLandingPageName: string, Default landing page name for this new campaign. Must be less than 256 characters long. (required)
-  defaultLandingPageUrl: string, Default landing page URL for this new campaign. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</code>
-  <pre>Retrieves a list of campaigns, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  overriddenEventTagId: string, Select only campaigns that have overridden this event tag ID.
-  archived: boolean, Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.
-  advertiserIds: string, Select only campaigns that belong to these advertisers. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxResults: integer, Maximum number of results to return.
-  excludedIds: string, Exclude campaigns with these IDs. (repeated)
-  advertiserGroupIds: string, Select only campaigns whose advertisers belong to these advertiser groups. (repeated)
-  searchString: string, Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, "campaign*2015" will return campaigns with names like "campaign June 2015", "campaign April 2015", or simply "campaign 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "campaign" will match campaigns with name "my campaign", "campaign 2015", or simply "campaign".
-  subaccountId: string, Select only campaigns that belong to this subaccount.
-  ids: string, Select only campaigns with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  atLeastOneOptimizationActivity: boolean, Select only campaigns that have at least one optimization activity.
-
-Returns:
-  An object of the form:
-
-    { # Campaign List Response
-    "campaigns": [ # Campaign collection.
-      { # Contains properties of a DCM campaign.
-          "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-          "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-          "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-          },
-          "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-            { # Event tag override information.
-              "enabled": True or False, # Whether this override is enabled.
-              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-            },
-          ],
-          "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-            "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-              { # Creative optimization activity.
-                "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-                "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-                "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-              },
-            ],
-            "optimizationModel": "A String", # Optimization model for this configuration.
-            "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-            "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-          },
-          "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-          "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-          "traffickerEmails": [ # Campaign trafficker contact emails.
-            "A String",
-          ],
-          "archived": True or False, # Whether this campaign has been archived.
-          "externalId": "A String", # External ID for this campaign.
-          "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-          "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-          "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-            "A String",
-          ],
-          "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-            { # Creative optimization settings.
-              "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-                { # Creative optimization activity.
-                  "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-                  "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                    "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                    "value": "A String", # The value of the dimension.
-                    "dimensionName": "A String", # The name of the dimension.
-                    "etag": "A String", # The eTag of this response for caching purposes.
-                    "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                    "id": "A String", # The ID associated with the value if available.
-                  },
-                  "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-                },
-              ],
-              "optimizationModel": "A String", # Optimization model for this configuration.
-              "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-              "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-            },
-          ],
-          "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-          },
-          "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-          "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-            { # Audience Segment Group.
-              "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-                { # Audience Segment.
-                  "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-                  "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-                  "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-                },
-              ],
-              "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-            },
-          ],
-        },
-    ],
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#campaignsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing campaign. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.cities.html b/docs/dyn/dfareporting_v2_5.cities.html
deleted file mode 100644
index 004e847..0000000
--- a/docs/dyn/dfareporting_v2_5.cities.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.cities.html">cities</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of cities, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</code>
-  <pre>Retrieves a list of cities, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartIds: string, Select only cities with these DART IDs. (repeated)
-  namePrefix: string, Select only cities with names starting with this prefix.
-  regionDartIds: string, Select only cities from these regions. (repeated)
-  countryDartIds: string, Select only cities from these countries. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # City List Response
-    "kind": "dfareporting#citiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#citiesListResponse".
-    "cities": [ # City collection.
-      { # Contains information about a city that can be targeted by ads.
-        "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-        "countryDartId": "A String", # DART ID of the country to which this city belongs.
-        "name": "A String", # Name of this city.
-        "countryCode": "A String", # Country code of the country to which this city belongs.
-        "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-        "regionCode": "A String", # Region code of the region to which this city belongs.
-        "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-        "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-        "regionDartId": "A String", # DART ID of the region to which this city belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.conversions.html b/docs/dyn/dfareporting_v2_5.conversions.html
deleted file mode 100644
index a5164b3..0000000
--- a/docs/dyn/dfareporting_v2_5.conversions.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.conversions.html">conversions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#batchinsert">batchinsert(profileId, body)</a></code></p>
-<p class="firstline">Inserts conversions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="batchinsert">batchinsert(profileId, body)</code>
-  <pre>Inserts conversions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Insert Conversions Request.
-    "conversions": [ # The set of conversions to insert.
-      { # A Conversion represents when a user successfully performs a desired action after seeing an ad.
-        "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
-        "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
-        "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
-        "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
-        "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
-        "customVariables": [ # Custom floodlight variables.
-          { # A custom floodlight variable.
-            "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
-            "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
-            "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
-          },
-        ],
-        "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
-        "value": 3.14, # The value of the conversion.
-        "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
-        "quantity": "A String", # The quantity of the conversion.
-        "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
-        "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
-      },
-    ],
-    "kind": "dfareporting#conversionsBatchInsertRequest", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertRequest".
-    "encryptionInfo": { # A description of how user IDs are encrypted. # Describes how encryptedUserId is encrypted. This is a required field if encryptedUserId is used.
-      "kind": "dfareporting#encryptionInfo", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#encryptionInfo".
-      "encryptionEntityId": "A String", # The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.
-      "encryptionSource": "A String", # Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.
-      "encryptionEntityType": "A String", # The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Insert Conversions Response.
-    "status": [ # The status of each conversion's insertion status. The status is returned in the same order that conversions are inserted.
-      { # The original conversion that was inserted or updated and whether there were any errors.
-        "conversion": { # A Conversion represents when a user successfully performs a desired action after seeing an ad. # The original conversion that was inserted or updated.
-          "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
-          "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
-          "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
-          "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
-          "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
-          "customVariables": [ # Custom floodlight variables.
-            { # A custom floodlight variable.
-              "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
-              "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
-              "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
-            },
-          ],
-          "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
-          "value": 3.14, # The value of the conversion.
-          "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
-          "quantity": "A String", # The quantity of the conversion.
-          "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
-          "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
-        },
-        "errors": [ # A list of errors related to this conversion.
-          { # The error code and description for a conversion that failed to insert or update.
-            "kind": "dfareporting#conversionError", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionError".
-            "code": "A String", # The error code.
-            "message": "A String", # A description of the error.
-          },
-        ],
-        "kind": "dfareporting#conversionStatus", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionStatus".
-      },
-    ],
-    "hasFailures": True or False, # Indicates that some or all conversions failed to insert.
-    "kind": "dfareporting#conversionsBatchInsertResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.countries.html b/docs/dyn/dfareporting_v2_5.countries.html
deleted file mode 100644
index 7fe1091..0000000
--- a/docs/dyn/dfareporting_v2_5.countries.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.countries.html">countries</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, dartId)</a></code></p>
-<p class="firstline">Gets one country by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of countries.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, dartId)</code>
-  <pre>Gets one country by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartId: string, Country DART ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a country that can be targeted by ads.
-    "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-    "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-    "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-    "countryCode": "A String", # Country code.
-    "name": "A String", # Name of this country.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of countries.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Country List Response
-    "kind": "dfareporting#countriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#countriesListResponse".
-    "countries": [ # Country collection.
-      { # Contains information about a country that can be targeted by ads.
-        "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-        "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-        "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-        "countryCode": "A String", # Country code.
-        "name": "A String", # Name of this country.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.creativeAssets.html b/docs/dyn/dfareporting_v2_5.creativeAssets.html
deleted file mode 100644
index 46d375f..0000000
--- a/docs/dyn/dfareporting_v2_5.creativeAssets.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.creativeAssets.html">creativeAssets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None)</a></code></p>
-<p class="firstline">Inserts a new creative asset.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None)</code>
-  <pre>Inserts a new creative asset.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Advertiser ID of this creative. This is a required field. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
-    "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
-        # 
-        # Possible values are:
-        # - "ADMOB_REFERENCED"
-        # - "ASSET_FORMAT_UNSUPPORTED_DCM"
-        # - "ASSET_INVALID"
-        # - "CLICK_TAG_HARD_CODED"
-        # - "CLICK_TAG_INVALID"
-        # - "CLICK_TAG_IN_GWD"
-        # - "CLICK_TAG_MISSING"
-        # - "CLICK_TAG_MORE_THAN_ONE"
-        # - "CLICK_TAG_NON_TOP_LEVEL"
-        # - "COMPONENT_UNSUPPORTED_DCM"
-        # - "ENABLER_UNSUPPORTED_METHOD_DCM"
-        # - "EXTERNAL_FILE_REFERENCED"
-        # - "FILE_DETAIL_EMPTY"
-        # - "FILE_TYPE_INVALID"
-        # - "GWD_PROPERTIES_INVALID"
-        # - "HTML5_FEATURE_UNSUPPORTED"
-        # - "LINKED_FILE_NOT_FOUND"
-        # - "MAX_FLASH_VERSION_11"
-        # - "MRAID_REFERENCED"
-        # - "NOT_SSL_COMPLIANT"
-        # - "ORPHANED_ASSET"
-        # - "PRIMARY_HTML_MISSING"
-        # - "SVG_INVALID"
-        # - "ZIP_INVALID"
-      "A String",
-    ],
-    "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
-    "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
-      "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-      "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-    },
-  }
-
-  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
-  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
-
-Returns:
-  An object of the form:
-
-    { # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
-      "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
-          #
-          # Possible values are:
-          # - "ADMOB_REFERENCED"
-          # - "ASSET_FORMAT_UNSUPPORTED_DCM"
-          # - "ASSET_INVALID"
-          # - "CLICK_TAG_HARD_CODED"
-          # - "CLICK_TAG_INVALID"
-          # - "CLICK_TAG_IN_GWD"
-          # - "CLICK_TAG_MISSING"
-          # - "CLICK_TAG_MORE_THAN_ONE"
-          # - "CLICK_TAG_NON_TOP_LEVEL"
-          # - "COMPONENT_UNSUPPORTED_DCM"
-          # - "ENABLER_UNSUPPORTED_METHOD_DCM"
-          # - "EXTERNAL_FILE_REFERENCED"
-          # - "FILE_DETAIL_EMPTY"
-          # - "FILE_TYPE_INVALID"
-          # - "GWD_PROPERTIES_INVALID"
-          # - "HTML5_FEATURE_UNSUPPORTED"
-          # - "LINKED_FILE_NOT_FOUND"
-          # - "MAX_FLASH_VERSION_11"
-          # - "MRAID_REFERENCED"
-          # - "NOT_SSL_COMPLIANT"
-          # - "ORPHANED_ASSET"
-          # - "PRIMARY_HTML_MISSING"
-          # - "SVG_INVALID"
-          # - "ZIP_INVALID"
-        "A String",
-      ],
-      "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
-      "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
-        "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-        "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.creativeFields.html b/docs/dyn/dfareporting_v2_5.creativeFields.html
deleted file mode 100644
index 1fbd88c..0000000
--- a/docs/dyn/dfareporting_v2_5.creativeFields.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.creativeFields.html">creativeFields</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing creative field.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative field by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative field.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative fields, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative field. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative field.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative field by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative fields, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, "creativefield*2015" will return creative fields with names like "creativefield June 2015", "creativefield April 2015", or simply "creativefield 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativefield" will match creative fields with the name "my creativefield", "creativefield 2015", or simply "creativefield".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only creative fields that belong to these advertisers. (repeated)
-  ids: string, Select only creative fields with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Field List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "creativeFields": [ # Creative field collection.
-      { # Contains properties of a creative field.
-          "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-          "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-          "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#creativeFieldsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative field. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.creatives.html b/docs/dyn/dfareporting_v2_5.creatives.html
deleted file mode 100644
index 8cf9d93..0000000
--- a/docs/dyn/dfareporting_v2_5.creatives.html
+++ /dev/null
@@ -1,2893 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.creatives.html">creatives</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of creatives, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</code>
-  <pre>Retrieves a list of creatives, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Select only creatives with this campaign ID.
-  advertiserId: string, Select only creatives with this advertiser ID.
-  sizeIds: string, Select only creatives with these size IDs. (repeated)
-  archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  renderingIds: string, Select only creatives with these rendering IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active creatives. Leave blank to select active and inactive creatives.
-  companionCreativeIds: string, Select only in-stream video creatives with these companion IDs. (repeated)
-  types: string, Select only creatives with these creative types. (repeated)
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_DISPLAY - 
-      CUSTOM_DISPLAY_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_IMAGE_GALLERY - 
-      DISPLAY_REDIRECT - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      RICH_MEDIA_DISPLAY_BANNER - 
-      RICH_MEDIA_DISPLAY_EXPANDING - 
-      RICH_MEDIA_DISPLAY_INTERSTITIAL - 
-      RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR_VIDEO - 
-      VPAID_NON_LINEAR_VIDEO - 
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "creative*2015" will return objects with names like "creative June 2015", "creative April 2015", or simply "creative 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "creative" will match objects with name "my creative", "creative 2015", or simply "creative".
-  ids: string, Select only creatives with these IDs. (repeated)
-  studioCreativeId: string, Select only creatives corresponding to this Studio creative ID.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  creativeFieldIds: string, Select only creatives with these creative field IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Creative List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#creativesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativesListResponse".
-    "creatives": [ # Creative collection.
-      { # Contains properties of a Creative.
-          "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-            { # Third-party Tracking URL.
-              "url": "A String", # URL for the specified third-party URL type.
-              "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-            },
-          ],
-          "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-          "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-          "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-          "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-            "windowHeight": 42, # Height of the window.
-            "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-            "windowWidth": 42, # Width of the window.
-            "positionOption": "A String", # Position in the browser where the window will open.
-            "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-          },
-          "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-          "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-          "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-          "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-          "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-          "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-          "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-          "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-          "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-            { # Creative Field Assignment.
-              "creativeFieldId": "A String", # ID of the creative field.
-              "creativeFieldValueId": "A String", # ID of the creative field value.
-            },
-          ],
-          "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-          "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-            "A String",
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-          "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-          "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-            { # Creative Asset.
-              "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-              "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-              "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-                "A String",
-              ],
-              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-              "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-              "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-              "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-              "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-                  # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-                  # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-                  # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-                  # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-                  # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-                  # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-                  # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-                  # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-              "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-              "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-              "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-              "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-              "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-              "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-              "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-              "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-              "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-                "targetType": "A String", # Target type used by the event.
-                "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-                "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-                "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                  "showStatusBar": True or False, # Whether to display the browser status bar.
-                  "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                  "showAddressBar": True or False, # Whether to display the browser address bar.
-                  "showMenuBar": True or False, # Whether to display the browser menu bar.
-                  "title": "A String", # Title of popup window.
-                  "showToolBar": True or False, # Whether to display the browser tool bar.
-                  "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                  "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                    "top": 42, # Offset distance from top side of an asset or a window.
-                    "left": 42, # Offset distance from left side of an asset or a window.
-                  },
-                  "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                    "width": 42, # Width of this size.
-                    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                    "height": 42, # Height of this size.
-                  },
-                },
-                "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-                "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-                "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-                "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-                "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-                "advertiserCustomEventName": "A String", # User-entered name for the event.
-              },
-              "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-              "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-                "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-                "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-              },
-              "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-              "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-            },
-          ],
-          "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-          "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-          "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-          "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            { # Creative Click Tag.
-              "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-              "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-            },
-          ],
-          "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-          "active": True or False, # Whether the creative is active. Applicable to all creative types.
-          "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-              #
-              # Acceptable values are:
-              # - "APP"
-              # - "APP_INTERSTITIAL"
-              # - "IN_STREAM_VIDEO"
-              # - "DISPLAY"
-              # - "DISPLAY_INTERSTITIAL"
-            "A String",
-          ],
-          "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-            "A String",
-          ],
-          "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-          "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-          "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-          "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-          "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-          "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-          "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-            "A String",
-          ],
-          "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-          "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "A String",
-          ],
-          "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "customHtml": "A String", # User-entered value.
-            "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-          },
-          "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For DISPLAY and DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags, For DISPLAY, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For DISPLAY_IMAGE_GALLERY creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to DISPLAY, FLASH_INPAGE, HTML5_BANNER, IMAGE, DISPLAY_IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR_VIDEO creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR_VIDEO creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR_VIDEO creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_DISPLAY_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_DISPLAY_BANNER, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR_VIDEO assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by DISPLAY_IMAGE_GALLERY and HTML5_BANNER creatives. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "name": "A String", # Parameter name for the specified click tag. For DISPLAY_IMAGE_GALLERY creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.dimensionValues.html b/docs/dyn/dfareporting_v2_5.dimensionValues.html
deleted file mode 100644
index a140852..0000000
--- a/docs/dyn/dfareporting_v2_5.dimensionValues.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.dimensionValues.html">dimensionValues</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#query">query(profileId, body, pageToken=None, maxResults=None)</a></code></p>
-<p class="firstline">Retrieves list of report dimension values for a list of filters.</p>
-<p class="toc_element">
-  <code><a href="#query_next">query_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="query">query(profileId, body, pageToken=None, maxResults=None)</code>
-  <pre>Retrieves list of report dimension values for a list of filters.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a DimensionValuesRequest.
-    "dimensionName": "A String", # The name of the dimension for which values should be requested.
-    "startDate": "A String", # The start date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
-    "kind": "dfareporting#dimensionValueRequest", # The kind of request this is, in this case dfareporting#dimensionValueRequest.
-    "endDate": "A String", # The end date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
-    "filters": [ # The list of filters by which to filter values. The filters are ANDed.
-      { # Represents a dimension filter.
-        "dimensionName": "A String", # The name of the dimension to filter.
-        "kind": "dfareporting#dimensionFilter", # The kind of resource this is, in this case dfareporting#dimensionFilter.
-        "value": "A String", # The value of the dimension to filter.
-      },
-    ],
-  }
-
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of DimensionValue resources.
-    "nextPageToken": "A String", # Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The dimension values returned in this response.
-      { # Represents a DimensionValue resource.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-    ],
-    "kind": "dfareporting#dimensionValueList", # The kind of list this is, in this case dfareporting#dimensionValueList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="query_next">query_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
diff --git a/docs/dyn/dfareporting_v2_5.directorySites.html b/docs/dyn/dfareporting_v2_5.directorySites.html
deleted file mode 100644
index 8af3f75..0000000
--- a/docs/dyn/dfareporting_v2_5.directorySites.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.directorySites.html">directorySites</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one directory site by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new directory site.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</a></code></p>
-<p class="firstline">Retrieves a list of directory sites, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one directory site by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Directory site ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-      "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
-      "settings": { # Directory Site Settings # Directory site settings.
-        "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-        "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
-          "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
-          "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-          "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
-        },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-        "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-        "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-      },
-      "currencyId": "A String", # Currency ID of this directory site.
-          # Possible values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "inpageTagFormats": [ # Tag types for regular placements.
-          #
-          # Acceptable values are:
-          # - "STANDARD"
-          # - "IFRAME_JAVASCRIPT_INPAGE"
-          # - "INTERNAL_REDIRECT_INPAGE"
-          # - "JAVASCRIPT_INPAGE"
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "interstitialTagFormats": [ # Tag types for interstitial placements.
-          #
-          # Acceptable values are:
-          # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-          # - "INTERNAL_REDIRECT_INTERSTITIAL"
-          # - "JAVASCRIPT_INTERSTITIAL"
-        "A String",
-      ],
-      "contactAssignments": [ # Directory site contacts.
-        { # Directory Site Contact Assignment
-          "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-          "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-        },
-      ],
-      "url": "A String", # URL of this directory site.
-      "parentId": "A String", # Parent directory site ID.
-      "active": True or False, # Whether this directory site is active.
-      "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this directory site.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new directory site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-    "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-    "countryId": "A String", # Country ID of this directory site.
-    "description": "A String", # Description of this directory site.
-    "settings": { # Directory Site Settings # Directory site settings.
-      "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-      "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-      "dfp_settings": { # DFP Settings # Directory site DFP settings.
-        "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-        "dfp_network_name": "A String", # DFP network name for this directory site.
-        "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-        "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-        "dfp_network_code": "A String", # DFP network code for this directory site.
-      },
-      "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-      "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-      "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-      "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-    },
-    "currencyId": "A String", # Currency ID of this directory site.
-        # Possible values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "inpageTagFormats": [ # Tag types for regular placements.
-        # 
-        # Acceptable values are:
-        # - "STANDARD"
-        # - "IFRAME_JAVASCRIPT_INPAGE"
-        # - "INTERNAL_REDIRECT_INPAGE"
-        # - "JAVASCRIPT_INPAGE"
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "interstitialTagFormats": [ # Tag types for interstitial placements.
-        # 
-        # Acceptable values are:
-        # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-        # - "INTERNAL_REDIRECT_INTERSTITIAL"
-        # - "JAVASCRIPT_INTERSTITIAL"
-      "A String",
-    ],
-    "contactAssignments": [ # Directory site contacts.
-      { # Directory Site Contact Assignment
-        "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-        "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-      },
-    ],
-    "url": "A String", # URL of this directory site.
-    "parentId": "A String", # Parent directory site ID.
-    "active": True or False, # Whether this directory site is active.
-    "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this directory site.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-      "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
-      "settings": { # Directory Site Settings # Directory site settings.
-        "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-        "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
-          "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
-          "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-          "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
-        },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-        "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-        "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-      },
-      "currencyId": "A String", # Currency ID of this directory site.
-          # Possible values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "inpageTagFormats": [ # Tag types for regular placements.
-          #
-          # Acceptable values are:
-          # - "STANDARD"
-          # - "IFRAME_JAVASCRIPT_INPAGE"
-          # - "INTERNAL_REDIRECT_INPAGE"
-          # - "JAVASCRIPT_INPAGE"
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "interstitialTagFormats": [ # Tag types for interstitial placements.
-          #
-          # Acceptable values are:
-          # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-          # - "INTERNAL_REDIRECT_INTERSTITIAL"
-          # - "JAVASCRIPT_INTERSTITIAL"
-        "A String",
-      ],
-      "contactAssignments": [ # Directory site contacts.
-        { # Directory Site Contact Assignment
-          "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-          "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-        },
-      ],
-      "url": "A String", # URL of this directory site.
-      "parentId": "A String", # Parent directory site ID.
-      "active": True or False, # Whether this directory site is active.
-      "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this directory site.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</code>
-  <pre>Retrieves a list of directory sites, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  countryId: string, Select only directory sites with this country ID.
-  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  parentId: string, Select only directory sites with this parent ID.
-  acceptsPublisherPaidPlacements: boolean, Select only directory sites that accept publisher paid placements. This field can be left blank.
-  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.
-  searchString: string, Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, "directory site*2015" will return objects with names like "directory site June 2015", "directory site April 2015", or simply "directory site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site" will match objects with name "my directory site", "directory site 2015" or simply, "directory site".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only directory sites with these IDs. (repeated)
-  dfp_network_code: string, Select only directory sites with this DFP network code.
-
-Returns:
-  An object of the form:
-
-    { # Directory Site List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#directorySitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySitesListResponse".
-    "directorySites": [ # Directory site collection.
-      { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-          "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-          "countryId": "A String", # Country ID of this directory site.
-          "description": "A String", # Description of this directory site.
-          "settings": { # Directory Site Settings # Directory site settings.
-            "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-            "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-            "dfp_settings": { # DFP Settings # Directory site DFP settings.
-              "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-              "dfp_network_name": "A String", # DFP network name for this directory site.
-              "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-              "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-              "dfp_network_code": "A String", # DFP network code for this directory site.
-            },
-            "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-            "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-            "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-            "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-          },
-          "currencyId": "A String", # Currency ID of this directory site.
-              # Possible values are:
-              # - "1" for USD
-              # - "2" for GBP
-              # - "3" for ESP
-              # - "4" for SEK
-              # - "5" for CAD
-              # - "6" for JPY
-              # - "7" for DEM
-              # - "8" for AUD
-              # - "9" for FRF
-              # - "10" for ITL
-              # - "11" for DKK
-              # - "12" for NOK
-              # - "13" for FIM
-              # - "14" for ZAR
-              # - "15" for IEP
-              # - "16" for NLG
-              # - "17" for EUR
-              # - "18" for KRW
-              # - "19" for TWD
-              # - "20" for SGD
-              # - "21" for CNY
-              # - "22" for HKD
-              # - "23" for NZD
-              # - "24" for MYR
-              # - "25" for BRL
-              # - "26" for PTE
-              # - "27" for MXP
-              # - "28" for CLP
-              # - "29" for TRY
-              # - "30" for ARS
-              # - "31" for PEN
-              # - "32" for ILS
-              # - "33" for CHF
-              # - "34" for VEF
-              # - "35" for COP
-              # - "36" for GTQ
-              # - "37" for PLN
-              # - "39" for INR
-              # - "40" for THB
-              # - "41" for IDR
-              # - "42" for CZK
-              # - "43" for RON
-              # - "44" for HUF
-              # - "45" for RUB
-              # - "46" for AED
-              # - "47" for BGN
-              # - "48" for HRK
-          "inpageTagFormats": [ # Tag types for regular placements.
-              #
-              # Acceptable values are:
-              # - "STANDARD"
-              # - "IFRAME_JAVASCRIPT_INPAGE"
-              # - "INTERNAL_REDIRECT_INPAGE"
-              # - "JAVASCRIPT_INPAGE"
-            "A String",
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "interstitialTagFormats": [ # Tag types for interstitial placements.
-              #
-              # Acceptable values are:
-              # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-              # - "INTERNAL_REDIRECT_INTERSTITIAL"
-              # - "JAVASCRIPT_INTERSTITIAL"
-            "A String",
-          ],
-          "contactAssignments": [ # Directory site contacts.
-            { # Directory Site Contact Assignment
-              "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-              "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-            },
-          ],
-          "url": "A String", # URL of this directory site.
-          "parentId": "A String", # Parent directory site ID.
-          "active": True or False, # Whether this directory site is active.
-          "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this directory site.
-        },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5.dynamicTargetingKeys.html b/docs/dyn/dfareporting_v2_5.dynamicTargetingKeys.html
deleted file mode 100644
index 5cdcbf6..0000000
--- a/docs/dyn/dfareporting_v2_5.dynamicTargetingKeys.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.dynamicTargetingKeys.html">dynamicTargetingKeys</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, objectId, name, objectType)</a></code></p>
-<p class="firstline">Deletes an existing dynamic targeting key.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new dynamic targeting key. Keys must be created at the advertiser level before being assigned to the advertiser's ads, creatives, or placements. There is a maximum of 1000 keys per advertiser, out of which a maximum of 20 keys can be assigned per ad, creative, or placement.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId=None, objectId=None, names=None, objectType=None)</a></code></p>
-<p class="firstline">Retrieves a list of dynamic targeting keys.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, objectId, name, objectType)</code>
-  <pre>Deletes an existing dynamic targeting key.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  objectId: string, ID of the object of this dynamic targeting key. This is a required field. (required)
-  name: string, Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase. (required)
-  objectType: string, Type of the object of this dynamic targeting key. This is a required field. (required)
-    Allowed values
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_CREATIVE - 
-      OBJECT_PLACEMENT - 
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new dynamic targeting key. Keys must be created at the advertiser level before being assigned to the advertiser's ads, creatives, or placements. There is a maximum of 1000 keys per advertiser, out of which a maximum of 20 keys can be assigned per ad, creative, or placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with DoubleClick Studio dynamic creatives. Use these labels instead of numeric DCM IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.
-    "kind": "dfareporting#dynamicTargetingKey", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKey".
-    "name": "A String", # Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.
-    "objectId": "A String", # ID of the object of this dynamic targeting key. This is a required field.
-    "objectType": "A String", # Type of the object of this dynamic targeting key. This is a required field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with DoubleClick Studio dynamic creatives. Use these labels instead of numeric DCM IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.
-      "kind": "dfareporting#dynamicTargetingKey", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKey".
-      "name": "A String", # Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.
-      "objectId": "A String", # ID of the object of this dynamic targeting key. This is a required field.
-      "objectType": "A String", # Type of the object of this dynamic targeting key. This is a required field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId=None, objectId=None, names=None, objectType=None)</code>
-  <pre>Retrieves a list of dynamic targeting keys.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only dynamic targeting keys whose object has this advertiser ID.
-  objectId: string, Select only dynamic targeting keys with this object ID.
-  names: string, Select only dynamic targeting keys exactly matching these names. (repeated)
-  objectType: string, Select only dynamic targeting keys with this object type.
-    Allowed values
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_CREATIVE - 
-      OBJECT_PLACEMENT - 
-
-Returns:
-  An object of the form:
-
-    { # Dynamic Targeting Key List Response
-    "kind": "dfareporting#dynamicTargetingKeysListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKeysListResponse".
-    "dynamicTargetingKeys": [ # Dynamic targeting key collection.
-      { # Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with DoubleClick Studio dynamic creatives. Use these labels instead of numeric DCM IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.
-          "kind": "dfareporting#dynamicTargetingKey", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKey".
-          "name": "A String", # Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.
-          "objectId": "A String", # ID of the object of this dynamic targeting key. This is a required field.
-          "objectType": "A String", # Type of the object of this dynamic targeting key. This is a required field.
-        },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.eventTags.html b/docs/dyn/dfareporting_v2_5.eventTags.html
deleted file mode 100644
index 3861efc..0000000
--- a/docs/dyn/dfareporting_v2_5.eventTags.html
+++ /dev/null
@@ -1,493 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.eventTags.html">eventTags</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing event tag.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one event tag by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new event tag.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of event tags, possibly filtered.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing event tag. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing event tag.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one event tag by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</code>
-  <pre>Retrieves a list of event tags, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Select only event tags that belong to this campaign.
-  advertiserId: string, Select only event tags that belong to this advertiser.
-  adId: string, Select only event tags that belong to this ad.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  definitionsOnly: boolean, Examine only the specified campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign of the specified ad or campaign is examined as well. In addition, when set to false, the status field is examined as well, along with the enabledByDefault field. This parameter can not be set to true when adId is specified as ads do not define their own even tags.
-  eventTagTypes: string, Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. (repeated)
-    Allowed values
-      CLICK_THROUGH_EVENT_TAG - 
-      IMPRESSION_IMAGE_EVENT_TAG - 
-      IMPRESSION_JAVASCRIPT_EVENT_TAG - 
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "eventtag*2015" will return objects with names like "eventtag June 2015", "eventtag April 2015", or simply "eventtag 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "eventtag" will match objects with name "my eventtag", "eventtag 2015", or simply "eventtag".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  enabled: boolean, Select only enabled event tags. What is considered enabled or disabled depends on the definitionsOnly parameter. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.
-  ids: string, Select only event tags with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Event Tag List Response
-    "eventTags": [ # Event tag collection.
-      { # Contains properties of an event tag.
-          "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-          "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-          "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-          "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-          "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-          "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-          "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-          "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-          "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-            "A String",
-          ],
-          "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-          "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-          "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#eventTagsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTagsListResponse".
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing event tag. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.files.html b/docs/dyn/dfareporting_v2_5.files.html
deleted file mode 100644
index 1be52b0..0000000
--- a/docs/dyn/dfareporting_v2_5.files.html
+++ /dev/null
@@ -1,205 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.files.html">files</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
-<p class="toc_element">
-  <code><a href="#get_media">get_media(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
-<p class="firstline">Lists files for a user profile.</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="get">get(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
-
-Args:
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get_media">get_media(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
-
-Args:
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  The media object as a string.
-
-    </pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
-  <pre>Lists files for a user profile.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by file ID.
-      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
-    Allowed values
-      ALL - All files in account.
-      MINE - My files.
-      SHARED_WITH_ME - Files shared with me.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of File resources.
-    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The files returned in this response.
-      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-        "status": "A String", # The status of the report file.
-        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-        "format": "A String", # The output format of the report. Only available once the file is available.
-        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "fileName": "A String", # The filename of the file.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "reportId": "A String", # The ID of the report this file was generated from.
-        "urls": { # The URLs where the completed report file can be downloaded.
-          "browserUrl": "A String", # The URL for downloading the report data through a browser.
-          "apiUrl": "A String", # The URL for downloading the report data through the API.
-        },
-        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-        "id": "A String", # The unique ID of this report file.
-      },
-    ],
-    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5.floodlightActivityGroups.html b/docs/dyn/dfareporting_v2_5.floodlightActivityGroups.html
deleted file mode 100644
index e8cd8fc..0000000
--- a/docs/dyn/dfareporting_v2_5.floodlightActivityGroups.html
+++ /dev/null
@@ -1,488 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.floodlightActivityGroups.html">floodlightActivityGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight activity group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new floodlight activity group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight activity group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity Group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new floodlight activity group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</code>
-  <pre>Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only floodlight activity groups with the specified advertiser ID. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivitygroup*2015" will return objects with names like "floodlightactivitygroup June 2015", "floodlightactivitygroup April 2015", or simply "floodlightactivitygroup 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivitygroup" will match objects with name "my floodlightactivitygroup activity", "floodlightactivitygroup 2015", or simply "floodlightactivitygroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightConfigurationId: string, Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.
-  ids: string, Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only floodlight activity groups with the specified floodlight activity group type.
-    Allowed values
-      COUNTER - 
-      SALE - 
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#floodlightActivityGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroupsListResponse".
-    "floodlightActivityGroups": [ # Floodlight activity group collection.
-      { # Contains properties of a Floodlight activity group.
-          "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-          "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-          "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-          "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-          "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight activity group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity Group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight activity group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.html b/docs/dyn/dfareporting_v2_5.html
deleted file mode 100644
index 6ad6b94..0000000
--- a/docs/dyn/dfareporting_v2_5.html
+++ /dev/null
@@ -1,383 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.accountActiveAdSummaries.html">accountActiveAdSummaries()</a></code>
-</p>
-<p class="firstline">Returns the accountActiveAdSummaries Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.accountPermissionGroups.html">accountPermissionGroups()</a></code>
-</p>
-<p class="firstline">Returns the accountPermissionGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.accountPermissions.html">accountPermissions()</a></code>
-</p>
-<p class="firstline">Returns the accountPermissions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.accountUserProfiles.html">accountUserProfiles()</a></code>
-</p>
-<p class="firstline">Returns the accountUserProfiles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.accounts.html">accounts()</a></code>
-</p>
-<p class="firstline">Returns the accounts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.ads.html">ads()</a></code>
-</p>
-<p class="firstline">Returns the ads Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.advertiserGroups.html">advertiserGroups()</a></code>
-</p>
-<p class="firstline">Returns the advertiserGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.advertisers.html">advertisers()</a></code>
-</p>
-<p class="firstline">Returns the advertisers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.browsers.html">browsers()</a></code>
-</p>
-<p class="firstline">Returns the browsers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.campaignCreativeAssociations.html">campaignCreativeAssociations()</a></code>
-</p>
-<p class="firstline">Returns the campaignCreativeAssociations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.campaigns.html">campaigns()</a></code>
-</p>
-<p class="firstline">Returns the campaigns Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.changeLogs.html">changeLogs()</a></code>
-</p>
-<p class="firstline">Returns the changeLogs Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.cities.html">cities()</a></code>
-</p>
-<p class="firstline">Returns the cities Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.connectionTypes.html">connectionTypes()</a></code>
-</p>
-<p class="firstline">Returns the connectionTypes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.contentCategories.html">contentCategories()</a></code>
-</p>
-<p class="firstline">Returns the contentCategories Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.conversions.html">conversions()</a></code>
-</p>
-<p class="firstline">Returns the conversions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.countries.html">countries()</a></code>
-</p>
-<p class="firstline">Returns the countries Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.creativeAssets.html">creativeAssets()</a></code>
-</p>
-<p class="firstline">Returns the creativeAssets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.creativeFieldValues.html">creativeFieldValues()</a></code>
-</p>
-<p class="firstline">Returns the creativeFieldValues Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.creativeFields.html">creativeFields()</a></code>
-</p>
-<p class="firstline">Returns the creativeFields Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.creativeGroups.html">creativeGroups()</a></code>
-</p>
-<p class="firstline">Returns the creativeGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.creatives.html">creatives()</a></code>
-</p>
-<p class="firstline">Returns the creatives Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.dimensionValues.html">dimensionValues()</a></code>
-</p>
-<p class="firstline">Returns the dimensionValues Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.directorySiteContacts.html">directorySiteContacts()</a></code>
-</p>
-<p class="firstline">Returns the directorySiteContacts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.directorySites.html">directorySites()</a></code>
-</p>
-<p class="firstline">Returns the directorySites Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.dynamicTargetingKeys.html">dynamicTargetingKeys()</a></code>
-</p>
-<p class="firstline">Returns the dynamicTargetingKeys Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.eventTags.html">eventTags()</a></code>
-</p>
-<p class="firstline">Returns the eventTags Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.files.html">files()</a></code>
-</p>
-<p class="firstline">Returns the files Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.floodlightActivities.html">floodlightActivities()</a></code>
-</p>
-<p class="firstline">Returns the floodlightActivities Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.floodlightActivityGroups.html">floodlightActivityGroups()</a></code>
-</p>
-<p class="firstline">Returns the floodlightActivityGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.floodlightConfigurations.html">floodlightConfigurations()</a></code>
-</p>
-<p class="firstline">Returns the floodlightConfigurations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.inventoryItems.html">inventoryItems()</a></code>
-</p>
-<p class="firstline">Returns the inventoryItems Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.landingPages.html">landingPages()</a></code>
-</p>
-<p class="firstline">Returns the landingPages Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.metros.html">metros()</a></code>
-</p>
-<p class="firstline">Returns the metros Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.mobileCarriers.html">mobileCarriers()</a></code>
-</p>
-<p class="firstline">Returns the mobileCarriers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.operatingSystemVersions.html">operatingSystemVersions()</a></code>
-</p>
-<p class="firstline">Returns the operatingSystemVersions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.operatingSystems.html">operatingSystems()</a></code>
-</p>
-<p class="firstline">Returns the operatingSystems Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.orderDocuments.html">orderDocuments()</a></code>
-</p>
-<p class="firstline">Returns the orderDocuments Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.orders.html">orders()</a></code>
-</p>
-<p class="firstline">Returns the orders Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.placementGroups.html">placementGroups()</a></code>
-</p>
-<p class="firstline">Returns the placementGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.placementStrategies.html">placementStrategies()</a></code>
-</p>
-<p class="firstline">Returns the placementStrategies Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.placements.html">placements()</a></code>
-</p>
-<p class="firstline">Returns the placements Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.platformTypes.html">platformTypes()</a></code>
-</p>
-<p class="firstline">Returns the platformTypes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.postalCodes.html">postalCodes()</a></code>
-</p>
-<p class="firstline">Returns the postalCodes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.projects.html">projects()</a></code>
-</p>
-<p class="firstline">Returns the projects Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.regions.html">regions()</a></code>
-</p>
-<p class="firstline">Returns the regions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.remarketingListShares.html">remarketingListShares()</a></code>
-</p>
-<p class="firstline">Returns the remarketingListShares Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.remarketingLists.html">remarketingLists()</a></code>
-</p>
-<p class="firstline">Returns the remarketingLists Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.reports.html">reports()</a></code>
-</p>
-<p class="firstline">Returns the reports Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.sites.html">sites()</a></code>
-</p>
-<p class="firstline">Returns the sites Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.sizes.html">sizes()</a></code>
-</p>
-<p class="firstline">Returns the sizes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.subaccounts.html">subaccounts()</a></code>
-</p>
-<p class="firstline">Returns the subaccounts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.targetableRemarketingLists.html">targetableRemarketingLists()</a></code>
-</p>
-<p class="firstline">Returns the targetableRemarketingLists Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.userProfiles.html">userProfiles()</a></code>
-</p>
-<p class="firstline">Returns the userProfiles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.userRolePermissionGroups.html">userRolePermissionGroups()</a></code>
-</p>
-<p class="firstline">Returns the userRolePermissionGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.userRolePermissions.html">userRolePermissions()</a></code>
-</p>
-<p class="firstline">Returns the userRolePermissions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.userRoles.html">userRoles()</a></code>
-</p>
-<p class="firstline">Returns the userRoles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.inventoryItems.html b/docs/dyn/dfareporting_v2_5.inventoryItems.html
deleted file mode 100644
index d069752..0000000
--- a/docs/dyn/dfareporting_v2_5.inventoryItems.html
+++ /dev/null
@@ -1,250 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.inventoryItems.html">inventoryItems</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one inventory item by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, pageToken=None, inPlan=None, sortOrder=None, type=None, orderId=None, maxResults=None, siteId=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of inventory items, possibly filtered. This method supports paging.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one inventory item by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  id: string, Inventory item ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a buy from the DoubleClick Planning inventory store.
-    "orderId": "A String", # Order ID of this inventory item.
-    "pricing": { # Pricing Information # Pricing of this inventory item.
-      "groupType": "A String", # Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.
-      "startDate": "A String", # Start date of this inventory item.
-      "endDate": "A String", # End date of this inventory item.
-      "pricingType": "A String", # Pricing type of this inventory item.
-      "flights": [ # Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.
-        { # Flight
-          "rateOrCost": "A String", # Rate or cost of this flight.
-          "startDate": "A String", # Inventory item flight start date.
-          "units": "A String", # Units of this flight.
-          "endDate": "A String", # Inventory item flight end date.
-        },
-      ],
-      "capCostType": "A String", # Cap cost type of this inventory item.
-    },
-    "kind": "dfareporting#inventoryItem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItem".
-    "negotiationChannelId": "A String", # Negotiation channel ID of this inventory item.
-    "subaccountId": "A String", # Subaccount ID of this inventory item.
-    "name": "A String", # Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.
-    "estimatedClickThroughRate": "A String", # Estimated click-through rate of this inventory item.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this inventory item.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "estimatedConversionRate": "A String", # Estimated conversion rate of this inventory item.
-    "inPlan": True or False, # Whether this inventory item is in plan.
-    "id": "A String", # ID of this inventory item.
-    "advertiserId": "A String", # Advertiser ID of this inventory item.
-    "siteId": "A String", # ID of the site this inventory item is associated with.
-    "adSlots": [ # Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.
-      { # Ad Slot
-        "comment": "A String", # Comment for this ad slot.
-        "linkedPlacementId": "A String", # ID of the placement from an external platform that is linked to this ad slot.
-        "name": "A String", # Name of this ad slot.
-        "primary": True or False, # Primary ad slot of a roadblock inventory item.
-        "height": "A String", # Height of this ad slot.
-        "width": "A String", # Width of this ad slot.
-        "paymentSourceType": "A String", # Payment source type of this ad slot.
-        "compatibility": "A String", # Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.
-      },
-    ],
-    "projectId": "A String", # Project ID of this inventory item.
-    "rfpId": "A String", # RFP ID of this inventory item.
-    "type": "A String", # Type of inventory item.
-    "contentCategoryId": "A String", # Content category ID of this inventory item.
-    "placementStrategyId": "A String", # Placement strategy ID of this inventory item.
-    "accountId": "A String", # Account ID of this inventory item.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, pageToken=None, inPlan=None, sortOrder=None, type=None, orderId=None, maxResults=None, siteId=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of inventory items, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  inPlan: boolean, Select only inventory items that are in plan.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only inventory items with this type.
-    Allowed values
-      PLANNING_PLACEMENT_TYPE_CREDIT - 
-      PLANNING_PLACEMENT_TYPE_REGULAR - 
-  orderId: string, Select only inventory items that belong to specified orders. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  siteId: string, Select only inventory items that are associated with these sites. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only inventory items with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Inventory item List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#inventoryItemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItemsListResponse".
-    "inventoryItems": [ # Inventory item collection
-      { # Represents a buy from the DoubleClick Planning inventory store.
-        "orderId": "A String", # Order ID of this inventory item.
-        "pricing": { # Pricing Information # Pricing of this inventory item.
-          "groupType": "A String", # Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.
-          "startDate": "A String", # Start date of this inventory item.
-          "endDate": "A String", # End date of this inventory item.
-          "pricingType": "A String", # Pricing type of this inventory item.
-          "flights": [ # Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.
-            { # Flight
-              "rateOrCost": "A String", # Rate or cost of this flight.
-              "startDate": "A String", # Inventory item flight start date.
-              "units": "A String", # Units of this flight.
-              "endDate": "A String", # Inventory item flight end date.
-            },
-          ],
-          "capCostType": "A String", # Cap cost type of this inventory item.
-        },
-        "kind": "dfareporting#inventoryItem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItem".
-        "negotiationChannelId": "A String", # Negotiation channel ID of this inventory item.
-        "subaccountId": "A String", # Subaccount ID of this inventory item.
-        "name": "A String", # Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.
-        "estimatedClickThroughRate": "A String", # Estimated click-through rate of this inventory item.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this inventory item.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "estimatedConversionRate": "A String", # Estimated conversion rate of this inventory item.
-        "inPlan": True or False, # Whether this inventory item is in plan.
-        "id": "A String", # ID of this inventory item.
-        "advertiserId": "A String", # Advertiser ID of this inventory item.
-        "siteId": "A String", # ID of the site this inventory item is associated with.
-        "adSlots": [ # Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.
-          { # Ad Slot
-            "comment": "A String", # Comment for this ad slot.
-            "linkedPlacementId": "A String", # ID of the placement from an external platform that is linked to this ad slot.
-            "name": "A String", # Name of this ad slot.
-            "primary": True or False, # Primary ad slot of a roadblock inventory item.
-            "height": "A String", # Height of this ad slot.
-            "width": "A String", # Width of this ad slot.
-            "paymentSourceType": "A String", # Payment source type of this ad slot.
-            "compatibility": "A String", # Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.
-          },
-        ],
-        "projectId": "A String", # Project ID of this inventory item.
-        "rfpId": "A String", # RFP ID of this inventory item.
-        "type": "A String", # Type of inventory item.
-        "contentCategoryId": "A String", # Content category ID of this inventory item.
-        "placementStrategyId": "A String", # Placement strategy ID of this inventory item.
-        "accountId": "A String", # Account ID of this inventory item.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5.landingPages.html b/docs/dyn/dfareporting_v2_5.landingPages.html
deleted file mode 100644
index 8bc9541..0000000
--- a/docs/dyn/dfareporting_v2_5.landingPages.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.landingPages.html">landingPages</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, campaignId, id)</a></code></p>
-<p class="firstline">Deletes an existing campaign landing page.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, campaignId, id)</a></code></p>
-<p class="firstline">Gets one campaign landing page by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Inserts a new landing page for the specified campaign.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId)</a></code></p>
-<p class="firstline">Retrieves the list of landing pages for the specified campaign.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, campaignId, id, body)</a></code></p>
-<p class="firstline">Updates an existing campaign landing page. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Updates an existing campaign landing page.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, campaignId, id)</code>
-  <pre>Deletes an existing campaign landing page.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, campaignId, id)</code>
-  <pre>Gets one campaign landing page by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, campaignId, body)</code>
-  <pre>Inserts a new landing page for the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId)</code>
-  <pre>Retrieves the list of landing pages for the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Landing Page List Response
-    "kind": "dfareporting#landingPagesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPagesListResponse".
-    "landingPages": [ # Landing page collection
-      { # Contains information about where a user's browser is taken after the user clicks an ad.
-          "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-          "url": "A String", # URL of this landing page. This is a required field.
-          "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-          "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, campaignId, id, body)</code>
-  <pre>Updates an existing campaign landing page. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, campaignId, body)</code>
-  <pre>Updates an existing campaign landing page.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.operatingSystemVersions.html b/docs/dyn/dfareporting_v2_5.operatingSystemVersions.html
deleted file mode 100644
index 74459b8..0000000
--- a/docs/dyn/dfareporting_v2_5.operatingSystemVersions.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.operatingSystemVersions.html">operatingSystemVersions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one operating system version by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of operating system versions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one operating system version by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Operating system version ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a particular version of an operating system that can be targeted by ads.
-    "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-    "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-    "name": "A String", # Name of this operating system version.
-    "id": "A String", # ID of this operating system version.
-    "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-      "mobile": True or False, # Whether this operating system is for mobile.
-      "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-      "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-      "name": "A String", # Name of this operating system.
-      "desktop": True or False, # Whether this operating system is for desktop.
-    },
-    "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of operating system versions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Operating System Version List Response
-    "kind": "dfareporting#operatingSystemVersionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersionsListResponse".
-    "operatingSystemVersions": [ # Operating system version collection.
-      { # Contains information about a particular version of an operating system that can be targeted by ads.
-        "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-        "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-        "name": "A String", # Name of this operating system version.
-        "id": "A String", # ID of this operating system version.
-        "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-        "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.placementGroups.html b/docs/dyn/dfareporting_v2_5.placementGroups.html
deleted file mode 100644
index a019c94..0000000
--- a/docs/dyn/dfareporting_v2_5.placementGroups.html
+++ /dev/null
@@ -1,977 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.placementGroups.html">placementGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, searchString=None, minEndDate=None, directorySiteIds=None, ids=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of placement groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, searchString=None, minEndDate=None, directorySiteIds=None, ids=None, sortField=None)</code>
-  <pre>Retrieves a list of placement groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  siteIds: string, Select only placement groups that are associated with these sites. (repeated)
-  placementGroupType: string, Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.
-    Allowed values
-      PLACEMENT_PACKAGE - 
-      PLACEMENT_ROADBLOCK - 
-  pricingTypes: string, Select only placement groups with these pricing types. (repeated)
-    Allowed values
-      PRICING_TYPE_CPA - 
-      PRICING_TYPE_CPC - 
-      PRICING_TYPE_CPM - 
-      PRICING_TYPE_CPM_ACTIVEVIEW - 
-      PRICING_TYPE_FLAT_RATE_CLICKS - 
-      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
-  campaignIds: string, Select only placement groups that belong to these campaigns. (repeated)
-  advertiserIds: string, Select only placement groups that belong to these advertisers. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as "yyyy-MM-dd".
-  placementStrategyIds: string, Select only placement groups that are associated with these placement strategies. (repeated)
-  contentCategoryIds: string, Select only placement groups that are associated with these content categories. (repeated)
-  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
-  maxResults: integer, Maximum number of results to return.
-  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as "yyyy-MM-dd".
-  searchString: string, Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placement groups with names like "placement group June 2015", "placement group May 2015", or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementgroup" will match placement groups with name "my placementgroup", "placementgroup 2015", or simply "placementgroup".
-  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as "yyyy-MM-dd".
-  directorySiteIds: string, Select only placement groups that are associated with these directory sites. (repeated)
-  ids: string, Select only placement groups with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # Placement Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroupsListResponse".
-    "placementGroups": [ # Placement group collection.
-      { # Contains properties of a package or roadblock.
-          "comment": "A String", # Comments for this placement group.
-          "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-          "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-          "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-          "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-          "archived": True or False, # Whether this placement group is archived.
-          "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-            "A String",
-          ],
-          "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-          "externalId": "A String", # External ID for this placement.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-          "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-          "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-            "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-            "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-            "capCostOption": "A String", # Placement cap cost option.
-            "pricingPeriods": [ # Pricing periods for this placement.
-              { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-                "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-                "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-                "pricingComment": "A String", # Comments for this pricing period.
-              },
-            ],
-            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-          },
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.projects.html b/docs/dyn/dfareporting_v2_5.projects.html
deleted file mode 100644
index 9501d39..0000000
--- a/docs/dyn/dfareporting_v2_5.projects.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.projects.html">projects</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one project by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of projects, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one project by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Project ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DoubleClick Planning project.
-    "startDate": "A String", # Start date of the project.
-    "kind": "dfareporting#project", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#project".
-    "targetConversions": "A String", # Number of conversions that the advertiser is targeting.
-    "endDate": "A String", # End date of the project.
-    "name": "A String", # Name of this project.
-    "targetCpmNanos": "A String", # CPM that the advertiser is targeting.
-    "targetCpcNanos": "A String", # CPC that the advertiser is targeting.
-    "clientBillingCode": "A String", # Client billing code of this project.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this project.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "targetClicks": "A String", # Number of clicks that the advertiser is targeting.
-    "budget": "A String", # Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.
-    "targetCpaNanos": "A String", # CPA that the advertiser is targeting.
-    "advertiserId": "A String", # Advertiser ID of this project.
-    "targetImpressions": "A String", # Number of impressions that the advertiser is targeting.
-    "overview": "A String", # Overview of this project.
-    "audienceAgeGroup": "A String", # Audience age group of this project.
-    "subaccountId": "A String", # Subaccount ID of this project.
-    "audienceGender": "A String", # Audience gender of this project.
-    "id": "A String", # ID of this project. This is a read-only, auto-generated field.
-    "clientName": "A String", # Name of the project client.
-    "accountId": "A String", # Account ID of this project.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of projects, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for projects by name or ID. Wildcards (*) are allowed. For example, "project*2015" will return projects with names like "project June 2015", "project April 2015", or simply "project 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "project" will match projects with name "my project", "project 2015", or simply "project".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only projects with these advertiser IDs. (repeated)
-  ids: string, Select only projects with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Project List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#projectsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#projectsListResponse".
-    "projects": [ # Project collection.
-      { # Contains properties of a DoubleClick Planning project.
-        "startDate": "A String", # Start date of the project.
-        "kind": "dfareporting#project", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#project".
-        "targetConversions": "A String", # Number of conversions that the advertiser is targeting.
-        "endDate": "A String", # End date of the project.
-        "name": "A String", # Name of this project.
-        "targetCpmNanos": "A String", # CPM that the advertiser is targeting.
-        "targetCpcNanos": "A String", # CPC that the advertiser is targeting.
-        "clientBillingCode": "A String", # Client billing code of this project.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this project.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "targetClicks": "A String", # Number of clicks that the advertiser is targeting.
-        "budget": "A String", # Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.
-        "targetCpaNanos": "A String", # CPA that the advertiser is targeting.
-        "advertiserId": "A String", # Advertiser ID of this project.
-        "targetImpressions": "A String", # Number of impressions that the advertiser is targeting.
-        "overview": "A String", # Overview of this project.
-        "audienceAgeGroup": "A String", # Audience age group of this project.
-        "subaccountId": "A String", # Subaccount ID of this project.
-        "audienceGender": "A String", # Audience gender of this project.
-        "id": "A String", # ID of this project. This is a read-only, auto-generated field.
-        "clientName": "A String", # Name of the project client.
-        "accountId": "A String", # Account ID of this project.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5.remarketingLists.html b/docs/dyn/dfareporting_v2_5.remarketingLists.html
deleted file mode 100644
index 0b9df24..0000000
--- a/docs/dyn/dfareporting_v2_5.remarketingLists.html
+++ /dev/null
@@ -1,532 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.remarketingLists.html">remarketingLists</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one remarketing list by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new remarketing list.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of remarketing lists, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one remarketing list by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new remarketing list.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of remarketing lists, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only remarketing lists owned by this advertiser. (required)
-  name: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "remarketing list*2015" will return objects with names like "remarketing list June 2015", "remarketing list April 2015", or simply "remarketing list 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "remarketing list" will match objects with name "my remarketing list", "remarketing list 2015", or simply "remarketing list".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightActivityId: string, Select only remarketing lists that have this floodlight activity ID.
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active or only inactive remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Remarketing list response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "remarketingLists": [ # Remarketing list collection.
-      { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-          "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-            "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-            "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-              { # A group clause made up of list population terms representing constraints joined by ORs.
-                "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-                  { # Remarketing List Population Rule Term.
-                    "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                    "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                    "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                    "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                    "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                  },
-                ],
-              },
-            ],
-          },
-          "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-          "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-          "description": "A String", # Remarketing list description.
-          "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-          "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-          "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-          "listSource": "A String", # Product from which this remarketing list was originated.
-          "active": True or False, # Whether this remarketing list is active.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-        },
-    ],
-    "kind": "dfareporting#remarketingListsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing remarketing list. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing remarketing list.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.reports.compatibleFields.html b/docs/dyn/dfareporting_v2_5.reports.compatibleFields.html
deleted file mode 100644
index 28e57f7..0000000
--- a/docs/dyn/dfareporting_v2_5.reports.compatibleFields.html
+++ /dev/null
@@ -1,551 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.reports.html">reports</a> . <a href="dfareporting_v2_5.reports.compatibleFields.html">compatibleFields</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#query">query(profileId, body)</a></code></p>
-<p class="firstline">Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="query">query(profileId, body)</code>
-  <pre>Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a response to the queryCompatibleFields method.
-    "kind": "dfareporting#compatibleFields", # The kind of resource this is, in this case dfareporting#compatibleFields.
-    "reachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "REACH". # Contains items that are compatible to be selected for a report of type "REACH".
-      "kind": "dfareporting#reachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "reachByFrequencyMetrics": [ # Metrics which are compatible to be selected in the "reachByFrequencyMetricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-    },
-    "pathToConversionReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "PATH_TO_CONVERSION". # Contains items that are compatible to be selected for a report of type "PATH_TO_CONVERSION".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "perInteractionDimensions": [ # Per-interaction dimensions which are compatible to be selected in the "perInteractionDimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "kind": "dfareporting#pathToConversionReportCompatibleFields", # The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.
-      "conversionDimensions": [ # Conversion dimensions which are compatible to be selected in the "conversionDimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "customFloodlightVariables": [ # Custom floodlight variables which are compatible to be selected in the "customFloodlightVariables" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "crossDimensionReachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH". # Contains items that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # Dimensions which are compatible to be selected in the "breakdown" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#crossDimensionReachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.
-      "overlapMetrics": [ # Metrics which are compatible to be selected in the "overlapMetricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "floodlightReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "FlOODLIGHT". # Contains items that are compatible to be selected for a report of type "FLOODLIGHT".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#floodlightReportCompatibleFields", # The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "reportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "STANDARD". # Contains items that are compatible to be selected for a report of type "STANDARD".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#reportCompatibleFields", # The kind of resource this is, in this case dfareporting#reportCompatibleFields.
-      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.reports.files.html b/docs/dyn/dfareporting_v2_5.reports.files.html
deleted file mode 100644
index b8b2ffd..0000000
--- a/docs/dyn/dfareporting_v2_5.reports.files.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.reports.html">reports</a> . <a href="dfareporting_v2_5.reports.files.html">files</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
-<p class="toc_element">
-  <code><a href="#get_media">get_media(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Lists files for a report.</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="get">get(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get_media">get_media(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  The media object as a string.
-
-    </pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</code>
-  <pre>Lists files for a report.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the parent report. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by file ID.
-      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of File resources.
-    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The files returned in this response.
-      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-        "status": "A String", # The status of the report file.
-        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-        "format": "A String", # The output format of the report. Only available once the file is available.
-        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "fileName": "A String", # The filename of the file.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "reportId": "A String", # The ID of the report this file was generated from.
-        "urls": { # The URLs where the completed report file can be downloaded.
-          "browserUrl": "A String", # The URL for downloading the report data through a browser.
-          "apiUrl": "A String", # The URL for downloading the report data through the API.
-        },
-        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-        "id": "A String", # The unique ID of this report file.
-      },
-    ],
-    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5.reports.html b/docs/dyn/dfareporting_v2_5.reports.html
deleted file mode 100644
index 9958ce4..0000000
--- a/docs/dyn/dfareporting_v2_5.reports.html
+++ /dev/null
@@ -1,2795 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.reports.html">reports</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.reports.compatibleFields.html">compatibleFields()</a></code>
-</p>
-<p class="firstline">Returns the compatibleFields Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5.reports.files.html">files()</a></code>
-</p>
-<p class="firstline">Returns the files Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, reportId)</a></code></p>
-<p class="firstline">Deletes a report by its ID.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, reportId)</a></code></p>
-<p class="firstline">Retrieves a report by its ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Creates a report.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
-<p class="firstline">Retrieves list of reports.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, reportId, body)</a></code></p>
-<p class="firstline">Updates a report. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#run">run(profileId, reportId, synchronous=None)</a></code></p>
-<p class="firstline">Runs a report.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, reportId, body)</a></code></p>
-<p class="firstline">Updates a report.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, reportId)</code>
-  <pre>Deletes a report by its ID.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, reportId)</code>
-  <pre>Retrieves a report by its ID.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Creates a report.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
-  <pre>Retrieves list of reports.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by report ID.
-      LAST_MODIFIED_TIME - Sort by 'lastModifiedTime' field.
-      NAME - Sort by name of reports.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
-    Allowed values
-      ALL - All reports in account.
-      MINE - My reports.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of reports.
-    "nextPageToken": "A String", # Continuation token used to page through reports. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The reports returned in this response.
-      { # Represents a Report resource.
-          "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-            "conversionDimensions": [ # The list of conversion dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "reportProperties": { # The properties of the report.
-              "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-              "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-              "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-              "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-              "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-              "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-              "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-            },
-            "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "customRichMediaEvents": [ # The list of custom rich media events to include.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-          },
-          "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-          "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-          "name": "A String", # The name of the report.
-          "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-            "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-            "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-                # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-            "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-            "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-            "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-            "repeats": "A String", # The interval for which the report is repeated. Note:
-                # - "DAILY" also requires field "every" to be set.
-                # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-                # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-            "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-              "A String",
-            ],
-          },
-          "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-          "ownerProfileId": "A String", # The user profile id of the owner of this report.
-          "reachCriteria": { # The report criteria for a report of type "REACH".
-            "activities": { # Represents an activity group. # Activity group.
-              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-              "metricNames": [ # List of names of floodlight activity metrics.
-                "A String",
-              ],
-            },
-            "dimensions": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-              "A String",
-            ],
-            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-            },
-            "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-          },
-          "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-            "dimensions": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "customRichMediaEvents": [ # The list of custom rich media events to include.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "reportProperties": { # The properties of the report.
-              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-              "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-            },
-          },
-          "fileName": "A String", # The filename used when generating report files for this report.
-          "delivery": { # The report's email delivery settings.
-            "message": "A String", # The message to be sent with each email.
-            "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-            "recipients": [ # The list of recipients to which to email the report.
-              { # Represents a recipient.
-                "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-                "deliveryType": "A String", # The delivery type for the recipient.
-                "email": "A String", # The email address of the recipient.
-              },
-            ],
-            "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-          },
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "criteria": { # The report criteria for a report of type "STANDARD".
-            "activities": { # Represents an activity group. # Activity group.
-              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-              "metricNames": [ # List of names of floodlight activity metrics.
-                "A String",
-              ],
-            },
-            "dimensions": [ # The list of standard dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range for which this report should be run.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-            },
-          },
-          "id": "A String", # The unique ID identifying this report resource.
-          "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-          "type": "A String", # The type of the report.
-          "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-            "breakdown": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-              "A String",
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-            "dimension": "A String", # The dimension option.
-          },
-          "accountId": "A String", # The account ID to which this report belongs.
-        },
-    ],
-    "kind": "dfareporting#reportList", # The kind of list this is, in this case dfareporting#reportList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, reportId, body)</code>
-  <pre>Updates a report. This method supports patch semantics.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="run">run(profileId, reportId, synchronous=None)</code>
-  <pre>Runs a report.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  synchronous: boolean, If set and true, tries to run the report synchronously.
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, reportId, body)</code>
-  <pre>Updates a report.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.sites.html b/docs/dyn/dfareporting_v2_5.sites.html
deleted file mode 100644
index 38c6174..0000000
--- a/docs/dyn/dfareporting_v2_5.sites.html
+++ /dev/null
@@ -1,675 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.sites.html">sites</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one site by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new site.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of sites, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing site. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing site.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one site by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Site ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of sites, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  unmappedSite: boolean, Select only sites that have not been mapped to a directory site.
-  campaignIds: string, Select only sites with these campaign IDs. (repeated)
-  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  acceptsPublisherPaidPlacements: boolean, Select only sites that accept publisher paid placements.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  maxResults: integer, Maximum number of results to return.
-  adWordsSite: boolean, Select only AdWords sites.
-  approved: boolean, Select only approved sites.
-  searchString: string, Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, "site*2015" will return objects with names like "site June 2015", "site April 2015", or simply "site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "site" will match objects with name "my site", "site 2015", or simply "site".
-  subaccountId: string, Select only sites with this subaccount ID.
-  directorySiteIds: string, Select only sites with these directory site IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only sites with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Site List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#sitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sitesListResponse".
-    "sites": [ # Site collection.
-      { # Contains properties of a site.
-          "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-          "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteSettings": { # Site Settings # Site-wide settings.
-            "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-            "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-            "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            },
-            "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-            "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-              "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-              "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-              "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-              "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-            },
-            "creativeSettings": { # Creative Settings # Site-wide creative settings.
-              "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-              "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-            },
-            "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-          },
-          "approved": True or False, # Whether this site is approved.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteContacts": [ # Site contacts.
-            { # Site Contact
-              "firstName": "A String", # First name of this site contact.
-              "title": "A String", # Title or designation of this site contact.
-              "lastName": "A String", # Last name of this site contact.
-              "address": "A String", # Address of this site contact.
-              "email": "A String", # Email address of this site contact. This is a required field.
-              "phone": "A String", # Primary phone number of this site contact.
-              "contactType": "A String", # Site contact type.
-              "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-            },
-          ],
-          "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-          "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-          "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing site. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Site ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.targetableRemarketingLists.html b/docs/dyn/dfareporting_v2_5.targetableRemarketingLists.html
deleted file mode 100644
index 5b86376..0000000
--- a/docs/dyn/dfareporting_v2_5.targetableRemarketingLists.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.targetableRemarketingLists.html">targetableRemarketingLists</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one remarketing list by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one remarketing list by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.
-    "kind": "dfareporting#targetableRemarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Targetable remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the targetable remarketing list without an impression.
-    "name": "A String", # Name of the targetable remarketing list. Is no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this targetable remarketing list.
-    "listSource": "A String", # Product from which this targetable remarketing list was originated.
-    "active": True or False, # Whether this targetable remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Targetable remarketing list ID.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only targetable remarketing lists targetable by these advertisers. (required)
-  name: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "remarketing list*2015" will return objects with names like "remarketing list June 2015", "remarketing list April 2015", or simply "remarketing list 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "remarketing list" will match objects with name "my remarketing list", "remarketing list 2015", or simply "remarketing list".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active or only inactive targetable remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Targetable remarketing list response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#targetableRemarketingListsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingListsListResponse".
-    "targetableRemarketingLists": [ # Targetable remarketing list collection.
-      { # Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.
-        "kind": "dfareporting#targetableRemarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingList".
-        "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-        "description": "A String", # Targetable remarketing list description.
-        "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-        "lifeSpan": "A String", # Number of days that a user should remain in the targetable remarketing list without an impression.
-        "name": "A String", # Name of the targetable remarketing list. Is no greater than 128 characters long.
-        "advertiserId": "A String", # Dimension value for the advertiser ID that owns this targetable remarketing list.
-        "listSource": "A String", # Product from which this targetable remarketing list was originated.
-        "active": True or False, # Whether this targetable remarketing list is active.
-        "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "id": "A String", # Targetable remarketing list ID.
-        "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5.userProfiles.html b/docs/dyn/dfareporting_v2_5.userProfiles.html
deleted file mode 100644
index 015aa62..0000000
--- a/docs/dyn/dfareporting_v2_5.userProfiles.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.userProfiles.html">userProfiles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId)</a></code></p>
-<p class="firstline">Gets one user profile by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list()</a></code></p>
-<p class="firstline">Retrieves list of user profiles for a user.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId)</code>
-  <pre>Gets one user profile by ID.
-
-Args:
-  profileId: string, The user profile ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a UserProfile resource.
-    "userName": "A String", # The user name.
-    "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
-    "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
-    "accountName": "A String", # The account name this profile belongs to.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
-    "profileId": "A String", # The unique ID of the user profile.
-    "accountId": "A String", # The account ID to which this profile belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list()</code>
-  <pre>Retrieves list of user profiles for a user.
-
-Args:
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of user profiles.
-    "items": [ # The user profiles returned in this response.
-      { # Represents a UserProfile resource.
-        "userName": "A String", # The user name.
-        "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
-        "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
-        "accountName": "A String", # The account name this profile belongs to.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
-        "profileId": "A String", # The unique ID of the user profile.
-        "accountId": "A String", # The account ID to which this profile belongs.
-      },
-    ],
-    "kind": "dfareporting#userProfileList", # The kind of list this is, in this case dfareporting#userProfileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.userRolePermissionGroups.html b/docs/dyn/dfareporting_v2_5.userRolePermissionGroups.html
deleted file mode 100644
index da697d5..0000000
--- a/docs/dyn/dfareporting_v2_5.userRolePermissionGroups.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.userRolePermissionGroups.html">userRolePermissionGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role permission group by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Gets a list of all supported user role permission groups.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role permission group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role permission group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a grouping of related user role permissions.
-    "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
-    "id": "A String", # ID of this user role permission.
-    "name": "A String", # Name of this user role permission group.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Gets a list of all supported user role permission groups.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # User Role Permission Group List Response
-    "userRolePermissionGroups": [ # User role permission group collection.
-      { # Represents a grouping of related user role permissions.
-        "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
-        "id": "A String", # ID of this user role permission.
-        "name": "A String", # Name of this user role permission group.
-      },
-    ],
-    "kind": "dfareporting#userRolePermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroupsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5.userRolePermissions.html b/docs/dyn/dfareporting_v2_5.userRolePermissions.html
deleted file mode 100644
index 0f7e480..0000000
--- a/docs/dyn/dfareporting_v2_5.userRolePermissions.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<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="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.userRolePermissions.html">userRolePermissions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role permission by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, ids=None)</a></code></p>
-<p class="firstline">Gets a list of user role permissions, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role permission by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role permission ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a user role permission.
-    "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-    "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-    "availability": "A String", # Levels of availability for a user role permission.
-    "name": "A String", # Name of this user role permission.
-    "id": "A String", # ID of this user role permission.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, ids=None)</code>
-  <pre>Gets a list of user role permissions, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  ids: string, Select only user role permissions with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # User Role Permission List Response
-    "userRolePermissions": [ # User role permission collection.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "kind": "dfareporting#userRolePermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.accountActiveAdSummaries.html b/docs/dyn/dfareporting_v2_5beta1.accountActiveAdSummaries.html
deleted file mode 100644
index e99a7fc..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.accountActiveAdSummaries.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.accountActiveAdSummaries.html">accountActiveAdSummaries</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, summaryAccountId)</a></code></p>
-<p class="firstline">Gets the account's active ad summary by account ID.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, summaryAccountId)</code>
-  <pre>Gets the account's active ad summary by account ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  summaryAccountId: string, Account ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Gets a summary of active ads in an account.
-    "availableAds": "A String", # Ads that can be activated for the account.
-    "kind": "dfareporting#accountActiveAdSummary", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountActiveAdSummary".
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for the account.
-    "activeAds": "A String", # Ads that have been activated for the account
-    "accountId": "A String", # ID of the account.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.accountPermissionGroups.html b/docs/dyn/dfareporting_v2_5beta1.accountPermissionGroups.html
deleted file mode 100644
index b71b2d2..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.accountPermissionGroups.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.accountPermissionGroups.html">accountPermissionGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account permission group by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves the list of account permission groups.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account permission group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account permission group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
-    "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
-    "id": "A String", # ID of this account permission group.
-    "name": "A String", # Name of this account permission group.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves the list of account permission groups.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Account Permission Group List Response
-    "kind": "dfareporting#accountPermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroupsListResponse".
-    "accountPermissionGroups": [ # Account permission group collection.
-      { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
-        "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
-        "id": "A String", # ID of this account permission group.
-        "name": "A String", # Name of this account permission group.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.accountPermissions.html b/docs/dyn/dfareporting_v2_5beta1.accountPermissions.html
deleted file mode 100644
index 0e95c45..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.accountPermissions.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.accountPermissions.html">accountPermissions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account permission by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves the list of account permissions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account permission by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account permission ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
-    "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
-    "name": "A String", # Name of this account permission.
-    "level": "A String", # Administrative level required to enable this account permission.
-    "permissionGroupId": "A String", # Permission group of this account permission.
-    "accountProfiles": [ # Account profiles associated with this account permission.
-        #
-        # Possible values are:
-        # - "ACCOUNT_PROFILE_BASIC"
-        # - "ACCOUNT_PROFILE_STANDARD"
-      "A String",
-    ],
-    "id": "A String", # ID of this account permission.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves the list of account permissions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Account Permission List Response
-    "accountPermissions": [ # Account permission collection.
-      { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
-        "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
-        "name": "A String", # Name of this account permission.
-        "level": "A String", # Administrative level required to enable this account permission.
-        "permissionGroupId": "A String", # Permission group of this account permission.
-        "accountProfiles": [ # Account profiles associated with this account permission.
-            #
-            # Possible values are:
-            # - "ACCOUNT_PROFILE_BASIC"
-            # - "ACCOUNT_PROFILE_STANDARD"
-          "A String",
-        ],
-        "id": "A String", # ID of this account permission.
-      },
-    ],
-    "kind": "dfareporting#accountPermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.accounts.html b/docs/dyn/dfareporting_v2_5beta1.accounts.html
deleted file mode 100644
index 67e0001..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.accounts.html
+++ /dev/null
@@ -1,856 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.accounts.html">accounts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</a></code></p>
-<p class="firstline">Retrieves the list of accounts, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing account. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing account.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</code>
-  <pre>Retrieves the list of accounts, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "account*2015" will return objects with names like "account June 2015", "account April 2015", or simply "account 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "account" will match objects with name "my account", "account 2015", or simply "account".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only accounts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  active: boolean, Select only active accounts. Don't set this field to select both active and non-active accounts.
-
-Returns:
-  An object of the form:
-
-    { # Account List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountsListResponse".
-    "accounts": [ # Account collection.
-      { # Contains properties of a DCM account.
-          "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-          "countryId": "A String", # ID of the country associated with this account.
-          "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-            "A String",
-          ],
-          "description": "A String", # Description of this account.
-          "maximumImageSize": "A String", # Maximum image size allowed for this account.
-          "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-              # Acceptable values are:
-              # - "1" for USD
-              # - "2" for GBP
-              # - "3" for ESP
-              # - "4" for SEK
-              # - "5" for CAD
-              # - "6" for JPY
-              # - "7" for DEM
-              # - "8" for AUD
-              # - "9" for FRF
-              # - "10" for ITL
-              # - "11" for DKK
-              # - "12" for NOK
-              # - "13" for FIM
-              # - "14" for ZAR
-              # - "15" for IEP
-              # - "16" for NLG
-              # - "17" for EUR
-              # - "18" for KRW
-              # - "19" for TWD
-              # - "20" for SGD
-              # - "21" for CNY
-              # - "22" for HKD
-              # - "23" for NZD
-              # - "24" for MYR
-              # - "25" for BRL
-              # - "26" for PTE
-              # - "27" for MXP
-              # - "28" for CLP
-              # - "29" for TRY
-              # - "30" for ARS
-              # - "31" for PEN
-              # - "32" for ILS
-              # - "33" for CHF
-              # - "34" for VEF
-              # - "35" for COP
-              # - "36" for GTQ
-              # - "37" for PLN
-              # - "39" for INR
-              # - "40" for THB
-              # - "41" for IDR
-              # - "42" for CZK
-              # - "43" for RON
-              # - "44" for HUF
-              # - "45" for RUB
-              # - "46" for AED
-              # - "47" for BGN
-              # - "48" for HRK
-          "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-          "accountPermissionIds": [ # Account permissions assigned to this account.
-            "A String",
-          ],
-          "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-          "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-          "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-          "locale": "A String", # Locale of this account.
-              # Acceptable values are:
-              # - "cs" (Czech)
-              # - "de" (German)
-              # - "en" (English)
-              # - "en-GB" (English United Kingdom)
-              # - "es" (Spanish)
-              # - "fr" (French)
-              # - "it" (Italian)
-              # - "ja" (Japanese)
-              # - "ko" (Korean)
-              # - "pl" (Polish)
-              # - "pt-BR" (Portuguese Brazil)
-              # - "ru" (Russian)
-              # - "sv" (Swedish)
-              # - "tr" (Turkish)
-              # - "zh-CN" (Chinese Simplified)
-              # - "zh-TW" (Chinese Traditional)
-          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-          "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-            "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-                # Acceptable values are:
-                #
-                # - "1" for "America/New_York"
-                # - "2" for "Europe/London"
-                # - "3" for "Europe/Paris"
-                # - "4" for "Africa/Johannesburg"
-                # - "5" for "Asia/Jerusalem"
-                # - "6" for "Asia/Shanghai"
-                # - "7" for "Asia/Hong_Kong"
-                # - "8" for "Asia/Tokyo"
-                # - "9" for "Australia/Sydney"
-                # - "10" for "Asia/Dubai"
-                # - "11" for "America/Los_Angeles"
-                # - "12" for "Pacific/Auckland"
-                # - "13" for "America/Sao_Paulo"
-            "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-            "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            },
-          },
-          "active": True or False, # Whether this account is active.
-          "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-          "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-          "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing account. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM account.
-    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-    "countryId": "A String", # ID of the country associated with this account.
-    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-      "A String",
-    ],
-    "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
-    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-        # Acceptable values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-    "accountPermissionIds": [ # Account permissions assigned to this account.
-      "A String",
-    ],
-    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-    "locale": "A String", # Locale of this account.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-          # Acceptable values are:
-          #
-          # - "1" for "America/New_York"
-          # - "2" for "Europe/London"
-          # - "3" for "Europe/Paris"
-          # - "4" for "Africa/Johannesburg"
-          # - "5" for "Asia/Jerusalem"
-          # - "6" for "Asia/Shanghai"
-          # - "7" for "Asia/Hong_Kong"
-          # - "8" for "Asia/Tokyo"
-          # - "9" for "Australia/Sydney"
-          # - "10" for "Asia/Dubai"
-          # - "11" for "America/Los_Angeles"
-          # - "12" for "Pacific/Auckland"
-          # - "13" for "America/Sao_Paulo"
-      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-    },
-    "active": True or False, # Whether this account is active.
-    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing account.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM account.
-    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-    "countryId": "A String", # ID of the country associated with this account.
-    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-      "A String",
-    ],
-    "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
-    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-        # Acceptable values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-    "accountPermissionIds": [ # Account permissions assigned to this account.
-      "A String",
-    ],
-    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-    "locale": "A String", # Locale of this account.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-          # Acceptable values are:
-          #
-          # - "1" for "America/New_York"
-          # - "2" for "Europe/London"
-          # - "3" for "Europe/Paris"
-          # - "4" for "Africa/Johannesburg"
-          # - "5" for "Asia/Jerusalem"
-          # - "6" for "Asia/Shanghai"
-          # - "7" for "Asia/Hong_Kong"
-          # - "8" for "Asia/Tokyo"
-          # - "9" for "Australia/Sydney"
-          # - "10" for "Asia/Dubai"
-          # - "11" for "America/Los_Angeles"
-          # - "12" for "Pacific/Auckland"
-          # - "13" for "America/Sao_Paulo"
-      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-    },
-    "active": True or False, # Whether this account is active.
-    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM account.
-      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
-      "countryId": "A String", # ID of the country associated with this account.
-      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
-        "A String",
-      ],
-      "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
-      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
-          # Acceptable values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
-      "accountPermissionIds": [ # Account permissions assigned to this account.
-        "A String",
-      ],
-      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
-      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
-      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
-      "locale": "A String", # Locale of this account.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
-      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
-        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
-            # Acceptable values are:
-            #
-            # - "1" for "America/New_York"
-            # - "2" for "Europe/London"
-            # - "3" for "Europe/Paris"
-            # - "4" for "Africa/Johannesburg"
-            # - "5" for "Asia/Jerusalem"
-            # - "6" for "Asia/Shanghai"
-            # - "7" for "Asia/Hong_Kong"
-            # - "8" for "Asia/Tokyo"
-            # - "9" for "Australia/Sydney"
-            # - "10" for "Asia/Dubai"
-            # - "11" for "America/Los_Angeles"
-            # - "12" for "Pacific/Auckland"
-            # - "13" for "America/Sao_Paulo"
-        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-      },
-      "active": True or False, # Whether this account is active.
-      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
-      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
-      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.ads.html b/docs/dyn/dfareporting_v2_5beta1.ads.html
deleted file mode 100644
index 84e5785..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.ads.html
+++ /dev/null
@@ -1,2832 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.ads.html">ads</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one ad by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new ad.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</a></code></p>
-<p class="firstline">Retrieves a list of ads, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing ad. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing ad.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one ad by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Ad ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new ad.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived. When true, active must be false.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active. When true, archived must be false.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</code>
-  <pre>Retrieves a list of ads, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  landingPageIds: string, Select only ads with these landing page IDs. (repeated)
-  overriddenEventTagId: string, Select only ads with this event tag override ID.
-  campaignIds: string, Select only ads with these campaign IDs. (repeated)
-  sizeIds: string, Select only ads with these size IDs. (repeated)
-  archived: boolean, Select only archived ads.
-  creativeOptimizationConfigurationIds: string, Select only ads with these creative optimization configuration IDs. (repeated)
-  sslCompliant: boolean, Select only ads that are SSL-compliant.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only ads with these types. (repeated)
-    Allowed values
-      AD_SERVING_CLICK_TRACKER - 
-      AD_SERVING_DEFAULT_AD - 
-      AD_SERVING_STANDARD_AD - 
-      AD_SERVING_TRACKING - 
-  sslRequired: boolean, Select only ads that require SSL.
-  creativeIds: string, Select only ads with these creative IDs assigned. (repeated)
-  remarketingListIds: string, Select only ads whose list targeting expression use these remarketing list IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  creativeType: string, Select only ads with the specified creativeType.
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_INPAGE - 
-      CUSTOM_INTERSTITIAL - 
-      ENHANCED_BANNER - 
-      ENHANCED_IMAGE - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      REDIRECT - 
-      RICH_MEDIA_EXPANDING - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_INTERSTITIAL_FLOAT - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_MULTI_FLOATING - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR - 
-      VPAID_NON_LINEAR - 
-  placementIds: string, Select only ads with these placement IDs assigned. (repeated)
-  active: boolean, Select only active ads.
-  compatibility: string, Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
-    Allowed values
-      APP - 
-      APP_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_INTERSTITIAL - 
-      IN_STREAM_VIDEO - 
-  advertiserId: string, Select only ads with this advertiser ID.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "ad*2015" will return objects with names like "ad June 2015", "ad April 2015", or simply "ad 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "ad" will match objects with name "my ad", "ad 2015", or simply "ad".
-  audienceSegmentIds: string, Select only ads with these audience segment IDs. (repeated)
-  ids: string, Select only ads with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  dynamicClickTracker: boolean, Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.
-
-Returns:
-  An object of the form:
-
-    { # Ad List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#adsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#adsListResponse".
-    "ads": [ # Ad collection.
-      { # Contains properties of a DCM ad.
-          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-          },
-          "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-          "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-          "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-              { # Contains information about a country that can be targeted by ads.
-                "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-                "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-                "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-                "countryCode": "A String", # Country code.
-                "name": "A String", # Name of this country.
-              },
-            ],
-            "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-            "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-              { # Contains information about a postal code that can be targeted by ads.
-                "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-                "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-                "code": "A String", # Postal code. This is equivalent to the id field.
-                "id": "A String", # ID of this postal code.
-                "countryCode": "A String", # Country code of the country to which this postal code belongs.
-              },
-            ],
-            "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-              { # Contains information about a region that can be targeted by ads.
-                "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-                "countryDartId": "A String", # DART ID of the country to which this region belongs.
-                "name": "A String", # Name of this region.
-                "countryCode": "A String", # Country code of the country to which this region belongs.
-                "regionCode": "A String", # Region code.
-                "dartId": "A String", # DART ID of this region.
-              },
-            ],
-            "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-              { # Contains information about a city that can be targeted by ads.
-                "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-                "countryDartId": "A String", # DART ID of the country to which this city belongs.
-                "name": "A String", # Name of this city.
-                "countryCode": "A String", # Country code of the country to which this city belongs.
-                "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-                "regionCode": "A String", # Region code of the region to which this city belongs.
-                "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-                "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-                "regionDartId": "A String", # DART ID of the region to which this city belongs.
-              },
-            ],
-            "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-              { # Contains information about a metro region that can be targeted by ads.
-                "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-                "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-                "name": "A String", # Name of this metro region.
-                "countryCode": "A String", # Country code of the country to which this metro region belongs.
-                "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-                "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-                "dartId": "A String", # DART ID of this metro region.
-              },
-            ],
-          },
-          "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-            "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-            "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-            "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-            },
-            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "eventTagOverrides": [ # Event tag overrides for this ad.
-            { # Event tag override information.
-              "enabled": True or False, # Whether this override is enabled.
-              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-            },
-          ],
-          "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-          "archived": True or False, # Whether this ad is archived. When true, active must be false.
-          "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about a platform type that can be targeted by ads.
-                "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-                "id": "A String", # ID of this platform type.
-                "name": "A String", # Name of this platform type.
-              },
-            ],
-            "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-              { # Contains information about a particular version of an operating system that can be targeted by ads.
-                "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-                "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-                "name": "A String", # Name of this operating system version.
-                "id": "A String", # ID of this operating system version.
-                "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-                  "mobile": True or False, # Whether this operating system is for mobile.
-                  "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-                  "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-                  "name": "A String", # Name of this operating system.
-                  "desktop": True or False, # Whether this operating system is for desktop.
-                },
-                "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-              },
-            ],
-            "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about a browser that can be targeted by ads.
-                "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-                "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-                "name": "A String", # Name of this browser.
-                "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-                "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-                "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-              },
-            ],
-            "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-              { # Contains information about an operating system that can be targeted by ads.
-                "mobile": True or False, # Whether this operating system is for mobile.
-                "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-                "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-                "name": "A String", # Name of this operating system.
-                "desktop": True or False, # Whether this operating system is for desktop.
-              },
-            ],
-            "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-              { # Contains information about a mobile carrier that can be targeted by ads.
-                "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-                "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-                "id": "A String", # ID of this mobile carrier.
-                "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-                "name": "A String", # Name of this mobile carrier.
-              },
-            ],
-            "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-              { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-                "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-                "id": "A String", # ID of this connection type.
-                "name": "A String", # Name of this connection type.
-              },
-            ],
-          },
-          "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-            "creativeAssignments": [ # Creative assignments in this creative rotation.
-              { # Creative Assignment.
-                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-                "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-                "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                    # Applicable when the creative type is any of the following:
-                    # - RICH_MEDIA_INPAGE
-                    # - RICH_MEDIA_INPAGE_FLOATING
-                    # - RICH_MEDIA_IM_EXPAND
-                    # - RICH_MEDIA_EXPANDING
-                    # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                    # - RICH_MEDIA_MOBILE_IN_APP
-                    # - RICH_MEDIA_MULTI_FLOATING
-                    # - RICH_MEDIA_PEEL_DOWN
-                    # - ADVANCED_BANNER
-                    # - VPAID_LINEAR
-                    # - VPAID_NON_LINEAR
-                  { # Rich Media Exit Override.
-                    "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                    "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                    "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-                  },
-                ],
-                "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-                "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-                  { # Creative Group Assignment.
-                    "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                    "creativeGroupId": "A String", # ID of the creative group to be assigned.
-                  },
-                ],
-                "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-                  { # Companion Click-through override.
-                    "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                    },
-                    "creativeId": "A String", # ID of the creative for this companion click-through override.
-                  },
-                ],
-                "startTime": "A String", # Date and time that the assigned creative should start serving.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-                "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-                "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-                "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              },
-            ],
-            "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-            "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-            "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-          },
-          "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "comments": "A String", # Comments for this ad.
-          "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "expression": "A String", # Expression describing which lists are being targeted by the ad.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-          "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-          "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "expression": "A String", # Keyword expression being targeted by the ad.
-          },
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-          },
-          "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-          "active": True or False, # Whether this ad is active. When true, archived must be false.
-          "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-          "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-          "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-          "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-            "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-              42,
-            ],
-            "daysOfWeek": [ # Days of the week when the ad will serve.
-                #
-                # Acceptable values are:
-                # - "SUNDAY"
-                # - "MONDAY"
-                # - "TUESDAY"
-                # - "WEDNESDAY"
-                # - "THURSDAY"
-                # - "FRIDAY"
-                # - "SATURDAY"
-              "A String",
-            ],
-          },
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "placementAssignments": [ # Placement assignments for this ad.
-            { # Placement Assignment.
-              "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-              "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-              "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            },
-          ],
-          "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-          "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing ad. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Ad ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived. When true, active must be false.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active. When true, archived must be false.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing ad.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM ad.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-        { # Contains information about a country that can be targeted by ads.
-          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-          "countryCode": "A String", # Country code.
-          "name": "A String", # Name of this country.
-        },
-      ],
-      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-        { # Contains information about a postal code that can be targeted by ads.
-          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-          "code": "A String", # Postal code. This is equivalent to the id field.
-          "id": "A String", # ID of this postal code.
-          "countryCode": "A String", # Country code of the country to which this postal code belongs.
-        },
-      ],
-      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-        { # Contains information about a region that can be targeted by ads.
-          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-          "countryDartId": "A String", # DART ID of the country to which this region belongs.
-          "name": "A String", # Name of this region.
-          "countryCode": "A String", # Country code of the country to which this region belongs.
-          "regionCode": "A String", # Region code.
-          "dartId": "A String", # DART ID of this region.
-        },
-      ],
-      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-        { # Contains information about a city that can be targeted by ads.
-          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-          "countryDartId": "A String", # DART ID of the country to which this city belongs.
-          "name": "A String", # Name of this city.
-          "countryCode": "A String", # Country code of the country to which this city belongs.
-          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-          "regionCode": "A String", # Region code of the region to which this city belongs.
-          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-          "regionDartId": "A String", # DART ID of the region to which this city belongs.
-        },
-      ],
-      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-        { # Contains information about a metro region that can be targeted by ads.
-          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-          "name": "A String", # Name of this metro region.
-          "countryCode": "A String", # Country code of the country to which this metro region belongs.
-          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-          "dartId": "A String", # DART ID of this metro region.
-        },
-      ],
-    },
-    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-      { # Creative Group Assignment.
-        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-        "creativeGroupId": "A String", # ID of the creative group to be assigned.
-      },
-    ],
-    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-      },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Event tag overrides for this ad.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this ad is archived. When true, active must be false.
-    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a platform type that can be targeted by ads.
-          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-          "id": "A String", # ID of this platform type.
-          "name": "A String", # Name of this platform type.
-        },
-      ],
-      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-        { # Contains information about a particular version of an operating system that can be targeted by ads.
-          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-          "name": "A String", # Name of this operating system version.
-          "id": "A String", # ID of this operating system version.
-          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-          "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-        },
-      ],
-      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about a browser that can be targeted by ads.
-          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-          "name": "A String", # Name of this browser.
-          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        },
-      ],
-      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-        { # Contains information about an operating system that can be targeted by ads.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-      ],
-      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-        { # Contains information about a mobile carrier that can be targeted by ads.
-          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-          "id": "A String", # ID of this mobile carrier.
-          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-          "name": "A String", # Name of this mobile carrier.
-        },
-      ],
-      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-        { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-          "id": "A String", # ID of this connection type.
-          "name": "A String", # Name of this connection type.
-        },
-      ],
-    },
-    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-      "creativeAssignments": [ # Creative assignments in this creative rotation.
-        { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-              # Applicable when the creative type is any of the following:
-              # - RICH_MEDIA_INPAGE
-              # - RICH_MEDIA_INPAGE_FLOATING
-              # - RICH_MEDIA_IM_EXPAND
-              # - RICH_MEDIA_EXPANDING
-              # - RICH_MEDIA_INTERSTITIAL_FLOAT
-              # - RICH_MEDIA_MOBILE_IN_APP
-              # - RICH_MEDIA_MULTI_FLOATING
-              # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
-              # - VPAID_LINEAR
-              # - VPAID_NON_LINEAR
-            { # Rich Media Exit Override.
-              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-            },
-          ],
-          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-            { # Creative Group Assignment.
-              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-              "creativeGroupId": "A String", # ID of the creative group to be assigned.
-            },
-          ],
-          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-            { # Companion Click-through override.
-              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                    # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                    # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                    # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-              },
-              "creativeId": "A String", # ID of the creative for this companion click-through override.
-            },
-          ],
-          "startTime": "A String", # Date and time that the assigned creative should start serving.
-          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-            "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-          },
-          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-    },
-    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-      "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-          # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-          # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-          # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-    },
-    "comments": "A String", # Comments for this ad.
-    "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Expression describing which lists are being targeted by the ad.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "expression": "A String", # Keyword expression being targeted by the ad.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-    "active": True or False, # Whether this ad is active. When true, archived must be false.
-    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-        42,
-      ],
-      "daysOfWeek": [ # Days of the week when the ad will serve.
-          #
-          # Acceptable values are:
-          # - "SUNDAY"
-          # - "MONDAY"
-          # - "TUESDAY"
-          # - "WEDNESDAY"
-          # - "THURSDAY"
-          # - "FRIDAY"
-          # - "SATURDAY"
-        "A String",
-      ],
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-    "placementAssignments": [ # Placement assignments for this ad.
-      { # Placement Assignment.
-        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      },
-    ],
-    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM ad.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
-      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
-      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
-          { # Contains information about a country that can be targeted by ads.
-            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-            "countryCode": "A String", # Country code.
-            "name": "A String", # Name of this country.
-          },
-        ],
-        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
-        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
-          { # Contains information about a postal code that can be targeted by ads.
-            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-            "code": "A String", # Postal code. This is equivalent to the id field.
-            "id": "A String", # ID of this postal code.
-            "countryCode": "A String", # Country code of the country to which this postal code belongs.
-          },
-        ],
-        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
-          { # Contains information about a region that can be targeted by ads.
-            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-            "countryDartId": "A String", # DART ID of the country to which this region belongs.
-            "name": "A String", # Name of this region.
-            "countryCode": "A String", # Country code of the country to which this region belongs.
-            "regionCode": "A String", # Region code.
-            "dartId": "A String", # DART ID of this region.
-          },
-        ],
-        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
-          { # Contains information about a city that can be targeted by ads.
-            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-            "countryDartId": "A String", # DART ID of the country to which this city belongs.
-            "name": "A String", # Name of this city.
-            "countryCode": "A String", # Country code of the country to which this city belongs.
-            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-            "regionCode": "A String", # Region code of the region to which this city belongs.
-            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-            "regionDartId": "A String", # DART ID of the region to which this city belongs.
-          },
-        ],
-        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
-          { # Contains information about a metro region that can be targeted by ads.
-            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-            "name": "A String", # Name of this metro region.
-            "countryCode": "A String", # Country code of the country to which this metro region belongs.
-            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-            "dartId": "A String", # DART ID of this metro region.
-          },
-        ],
-      },
-      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
-        { # Creative Group Assignment.
-          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-          "creativeGroupId": "A String", # ID of the creative group to be assigned.
-        },
-      ],
-      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
-        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
-        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
-        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
-        },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Event tag overrides for this ad.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this ad is archived. When true, active must be false.
-      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a platform type that can be targeted by ads.
-            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-            "id": "A String", # ID of this platform type.
-            "name": "A String", # Name of this platform type.
-          },
-        ],
-        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
-          { # Contains information about a particular version of an operating system that can be targeted by ads.
-            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-            "name": "A String", # Name of this operating system version.
-            "id": "A String", # ID of this operating system version.
-            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-              "mobile": True or False, # Whether this operating system is for mobile.
-              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-              "name": "A String", # Name of this operating system.
-              "desktop": True or False, # Whether this operating system is for desktop.
-            },
-            "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-          },
-        ],
-        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about a browser that can be targeted by ads.
-            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-            "name": "A String", # Name of this browser.
-            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-          },
-        ],
-        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
-          { # Contains information about an operating system that can be targeted by ads.
-            "mobile": True or False, # Whether this operating system is for mobile.
-            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-            "name": "A String", # Name of this operating system.
-            "desktop": True or False, # Whether this operating system is for desktop.
-          },
-        ],
-        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
-          { # Contains information about a mobile carrier that can be targeted by ads.
-            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-            "id": "A String", # ID of this mobile carrier.
-            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-            "name": "A String", # Name of this mobile carrier.
-          },
-        ],
-        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required. The other fields are populated automatically when the ad is inserted or updated.
-          { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-            "id": "A String", # ID of this connection type.
-            "name": "A String", # Name of this connection type.
-          },
-        ],
-      },
-      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
-        "creativeAssignments": [ # Creative assignments in this creative rotation.
-          { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
-            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
-            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
-                # Applicable when the creative type is any of the following:
-                # - RICH_MEDIA_INPAGE
-                # - RICH_MEDIA_INPAGE_FLOATING
-                # - RICH_MEDIA_IM_EXPAND
-                # - RICH_MEDIA_EXPANDING
-                # - RICH_MEDIA_INTERSTITIAL_FLOAT
-                # - RICH_MEDIA_MOBILE_IN_APP
-                # - RICH_MEDIA_MULTI_FLOATING
-                # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
-                # - VPAID_LINEAR
-                # - VPAID_NON_LINEAR
-              { # Rich Media Exit Override.
-                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
-                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
-                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
-              },
-            ],
-            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
-              { # Creative Group Assignment.
-                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
-                "creativeGroupId": "A String", # ID of the creative group to be assigned.
-              },
-            ],
-            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
-              { # Companion Click-through override.
-                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
-                  "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                      # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                      # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                      # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-                },
-                "creativeId": "A String", # ID of the creative for this companion click-through override.
-              },
-            ],
-            "startTime": "A String", # Date and time that the assigned creative should start serving.
-            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
-              "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-                  # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-                  # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-                  # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-            },
-            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
-            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
-            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
-            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          },
-        ],
-        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
-        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
-        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
-      },
-      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
-        "computedClickThroughUrl": "A String", # Read-only convenience field representing the actual URL that will be used for this click-through. The URL is computed as follows:
-            # - If defaultLandingPage is enabled then the campaign's default landing page URL is assigned to this field.
-            # - If defaultLandingPage is not enabled and a landingPageId is specified then that landing page's URL is assigned to this field.
-            # - If neither of the above cases apply, then the customClickThroughUrl is assigned to this field.
-        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
-        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
-        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
-      },
-      "comments": "A String", # Comments for this ad.
-      "remarketingListExpression": { # Remarketing List Targeting Expression. # Remarketing list targeting expression for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Expression describing which lists are being targeted by the ad.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
-      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
-      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "expression": "A String", # Keyword expression being targeted by the ad.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
-      "active": True or False, # Whether this ad is active. When true, archived must be false.
-      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to either rendering on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are only used for existing default ads. New mobile placements must be assigned DISPLAY or DISPLAY_INTERSTITIAL and default ads created for those placements will be limited to those compatibility types. IN_STREAM_VIDEO refers to rendering in-stream video ads developed with the VAST standard.
-      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
-      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
-      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
-        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
-          42,
-        ],
-        "daysOfWeek": [ # Days of the week when the ad will serve.
-            #
-            # Acceptable values are:
-            # - "SUNDAY"
-            # - "MONDAY"
-            # - "TUESDAY"
-            # - "WEDNESDAY"
-            # - "THURSDAY"
-            # - "FRIDAY"
-            # - "SATURDAY"
-          "A String",
-        ],
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
-      "placementAssignments": [ # Placement assignments for this ad.
-        { # Placement Assignment.
-          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
-          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
-          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
-        },
-      ],
-      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
-      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.advertiserGroups.html b/docs/dyn/dfareporting_v2_5beta1.advertiserGroups.html
deleted file mode 100644
index 0a5d97b..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.advertiserGroups.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.advertiserGroups.html">advertiserGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing advertiser group.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one advertiser group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new advertiser group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of advertiser groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one advertiser group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of advertiser groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser group June 2015", "advertiser group April 2015", or simply "advertiser group 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertisergroup" will match objects with name "my advertisergroup", "advertisergroup 2015", or simply "advertisergroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only advertiser groups with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Advertiser Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#advertiserGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroupsListResponse".
-    "advertiserGroups": [ # Advertiser group collection.
-      { # Groups advertisers together so that reports can be generated for the entire group at once.
-          "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-          "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-          "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing advertiser group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing advertiser group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Groups advertisers together so that reports can be generated for the entire group at once.
-    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Groups advertisers together so that reports can be generated for the entire group at once.
-      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
-      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
-      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.browsers.html b/docs/dyn/dfareporting_v2_5beta1.browsers.html
deleted file mode 100644
index 4184f8f..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.browsers.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.browsers.html">browsers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of browsers.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of browsers.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Browser List Response
-    "kind": "dfareporting#browsersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browsersListResponse".
-    "browsers": [ # Browser collection.
-      { # Contains information about a browser that can be targeted by ads.
-        "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-        "name": "A String", # Name of this browser.
-        "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-        "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-        "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.campaignCreativeAssociations.html b/docs/dyn/dfareporting_v2_5beta1.campaignCreativeAssociations.html
deleted file mode 100644
index d39c9a9..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.campaignCreativeAssociations.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.campaignCreativeAssociations.html">campaignCreativeAssociations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.</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="insert">insert(profileId, campaignId, body)</code>
-  <pre>Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Campaign ID in this association. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Identifies a creative which has been associated with a given campaign.
-    "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-    "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Identifies a creative which has been associated with a given campaign.
-      "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-      "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</code>
-  <pre>Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Campaign ID in this association. (required)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Campaign Creative Association List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "campaignCreativeAssociations": [ # Campaign creative association collection
-      { # Identifies a creative which has been associated with a given campaign.
-          "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-          "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-        },
-    ],
-    "kind": "dfareporting#campaignCreativeAssociationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociationsListResponse".
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.campaigns.html b/docs/dyn/dfareporting_v2_5beta1.campaigns.html
deleted file mode 100644
index eb974fa..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.campaigns.html
+++ /dev/null
@@ -1,1139 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.campaigns.html">campaigns</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one campaign by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</a></code></p>
-<p class="firstline">Inserts a new campaign.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</a></code></p>
-<p class="firstline">Retrieves a list of campaigns, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing campaign. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing campaign.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one campaign by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Campaign ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</code>
-  <pre>Inserts a new campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  defaultLandingPageName: string, Default landing page name for this new campaign. Must be less than 256 characters long. (required)
-  defaultLandingPageUrl: string, Default landing page URL for this new campaign. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</code>
-  <pre>Retrieves a list of campaigns, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  overriddenEventTagId: string, Select only campaigns that have overridden this event tag ID.
-  archived: boolean, Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.
-  advertiserIds: string, Select only campaigns that belong to these advertisers. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxResults: integer, Maximum number of results to return.
-  excludedIds: string, Exclude campaigns with these IDs. (repeated)
-  advertiserGroupIds: string, Select only campaigns whose advertisers belong to these advertiser groups. (repeated)
-  searchString: string, Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, "campaign*2015" will return campaigns with names like "campaign June 2015", "campaign April 2015", or simply "campaign 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "campaign" will match campaigns with name "my campaign", "campaign 2015", or simply "campaign".
-  subaccountId: string, Select only campaigns that belong to this subaccount.
-  ids: string, Select only campaigns with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  atLeastOneOptimizationActivity: boolean, Select only campaigns that have at least one optimization activity.
-
-Returns:
-  An object of the form:
-
-    { # Campaign List Response
-    "campaigns": [ # Campaign collection.
-      { # Contains properties of a DCM campaign.
-          "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-          "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-          "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-          },
-          "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-            { # Event tag override information.
-              "enabled": True or False, # Whether this override is enabled.
-              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-            },
-          ],
-          "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-            "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-              { # Creative optimization activity.
-                "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-                "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-                "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-              },
-            ],
-            "optimizationModel": "A String", # Optimization model for this configuration.
-            "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-            "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-          },
-          "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-          "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-          "traffickerEmails": [ # Campaign trafficker contact emails.
-            "A String",
-          ],
-          "archived": True or False, # Whether this campaign has been archived.
-          "externalId": "A String", # External ID for this campaign.
-          "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-          "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-          "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-            "A String",
-          ],
-          "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-            { # Creative optimization settings.
-              "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-                { # Creative optimization activity.
-                  "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-                  "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                    "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                    "value": "A String", # The value of the dimension.
-                    "dimensionName": "A String", # The name of the dimension.
-                    "etag": "A String", # The eTag of this response for caching purposes.
-                    "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                    "id": "A String", # The ID associated with the value if available.
-                  },
-                  "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-                },
-              ],
-              "optimizationModel": "A String", # Optimization model for this configuration.
-              "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-              "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-            },
-          ],
-          "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-          },
-          "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-          "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-            { # Audience Segment Group.
-              "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-                { # Audience Segment.
-                  "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-                  "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-                  "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-                },
-              ],
-              "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-            },
-          ],
-        },
-    ],
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#campaignsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing campaign. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM campaign.
-    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-    },
-    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-      { # Event tag override information.
-        "enabled": True or False, # Whether this override is enabled.
-        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-      },
-    ],
-    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-        { # Creative optimization activity.
-          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-        },
-      ],
-      "optimizationModel": "A String", # Optimization model for this configuration.
-      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-    },
-    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-    "traffickerEmails": [ # Campaign trafficker contact emails.
-      "A String",
-    ],
-    "archived": True or False, # Whether this campaign has been archived.
-    "externalId": "A String", # External ID for this campaign.
-    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-      "A String",
-    ],
-    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-      { # Creative optimization settings.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-    ],
-    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-    },
-    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-      { # Audience Segment Group.
-        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-          { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-          },
-        ],
-        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM campaign.
-      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
-      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
-      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
-      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
-        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
-        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
-      },
-      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
-        { # Event tag override information.
-          "enabled": True or False, # Whether this override is enabled.
-          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
-        },
-      ],
-      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
-        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-          { # Creative optimization activity.
-            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-          },
-        ],
-        "optimizationModel": "A String", # Optimization model for this configuration.
-        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-      },
-      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
-      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
-      "traffickerEmails": [ # Campaign trafficker contact emails.
-        "A String",
-      ],
-      "archived": True or False, # Whether this campaign has been archived.
-      "externalId": "A String", # External ID for this campaign.
-      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
-      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
-      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
-        "A String",
-      ],
-      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
-        { # Creative optimization settings.
-          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
-            { # Creative optimization activity.
-              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
-              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
-            },
-          ],
-          "optimizationModel": "A String", # Optimization model for this configuration.
-          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
-          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
-        },
-      ],
-      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
-        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
-        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
-      },
-      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
-      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
-        { # Audience Segment Group.
-          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
-            { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
-              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
-            },
-          ],
-          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
-        },
-      ],
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.changeLogs.html b/docs/dyn/dfareporting_v2_5beta1.changeLogs.html
deleted file mode 100644
index aeff6b6..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.changeLogs.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.changeLogs.html">changeLogs</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one change log by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of change logs. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one change log by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Change log ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Describes a change that a user has made to a resource.
-    "changeTime": "A String", # Time when the object was modified.
-    "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
-    "subaccountId": "A String", # Subaccount ID of the modified object.
-    "userProfileId": "A String", # ID of the user who modified the object.
-    "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
-    "newValue": "A String", # New value of the object field.
-    "userProfileName": "A String", # User profile name of the user who modified the object.
-    "fieldName": "A String", # Field name of the object which changed.
-    "oldValue": "A String", # Old value of the object field.
-    "action": "A String", # Action which caused the change.
-    "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
-    "objectType": "A String", # Object type of the change log.
-    "id": "A String", # ID of this change log.
-    "accountId": "A String", # Account ID of the modified object.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</code>
-  <pre>Retrieves a list of change logs. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  objectType: string, Select only change logs with the specified object type.
-    Allowed values
-      OBJECT_ACCOUNT - 
-      OBJECT_ACCOUNT_BILLING_FEATURE - 
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_ADVERTISER_GROUP - 
-      OBJECT_BILLING_ACCOUNT_GROUP - 
-      OBJECT_BILLING_FEATURE - 
-      OBJECT_BILLING_MINIMUM_FEE - 
-      OBJECT_BILLING_PROFILE - 
-      OBJECT_CAMPAIGN - 
-      OBJECT_CONTENT_CATEGORY - 
-      OBJECT_CREATIVE - 
-      OBJECT_CREATIVE_ASSET - 
-      OBJECT_CREATIVE_BUNDLE - 
-      OBJECT_CREATIVE_FIELD - 
-      OBJECT_CREATIVE_GROUP - 
-      OBJECT_DFA_SITE - 
-      OBJECT_EVENT_TAG - 
-      OBJECT_FLOODLIGHT_ACTIVITY_GROUP - 
-      OBJECT_FLOODLIGHT_ACTVITY - 
-      OBJECT_FLOODLIGHT_CONFIGURATION - 
-      OBJECT_INSTREAM_CREATIVE - 
-      OBJECT_LANDING_PAGE - 
-      OBJECT_MEDIA_ORDER - 
-      OBJECT_PLACEMENT - 
-      OBJECT_PLACEMENT_STRATEGY - 
-      OBJECT_PLAYSTORE_LINK - 
-      OBJECT_PROVIDED_LIST_CLIENT - 
-      OBJECT_RATE_CARD - 
-      OBJECT_REMARKETING_LIST - 
-      OBJECT_RICHMEDIA_CREATIVE - 
-      OBJECT_SD_SITE - 
-      OBJECT_SEARCH_LIFT_STUDY - 
-      OBJECT_SIZE - 
-      OBJECT_SUBACCOUNT - 
-      OBJECT_TARGETING_TEMPLATE - 
-      OBJECT_USER_PROFILE - 
-      OBJECT_USER_PROFILE_FILTER - 
-      OBJECT_USER_ROLE - 
-  maxChangeTime: string, Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  action: string, Select only change logs with the specified action.
-    Allowed values
-      ACTION_ADD - 
-      ACTION_ASSIGN - 
-      ACTION_ASSOCIATE - 
-      ACTION_CREATE - 
-      ACTION_DELETE - 
-      ACTION_DISABLE - 
-      ACTION_EMAIL_TAGS - 
-      ACTION_ENABLE - 
-      ACTION_LINK - 
-      ACTION_MARK_AS_DEFAULT - 
-      ACTION_PUSH - 
-      ACTION_REMOVE - 
-      ACTION_SEND - 
-      ACTION_SHARE - 
-      ACTION_UNASSIGN - 
-      ACTION_UNLINK - 
-      ACTION_UPDATE - 
-  minChangeTime: string, Select only change logs whose change time is before the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
-  searchString: string, Select only change logs whose object ID, user name, old or new values match the search string.
-  userProfileIds: string, Select only change logs with these user profile IDs. (repeated)
-  ids: string, Select only change logs with these IDs. (repeated)
-  objectIds: string, Select only change logs with these object IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Change Log List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#changeLogsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLogsListResponse".
-    "changeLogs": [ # Change log collection.
-      { # Describes a change that a user has made to a resource.
-        "changeTime": "A String", # Time when the object was modified.
-        "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
-        "subaccountId": "A String", # Subaccount ID of the modified object.
-        "userProfileId": "A String", # ID of the user who modified the object.
-        "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
-        "newValue": "A String", # New value of the object field.
-        "userProfileName": "A String", # User profile name of the user who modified the object.
-        "fieldName": "A String", # Field name of the object which changed.
-        "oldValue": "A String", # Old value of the object field.
-        "action": "A String", # Action which caused the change.
-        "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
-        "objectType": "A String", # Object type of the change log.
-        "id": "A String", # ID of this change log.
-        "accountId": "A String", # Account ID of the modified object.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.cities.html b/docs/dyn/dfareporting_v2_5beta1.cities.html
deleted file mode 100644
index 993bf9e..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.cities.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.cities.html">cities</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of cities, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</code>
-  <pre>Retrieves a list of cities, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartIds: string, Select only cities with these DART IDs. (repeated)
-  namePrefix: string, Select only cities with names starting with this prefix.
-  regionDartIds: string, Select only cities from these regions. (repeated)
-  countryDartIds: string, Select only cities from these countries. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # City List Response
-    "kind": "dfareporting#citiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#citiesListResponse".
-    "cities": [ # City collection.
-      { # Contains information about a city that can be targeted by ads.
-        "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
-        "countryDartId": "A String", # DART ID of the country to which this city belongs.
-        "name": "A String", # Name of this city.
-        "countryCode": "A String", # Country code of the country to which this city belongs.
-        "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
-        "regionCode": "A String", # Region code of the region to which this city belongs.
-        "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
-        "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
-        "regionDartId": "A String", # DART ID of the region to which this city belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.connectionTypes.html b/docs/dyn/dfareporting_v2_5beta1.connectionTypes.html
deleted file mode 100644
index 7077c0e..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.connectionTypes.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.connectionTypes.html">connectionTypes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one connection type by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of connection types.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one connection type by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Connection type ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-    "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-    "id": "A String", # ID of this connection type.
-    "name": "A String", # Name of this connection type.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of connection types.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Connection Type List Response
-    "kind": "dfareporting#connectionTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionTypesListResponse".
-    "connectionTypes": [ # Collection of connection types such as broadband and mobile.
-      { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-        "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-        "id": "A String", # ID of this connection type.
-        "name": "A String", # Name of this connection type.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.contentCategories.html b/docs/dyn/dfareporting_v2_5beta1.contentCategories.html
deleted file mode 100644
index 0c8632a..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.contentCategories.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.contentCategories.html">contentCategories</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing content category.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one content category by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new content category.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of content categories, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing content category. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing content category.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one content category by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of content categories, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "contentcategory*2015" will return objects with names like "contentcategory June 2015", "contentcategory April 2015", or simply "contentcategory 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "contentcategory" will match objects with name "my contentcategory", "contentcategory 2015", or simply "contentcategory".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only content categories with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Content Category List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#contentCategoriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategoriesListResponse".
-    "contentCategories": [ # Content category collection.
-      { # Organizes placements according to the contents of their associated webpages.
-          "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-          "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-          "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing content category. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.conversions.html b/docs/dyn/dfareporting_v2_5beta1.conversions.html
deleted file mode 100644
index 4b224d8..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.conversions.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.conversions.html">conversions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#batchinsert">batchinsert(profileId, body)</a></code></p>
-<p class="firstline">Inserts conversions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="batchinsert">batchinsert(profileId, body)</code>
-  <pre>Inserts conversions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Insert Conversions Request.
-    "conversions": [ # The set of conversions to insert.
-      { # A Conversion represents when a user successfully performs a desired action after seeing an ad.
-        "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
-        "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
-        "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
-        "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
-        "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
-        "customVariables": [ # Custom floodlight variables.
-          { # A custom floodlight variable.
-            "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
-            "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
-            "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
-          },
-        ],
-        "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
-        "value": 3.14, # The value of the conversion.
-        "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
-        "quantity": "A String", # The quantity of the conversion.
-        "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
-        "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
-      },
-    ],
-    "kind": "dfareporting#conversionsBatchInsertRequest", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertRequest".
-    "encryptionInfo": { # A description of how user IDs are encrypted. # Describes how encryptedUserId is encrypted. This is a required field if encryptedUserId is used.
-      "kind": "dfareporting#encryptionInfo", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#encryptionInfo".
-      "encryptionEntityId": "A String", # The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.
-      "encryptionSource": "A String", # Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.
-      "encryptionEntityType": "A String", # The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Insert Conversions Response.
-    "status": [ # The status of each conversion's insertion status. The status is returned in the same order that conversions are inserted.
-      { # The original conversion that was inserted or updated and whether there were any errors.
-        "conversion": { # A Conversion represents when a user successfully performs a desired action after seeing an ad. # The original conversion that was inserted or updated.
-          "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
-          "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
-          "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
-          "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
-          "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
-          "customVariables": [ # Custom floodlight variables.
-            { # A custom floodlight variable.
-              "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
-              "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
-              "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
-            },
-          ],
-          "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
-          "value": 3.14, # The value of the conversion.
-          "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
-          "quantity": "A String", # The quantity of the conversion.
-          "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
-          "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
-        },
-        "errors": [ # A list of errors related to this conversion.
-          { # The error code and description for a conversion that failed to insert or update.
-            "kind": "dfareporting#conversionError", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionError".
-            "code": "A String", # The error code.
-            "message": "A String", # A description of the error.
-          },
-        ],
-        "kind": "dfareporting#conversionStatus", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionStatus".
-      },
-    ],
-    "hasFailures": True or False, # Indicates that some or all conversions failed to insert.
-    "kind": "dfareporting#conversionsBatchInsertResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.countries.html b/docs/dyn/dfareporting_v2_5beta1.countries.html
deleted file mode 100644
index ec8f7d2..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.countries.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.countries.html">countries</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, dartId)</a></code></p>
-<p class="firstline">Gets one country by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of countries.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, dartId)</code>
-  <pre>Gets one country by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartId: string, Country DART ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a country that can be targeted by ads.
-    "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-    "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-    "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-    "countryCode": "A String", # Country code.
-    "name": "A String", # Name of this country.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of countries.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Country List Response
-    "kind": "dfareporting#countriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#countriesListResponse".
-    "countries": [ # Country collection.
-      { # Contains information about a country that can be targeted by ads.
-        "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-        "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-        "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-        "countryCode": "A String", # Country code.
-        "name": "A String", # Name of this country.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.creativeAssets.html b/docs/dyn/dfareporting_v2_5beta1.creativeAssets.html
deleted file mode 100644
index 37c71c6..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.creativeAssets.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.creativeAssets.html">creativeAssets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None)</a></code></p>
-<p class="firstline">Inserts a new creative asset.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None)</code>
-  <pre>Inserts a new creative asset.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Advertiser ID of this creative. This is a required field. (required)
-  body: object, The request body.
-    The object takes the form of:
-
-{ # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
-    "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
-        # 
-        # Possible values are:
-        # - "ADMOB_REFERENCED"
-        # - "ASSET_FORMAT_UNSUPPORTED_DCM"
-        # - "ASSET_INVALID"
-        # - "CLICK_TAG_HARD_CODED"
-        # - "CLICK_TAG_INVALID"
-        # - "CLICK_TAG_IN_GWD"
-        # - "CLICK_TAG_MISSING"
-        # - "CLICK_TAG_MORE_THAN_ONE"
-        # - "CLICK_TAG_NON_TOP_LEVEL"
-        # - "COMPONENT_UNSUPPORTED_DCM"
-        # - "ENABLER_UNSUPPORTED_METHOD_DCM"
-        # - "EXTERNAL_FILE_REFERENCED"
-        # - "FILE_DETAIL_EMPTY"
-        # - "FILE_TYPE_INVALID"
-        # - "GWD_PROPERTIES_INVALID"
-        # - "HTML5_FEATURE_UNSUPPORTED"
-        # - "LINKED_FILE_NOT_FOUND"
-        # - "MAX_FLASH_VERSION_11"
-        # - "MRAID_REFERENCED"
-        # - "NOT_SSL_COMPLIANT"
-        # - "ORPHANED_ASSET"
-        # - "PRIMARY_HTML_MISSING"
-        # - "SVG_INVALID"
-        # - "ZIP_INVALID"
-      "A String",
-    ],
-    "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
-    "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
-      "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-      "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-    },
-  }
-
-  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
-  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
-
-Returns:
-  An object of the form:
-
-    { # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
-      "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
-          #
-          # Possible values are:
-          # - "ADMOB_REFERENCED"
-          # - "ASSET_FORMAT_UNSUPPORTED_DCM"
-          # - "ASSET_INVALID"
-          # - "CLICK_TAG_HARD_CODED"
-          # - "CLICK_TAG_INVALID"
-          # - "CLICK_TAG_IN_GWD"
-          # - "CLICK_TAG_MISSING"
-          # - "CLICK_TAG_MORE_THAN_ONE"
-          # - "CLICK_TAG_NON_TOP_LEVEL"
-          # - "COMPONENT_UNSUPPORTED_DCM"
-          # - "ENABLER_UNSUPPORTED_METHOD_DCM"
-          # - "EXTERNAL_FILE_REFERENCED"
-          # - "FILE_DETAIL_EMPTY"
-          # - "FILE_TYPE_INVALID"
-          # - "GWD_PROPERTIES_INVALID"
-          # - "HTML5_FEATURE_UNSUPPORTED"
-          # - "LINKED_FILE_NOT_FOUND"
-          # - "MAX_FLASH_VERSION_11"
-          # - "MRAID_REFERENCED"
-          # - "NOT_SSL_COMPLIANT"
-          # - "ORPHANED_ASSET"
-          # - "PRIMARY_HTML_MISSING"
-          # - "SVG_INVALID"
-          # - "ZIP_INVALID"
-        "A String",
-      ],
-      "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
-      "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
-        "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-        "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.creativeFieldValues.html b/docs/dyn/dfareporting_v2_5beta1.creativeFieldValues.html
deleted file mode 100644
index f3ca225..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.creativeFieldValues.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.creativeFieldValues.html">creativeFieldValues</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, creativeFieldId, id)</a></code></p>
-<p class="firstline">Deletes an existing creative field value.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, creativeFieldId, id)</a></code></p>
-<p class="firstline">Gets one creative field value by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, creativeFieldId, body)</a></code></p>
-<p class="firstline">Inserts a new creative field value.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative field values, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, creativeFieldId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative field value. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, creativeFieldId, body)</a></code></p>
-<p class="firstline">Updates an existing creative field value.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, creativeFieldId, id)</code>
-  <pre>Deletes an existing creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, creativeFieldId, id)</code>
-  <pre>Gets one creative field value by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, creativeFieldId, body)</code>
-  <pre>Inserts a new creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative field values, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  searchString: string, Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      VALUE - 
-  ids: string, Select only creative field values with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Field Value List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#creativeFieldValuesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValuesListResponse".
-    "creativeFieldValues": [ # Creative field value collection.
-      { # Contains properties of a creative field value.
-          "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-          "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-          "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, creativeFieldId, id, body)</code>
-  <pre>Updates an existing creative field value. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, creativeFieldId, body)</code>
-  <pre>Updates an existing creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.creativeFields.html b/docs/dyn/dfareporting_v2_5beta1.creativeFields.html
deleted file mode 100644
index 63054f6..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.creativeFields.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.creativeFields.html">creativeFields</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing creative field.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative field by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative field.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative fields, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative field. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative field.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative field by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative fields, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, "creativefield*2015" will return creative fields with names like "creativefield June 2015", "creativefield April 2015", or simply "creativefield 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativefield" will match creative fields with the name "my creativefield", "creativefield 2015", or simply "creativefield".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only creative fields that belong to these advertisers. (repeated)
-  ids: string, Select only creative fields with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Field List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "creativeFields": [ # Creative field collection.
-      { # Contains properties of a creative field.
-          "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-          "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-          "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#creativeFieldsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative field. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.creativeGroups.html b/docs/dyn/dfareporting_v2_5beta1.creativeGroups.html
deleted file mode 100644
index 11e2704..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.creativeGroups.html
+++ /dev/null
@@ -1,364 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.creativeGroups.html">creativeGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, "creativegroup*2015" will return creative groups with names like "creativegroup June 2015", "creativegroup April 2015", or simply "creativegroup 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativegroup" will match creative groups with the name "my creativegroup", "creativegroup 2015", or simply "creativegroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only creative groups that belong to these advertisers. (repeated)
-  groupNumber: integer, Select only creative groups that belong to this subgroup.
-  maxResults: integer, Maximum number of results to return.
-  ids: string, Select only creative groups with these IDs. (repeated)
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "creativeGroups": [ # Creative group collection.
-      { # Contains properties of a creative group.
-          "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-          "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-              # Acceptable values are:
-              # - 1
-              # - 2
-          "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#creativeGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroupsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.creatives.html b/docs/dyn/dfareporting_v2_5beta1.creatives.html
deleted file mode 100644
index f14f352..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.creatives.html
+++ /dev/null
@@ -1,2893 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.creatives.html">creatives</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of creatives, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</code>
-  <pre>Retrieves a list of creatives, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Select only creatives with this campaign ID.
-  advertiserId: string, Select only creatives with this advertiser ID.
-  sizeIds: string, Select only creatives with these size IDs. (repeated)
-  archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  renderingIds: string, Select only creatives with these rendering IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active creatives. Leave blank to select active and inactive creatives.
-  companionCreativeIds: string, Select only in-stream video creatives with these companion IDs. (repeated)
-  types: string, Select only creatives with these creative types. (repeated)
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_INPAGE - 
-      CUSTOM_INTERSTITIAL - 
-      ENHANCED_BANNER - 
-      ENHANCED_IMAGE - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      REDIRECT - 
-      RICH_MEDIA_EXPANDING - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_INTERSTITIAL_FLOAT - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_MULTI_FLOATING - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR - 
-      VPAID_NON_LINEAR - 
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "creative*2015" will return objects with names like "creative June 2015", "creative April 2015", or simply "creative 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "creative" will match objects with name "my creative", "creative 2015", or simply "creative".
-  ids: string, Select only creatives with these IDs. (repeated)
-  studioCreativeId: string, Select only creatives corresponding to this Studio creative ID.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  creativeFieldIds: string, Select only creatives with these creative field IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Creative List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#creativesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativesListResponse".
-    "creatives": [ # Creative collection.
-      { # Contains properties of a Creative.
-          "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-            { # Third-party Tracking URL.
-              "url": "A String", # URL for the specified third-party URL type.
-              "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-            },
-          ],
-          "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-          "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-          "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-          "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-            "windowHeight": 42, # Height of the window.
-            "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-            "windowWidth": 42, # Width of the window.
-            "positionOption": "A String", # Position in the browser where the window will open.
-            "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-          },
-          "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-          "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-          "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-          "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-          "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-          "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-          "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-            { # Creative Custom Event.
-              "targetType": "A String", # Target type used by the event.
-              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-              "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                "showStatusBar": True or False, # Whether to display the browser status bar.
-                "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                "showAddressBar": True or False, # Whether to display the browser address bar.
-                "showMenuBar": True or False, # Whether to display the browser menu bar.
-                "title": "A String", # Title of popup window.
-                "showToolBar": True or False, # Whether to display the browser tool bar.
-                "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                  "top": 42, # Offset distance from top side of an asset or a window.
-                  "left": 42, # Offset distance from left side of an asset or a window.
-                },
-                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
-                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
-                },
-              },
-              "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-              "advertiserCustomEventName": "A String", # User-entered name for the event.
-            },
-          ],
-          "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-          "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-            { # Creative Field Assignment.
-              "creativeFieldId": "A String", # ID of the creative field.
-              "creativeFieldValueId": "A String", # ID of the creative field value.
-            },
-          ],
-          "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-          "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-            "A String",
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-          "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-          "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-            { # Creative Asset.
-              "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-              "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-              "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-              "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-                "A String",
-              ],
-              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-              "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-              "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-              "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-              "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-              "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-              "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-                  # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-                  # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-                  # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-                  # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-                  # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-                  # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-                  # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-                  # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-              "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-              "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-              "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-              "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-              "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-              "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-              "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-              "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-              "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-                "targetType": "A String", # Target type used by the event.
-                "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-                "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-                "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-                  "showStatusBar": True or False, # Whether to display the browser status bar.
-                  "showScrollBar": True or False, # Whether to display the browser scroll bar.
-                  "showAddressBar": True or False, # Whether to display the browser address bar.
-                  "showMenuBar": True or False, # Whether to display the browser menu bar.
-                  "title": "A String", # Title of popup window.
-                  "showToolBar": True or False, # Whether to display the browser tool bar.
-                  "positionType": "A String", # Popup window position either centered or at specific coordinate.
-                  "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                    "top": 42, # Offset distance from top side of an asset or a window.
-                    "left": 42, # Offset distance from left side of an asset or a window.
-                  },
-                  "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                    "width": 42, # Width of this size.
-                    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                    "height": 42, # Height of this size.
-                  },
-                },
-                "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-                "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-                "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-                "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-                "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-                "advertiserCustomEventName": "A String", # User-entered name for the event.
-              },
-              "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-              "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-                "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-                "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-              },
-              "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-              "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-              "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-            },
-          ],
-          "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-          "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-          "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-          "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            { # Creative Click Tag.
-              "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-              "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-              "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-            },
-          ],
-          "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-          "active": True or False, # Whether the creative is active. Applicable to all creative types.
-          "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-              #
-              # Acceptable values are:
-              # - "APP"
-              # - "APP_INTERSTITIAL"
-              # - "IN_STREAM_VIDEO"
-              # - "DISPLAY"
-              # - "DISPLAY_INTERSTITIAL"
-            "A String",
-          ],
-          "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-            "A String",
-          ],
-          "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-          "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-          "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-          "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-          "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-          "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-          "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-          "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-            "A String",
-          ],
-          "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-          "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-            "A String",
-          ],
-          "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "customHtml": "A String", # User-entered value.
-            "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-          },
-          "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Creative.
-    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      { # Third-party Tracking URL.
-        "url": "A String", # URL for the specified third-party URL type.
-        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-      },
-    ],
-    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-      "windowHeight": 42, # Height of the window.
-      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      "windowWidth": 42, # Width of the window.
-      "positionOption": "A String", # Position in the browser where the window will open.
-      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-    },
-    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-    "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-    "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-      { # Creative Custom Event.
-        "targetType": "A String", # Target type used by the event.
-        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-        "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-          "showStatusBar": True or False, # Whether to display the browser status bar.
-          "showScrollBar": True or False, # Whether to display the browser scroll bar.
-          "showAddressBar": True or False, # Whether to display the browser address bar.
-          "showMenuBar": True or False, # Whether to display the browser menu bar.
-          "title": "A String", # Title of popup window.
-          "showToolBar": True or False, # Whether to display the browser tool bar.
-          "positionType": "A String", # Popup window position either centered or at specific coordinate.
-          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-        },
-        "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-        "advertiserCustomEventName": "A String", # User-entered name for the event.
-      },
-    ],
-    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-      { # Creative Field Assignment.
-        "creativeFieldId": "A String", # ID of the creative field.
-        "creativeFieldValueId": "A String", # ID of the creative field value.
-      },
-    ],
-    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-      { # Creative Asset.
-        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-          "A String",
-        ],
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
-          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
-        },
-        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-        },
-        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "top": 42, # Offset distance from top side of an asset or a window.
-          "left": 42, # Offset distance from left side of an asset or a window.
-        },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-      },
-    ],
-    "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-    "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      { # Creative Click Tag.
-        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-      },
-    ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    "active": True or False, # Whether the creative is active. Applicable to all creative types.
-    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-        # 
-        # Acceptable values are:
-        # - "APP"
-        # - "APP_INTERSTITIAL"
-        # - "IN_STREAM_VIDEO"
-        # - "DISPLAY"
-        # - "DISPLAY_INTERSTITIAL"
-      "A String",
-    ],
-    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "A String",
-    ],
-    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-    "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "A String",
-    ],
-    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-      "A String",
-    ],
-    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "customHtml": "A String", # User-entered value.
-      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-    },
-    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Creative.
-      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        { # Third-party Tracking URL.
-          "url": "A String", # URL for the specified third-party URL type.
-          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
-        },
-      ],
-      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
-      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "timerCustomEvents": [ # List of timer events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
-        "windowHeight": 42, # Height of the window.
-        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-        "windowWidth": 42, # Width of the window.
-        "positionOption": "A String", # Position in the browser where the window will open.
-        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
-      },
-      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
-      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
-      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
-      "authoringSource": "A String", # Source application where creative was authored. Presently, only DBM authored creatives will have this field set. Applicable to all creative types.
-      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "exitCustomEvents": [ # List of exit events configured for the creative. For ENHANCED_BANNER and ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags, For ENHANCED_BANNER, an event is also created from the backupImageReportingLabel. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
-      "counterCustomEvents": [ # List of counter events configured for the creative. For ENHANCED_IMAGE creatives, these are read-only and auto-generated from clickTags. Applicable to the following creative types: ENHANCED_IMAGE, all RICH_MEDIA, and all VPAID.
-        { # Creative Custom Event.
-          "targetType": "A String", # Target type used by the event.
-          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-          "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-            "showStatusBar": True or False, # Whether to display the browser status bar.
-            "showScrollBar": True or False, # Whether to display the browser scroll bar.
-            "showAddressBar": True or False, # Whether to display the browser address bar.
-            "showMenuBar": True or False, # Whether to display the browser menu bar.
-            "title": "A String", # Title of popup window.
-            "showToolBar": True or False, # Whether to display the browser tool bar.
-            "positionType": "A String", # Popup window position either centered or at specific coordinate.
-            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-              "top": 42, # Offset distance from top side of an asset or a window.
-              "left": 42, # Offset distance from left side of an asset or a window.
-            },
-            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
-              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
-            },
-          },
-          "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-          "advertiserCustomEventName": "A String", # User-entered name for the event.
-        },
-      ],
-      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
-      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
-        { # Creative Field Assignment.
-          "creativeFieldId": "A String", # ID of the creative field.
-          "creativeFieldValueId": "A String", # ID of the creative field value.
-        },
-      ],
-      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
-      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, and for ENHANCED_BANNER creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
-      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA.
-      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
-        { # Creative Asset.
-          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
-            "A String",
-          ],
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
-          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
-          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
-          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
-              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
-              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
-              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
-              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
-              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
-              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR_VIDEO creatives. These cannot be added or removed within DCM.
-              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
-          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
-          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
-          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
-          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
-          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
-          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
-            "targetType": "A String", # Target type used by the event.
-            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
-            "videoReportingId": "A String", # Video reporting ID, used to differentiate multiple videos in a single creative. This is a read-only field.
-            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
-              "showStatusBar": True or False, # Whether to display the browser status bar.
-              "showScrollBar": True or False, # Whether to display the browser scroll bar.
-              "showAddressBar": True or False, # Whether to display the browser address bar.
-              "showMenuBar": True or False, # Whether to display the browser menu bar.
-              "title": "A String", # Title of popup window.
-              "showToolBar": True or False, # Whether to display the browser tool bar.
-              "positionType": "A String", # Popup window position either centered or at specific coordinate.
-              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
-                "top": 42, # Offset distance from top side of an asset or a window.
-                "left": 42, # Offset distance from left side of an asset or a window.
-              },
-              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
-                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
-              },
-            },
-            "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
-            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
-            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
-            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
-            "advertiserCustomEventName": "A String", # User-entered name for the event.
-          },
-          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
-          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
-            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
-          },
-          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
-          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
-          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
-            "top": 42, # Offset distance from top side of an asset or a window.
-            "left": 42, # Offset distance from left side of an asset or a window.
-          },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
-        },
-      ],
-      "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, REDIRECT, and INSTREAM_VIDEO_REDIRECT
-      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
-      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
-      "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_IMAGE, FLASH_INPAGE HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        { # Creative Click Tag.
-          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_IMAGE, and HTML5_BANNER creatives. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE
-          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
-          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
-        },
-      ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-      "active": True or False, # Whether the creative is active. Applicable to all creative types.
-      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
-          #
-          # Acceptable values are:
-          # - "APP"
-          # - "APP_INTERSTITIAL"
-          # - "IN_STREAM_VIDEO"
-          # - "DISPLAY"
-          # - "DISPLAY_INTERSTITIAL"
-        "A String",
-      ],
-      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
-      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-        "A String",
-      ],
-      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
-      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
-      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
-      "sslOverride": True or False, # Whether creative should be treated as SSL compliant even if the system scan shows it's not. Applicable to all creative types.
-      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
-      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
-      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
-      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
-      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-        "A String",
-      ],
-      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
-      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset is not HTML_IMAGE.
-        "A String",
-      ],
-      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: FLASH_INPAGE, and HTML5_BANNER. Applicable to ENHANCED_BANNER when the primary asset type is not HTML_IMAGE.
-        "customHtml": "A String", # User-entered value.
-        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
-      },
-      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.dimensionValues.html b/docs/dyn/dfareporting_v2_5beta1.dimensionValues.html
deleted file mode 100644
index 40c942b..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.dimensionValues.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.dimensionValues.html">dimensionValues</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#query">query(profileId, body, pageToken=None, maxResults=None)</a></code></p>
-<p class="firstline">Retrieves list of report dimension values for a list of filters.</p>
-<p class="toc_element">
-  <code><a href="#query_next">query_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="query">query(profileId, body, pageToken=None, maxResults=None)</code>
-  <pre>Retrieves list of report dimension values for a list of filters.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a DimensionValuesRequest.
-    "dimensionName": "A String", # The name of the dimension for which values should be requested.
-    "startDate": "A String", # The start date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
-    "kind": "dfareporting#dimensionValueRequest", # The kind of request this is, in this case dfareporting#dimensionValueRequest.
-    "endDate": "A String", # The end date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
-    "filters": [ # The list of filters by which to filter values. The filters are ANDed.
-      { # Represents a dimension filter.
-        "dimensionName": "A String", # The name of the dimension to filter.
-        "kind": "dfareporting#dimensionFilter", # The kind of resource this is, in this case dfareporting#dimensionFilter.
-        "value": "A String", # The value of the dimension to filter.
-      },
-    ],
-  }
-
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of DimensionValue resources.
-    "nextPageToken": "A String", # Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The dimension values returned in this response.
-      { # Represents a DimensionValue resource.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-    ],
-    "kind": "dfareporting#dimensionValueList", # The kind of list this is, in this case dfareporting#dimensionValueList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="query_next">query_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
diff --git a/docs/dyn/dfareporting_v2_5beta1.directorySiteContacts.html b/docs/dyn/dfareporting_v2_5beta1.directorySiteContacts.html
deleted file mode 100644
index 09c311f..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.directorySiteContacts.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.directorySiteContacts.html">directorySiteContacts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one directory site contact by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of directory site contacts, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one directory site contact by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Directory site contact ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Site Directory contact.
-    "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
-    "firstName": "A String", # First name of this directory site contact.
-    "title": "A String", # Title or designation of this directory site contact.
-    "lastName": "A String", # Last name of this directory site contact.
-    "email": "A String", # Email address of this directory site contact.
-    "phone": "A String", # Phone number of this directory site contact.
-    "role": "A String", # Directory site contact role.
-    "address": "A String", # Address of this directory site contact.
-    "type": "A String", # Directory site contact type.
-    "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of directory site contacts, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "directory site contact*2015" will return objects with names like "directory site contact June 2015", "directory site contact April 2015", or simply "directory site contact 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site contact" will match objects with name "my directory site contact", "directory site contact 2015", or simply "directory site contact".
-  directorySiteIds: string, Select only directory site contacts with these directory site IDs. This is a required field. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only directory site contacts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Directory Site Contact List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "directorySiteContacts": [ # Directory site contact collection
-      { # Contains properties of a Site Directory contact.
-        "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
-        "firstName": "A String", # First name of this directory site contact.
-        "title": "A String", # Title or designation of this directory site contact.
-        "lastName": "A String", # Last name of this directory site contact.
-        "email": "A String", # Email address of this directory site contact.
-        "phone": "A String", # Phone number of this directory site contact.
-        "role": "A String", # Directory site contact role.
-        "address": "A String", # Address of this directory site contact.
-        "type": "A String", # Directory site contact type.
-        "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "kind": "dfareporting#directorySiteContactsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContactsListResponse".
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.dynamicTargetingKeys.html b/docs/dyn/dfareporting_v2_5beta1.dynamicTargetingKeys.html
deleted file mode 100644
index 95916f8..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.dynamicTargetingKeys.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.dynamicTargetingKeys.html">dynamicTargetingKeys</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, objectId, name, objectType)</a></code></p>
-<p class="firstline">Deletes an existing dynamic targeting key.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new dynamic targeting key. Keys must be created at the advertiser level before being assigned to the advertiser's ads, creatives, or placements. There is a maximum of 1000 keys per advertiser, out of which a maximum of 20 keys can be assigned per ad, creative, or placement.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId=None, objectId=None, names=None, objectType=None)</a></code></p>
-<p class="firstline">Retrieves a list of dynamic targeting keys.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, objectId, name, objectType)</code>
-  <pre>Deletes an existing dynamic targeting key.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  objectId: string, ID of the object of this dynamic targeting key. This is a required field. (required)
-  name: string, Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase. (required)
-  objectType: string, Type of the object of this dynamic targeting key. This is a required field. (required)
-    Allowed values
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_CREATIVE - 
-      OBJECT_PLACEMENT - 
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new dynamic targeting key. Keys must be created at the advertiser level before being assigned to the advertiser's ads, creatives, or placements. There is a maximum of 1000 keys per advertiser, out of which a maximum of 20 keys can be assigned per ad, creative, or placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with DoubleClick Studio dynamic creatives. Use these labels instead of numeric DCM IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.
-    "kind": "dfareporting#dynamicTargetingKey", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKey".
-    "name": "A String", # Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.
-    "objectId": "A String", # ID of the object of this dynamic targeting key. This is a required field.
-    "objectType": "A String", # Type of the object of this dynamic targeting key. This is a required field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with DoubleClick Studio dynamic creatives. Use these labels instead of numeric DCM IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.
-      "kind": "dfareporting#dynamicTargetingKey", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKey".
-      "name": "A String", # Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.
-      "objectId": "A String", # ID of the object of this dynamic targeting key. This is a required field.
-      "objectType": "A String", # Type of the object of this dynamic targeting key. This is a required field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId=None, objectId=None, names=None, objectType=None)</code>
-  <pre>Retrieves a list of dynamic targeting keys.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only dynamic targeting keys whose object has this advertiser ID.
-  objectId: string, Select only dynamic targeting keys with this object ID.
-  names: string, Select only dynamic targeting keys exactly matching these names. (repeated)
-  objectType: string, Select only dynamic targeting keys with this object type.
-    Allowed values
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_CREATIVE - 
-      OBJECT_PLACEMENT - 
-
-Returns:
-  An object of the form:
-
-    { # Dynamic Targeting Key List Response
-    "kind": "dfareporting#dynamicTargetingKeysListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKeysListResponse".
-    "dynamicTargetingKeys": [ # Dynamic targeting key collection.
-      { # Contains properties of a dynamic targeting key. Dynamic targeting keys are unique, user-friendly labels, created at the advertiser level in DCM, that can be assigned to ads, creatives, and placements and used for targeting with DoubleClick Studio dynamic creatives. Use these labels instead of numeric DCM IDs (such as placement IDs) to save time and avoid errors in your dynamic feeds.
-          "kind": "dfareporting#dynamicTargetingKey", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#dynamicTargetingKey".
-          "name": "A String", # Name of this dynamic targeting key. This is a required field. Must be less than 256 characters long and cannot contain commas. All characters are converted to lowercase.
-          "objectId": "A String", # ID of the object of this dynamic targeting key. This is a required field.
-          "objectType": "A String", # Type of the object of this dynamic targeting key. This is a required field.
-        },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.eventTags.html b/docs/dyn/dfareporting_v2_5beta1.eventTags.html
deleted file mode 100644
index d893913..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.eventTags.html
+++ /dev/null
@@ -1,493 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.eventTags.html">eventTags</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing event tag.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one event tag by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new event tag.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of event tags, possibly filtered.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing event tag. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing event tag.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one event tag by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</code>
-  <pre>Retrieves a list of event tags, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Select only event tags that belong to this campaign.
-  advertiserId: string, Select only event tags that belong to this advertiser.
-  adId: string, Select only event tags that belong to this ad.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  definitionsOnly: boolean, Examine only the specified campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign of the specified ad or campaign is examined as well. In addition, when set to false, the status field is examined as well, along with the enabledByDefault field. This parameter can not be set to true when adId is specified as ads do not define their own even tags.
-  eventTagTypes: string, Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. (repeated)
-    Allowed values
-      CLICK_THROUGH_EVENT_TAG - 
-      IMPRESSION_IMAGE_EVENT_TAG - 
-      IMPRESSION_JAVASCRIPT_EVENT_TAG - 
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "eventtag*2015" will return objects with names like "eventtag June 2015", "eventtag April 2015", or simply "eventtag 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "eventtag" will match objects with name "my eventtag", "eventtag 2015", or simply "eventtag".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  enabled: boolean, Select only enabled event tags. What is considered enabled or disabled depends on the definitionsOnly parameter. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.
-  ids: string, Select only event tags with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Event Tag List Response
-    "eventTags": [ # Event tag collection.
-      { # Contains properties of an event tag.
-          "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-          "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-          "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-          "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-          "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-          "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-          "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-          "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-          "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-            "A String",
-          ],
-          "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-          "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-          "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#eventTagsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTagsListResponse".
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing event tag. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.files.html b/docs/dyn/dfareporting_v2_5beta1.files.html
deleted file mode 100644
index ee6d754..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.files.html
+++ /dev/null
@@ -1,205 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.files.html">files</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
-<p class="toc_element">
-  <code><a href="#get_media">get_media(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
-<p class="firstline">Lists files for a user profile.</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="get">get(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
-
-Args:
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get_media">get_media(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
-
-Args:
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  The media object as a string.
-
-    </pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
-  <pre>Lists files for a user profile.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by file ID.
-      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
-    Allowed values
-      ALL - All files in account.
-      MINE - My files.
-      SHARED_WITH_ME - Files shared with me.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of File resources.
-    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The files returned in this response.
-      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-        "status": "A String", # The status of the report file.
-        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-        "format": "A String", # The output format of the report. Only available once the file is available.
-        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "fileName": "A String", # The filename of the file.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "reportId": "A String", # The ID of the report this file was generated from.
-        "urls": { # The URLs where the completed report file can be downloaded.
-          "browserUrl": "A String", # The URL for downloading the report data through a browser.
-          "apiUrl": "A String", # The URL for downloading the report data through the API.
-        },
-        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-        "id": "A String", # The unique ID of this report file.
-      },
-    ],
-    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.floodlightActivities.html b/docs/dyn/dfareporting_v2_5beta1.floodlightActivities.html
deleted file mode 100644
index bacb540..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.floodlightActivities.html
+++ /dev/null
@@ -1,1045 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.floodlightActivities.html">floodlightActivities</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#generatetag">generatetag(profileId, floodlightActivityId=None)</a></code></p>
-<p class="firstline">Generates a tag for a floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight activity by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight activities, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="generatetag">generatetag(profileId, floodlightActivityId=None)</code>
-  <pre>Generates a tag for a floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  floodlightActivityId: string, Floodlight activity ID for which we want to generate a tag.
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity GenerateTag Response
-    "kind": "dfareporting#floodlightActivitiesGenerateTagResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesGenerateTagResponse".
-    "floodlightActivityTag": "A String", # Generated tag for this floodlight activity.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight activity by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</code>
-  <pre>Retrieves a list of floodlight activities, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  floodlightActivityGroupName: string, Select only floodlight activities with the specified floodlight activity group name.
-  advertiserId: string, Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
-  tagString: string, Select only floodlight activities with the specified tag string.
-  floodlightActivityGroupTagString: string, Select only floodlight activities with the specified floodlight activity group tag string.
-  floodlightActivityGroupIds: string, Select only floodlight activities with the specified floodlight activity group IDs. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxResults: integer, Maximum number of results to return.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivity*2015" will return objects with names like "floodlightactivity June 2015", "floodlightactivity April 2015", or simply "floodlightactivity 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivity" will match objects with name "my floodlightactivity activity", "floodlightactivity 2015", or simply "floodlightactivity".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightConfigurationId: string, Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
-  ids: string, Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result. (repeated)
-  floodlightActivityGroupType: string, Select only floodlight activities with the specified floodlight activity group type.
-    Allowed values
-      COUNTER - 
-      SALE - 
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#floodlightActivitiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesListResponse".
-    "floodlightActivities": [ # Floodlight activity collection.
-      { # Contains properties of a Floodlight activity.
-          "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-          "secure": True or False, # Whether this tag should use SSL.
-          "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-          "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-          "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-          "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-          "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-          "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-          "publisherTags": [ # Publisher dynamic floodlight tags.
-            { # Publisher Dynamic Tag
-              "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-              "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-              "siteId": "A String", # Site ID of this dynamic tag.
-              "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-                "tag": "A String", # Tag code.
-                "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-                "name": "A String", # Name of this tag.
-              },
-              "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-              "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            },
-          ],
-          "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "hidden": True or False, # Whether this activity is archived.
-          "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-          "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-          "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-          "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-          "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-          "notes": "A String", # General notes or implementation instructions for the tag.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-          "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-              # Acceptable values are:
-              # - "U1"
-              # - "U2"
-              # - "U3"
-              # - "U4"
-              # - "U5"
-              # - "U6"
-              # - "U7"
-              # - "U8"
-              # - "U9"
-              # - "U10"
-              # - "U11"
-              # - "U12"
-              # - "U13"
-              # - "U14"
-              # - "U15"
-              # - "U16"
-              # - "U17"
-              # - "U18"
-              # - "U19"
-              # - "U20"
-            "A String",
-          ],
-          "defaultTags": [ # Dynamic floodlight tags.
-            { # Dynamic Tag
-              "tag": "A String", # Tag code.
-              "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this tag.
-            },
-          ],
-          "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-          "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight activity. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.floodlightConfigurations.html b/docs/dyn/dfareporting_v2_5beta1.floodlightConfigurations.html
deleted file mode 100644
index 343e8f8..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.floodlightConfigurations.html
+++ /dev/null
@@ -1,514 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.floodlightConfigurations.html">floodlightConfigurations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight configuration by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight configurations, possibly filtered.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight configuration. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight configuration.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight configuration by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight configuration ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, ids=None)</code>
-  <pre>Retrieves a list of floodlight configurations, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  ids: string, Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Configuration List Response
-    "floodlightConfigurations": [ # Floodlight configuration collection.
-      { # Contains properties of a Floodlight configuration.
-          "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-          "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-          "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-            "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-            "imageTagEnabled": True or False, # Whether image tags are enabled.
-          },
-          "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-          "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-              #
-              # Acceptable values are:
-              # - "ORD"
-              # - "NUM"
-            "A String",
-          ],
-          "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-            "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-            "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-          },
-          "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-          "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-          "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-          "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-          "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-            { # Third Party Authentication Token
-              "name": "A String", # Name of the third-party authentication token.
-              "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-            },
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-          "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-            { # User Defined Variable configuration.
-              "dataType": "A String", # Data type for the variable. This is a required field.
-              "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-              "variableType": "A String", # Variable name in the tag. This is a required field.
-            },
-          ],
-          "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#floodlightConfigurationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfigurationsListResponse".
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight configuration. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight configuration ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight configuration.
-    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-      "imageTagEnabled": True or False, # Whether image tags are enabled.
-    },
-    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
-    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-    },
-    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-    "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-    "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-      { # Third Party Authentication Token
-        "name": "A String", # Name of the third-party authentication token.
-        "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-      },
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-      { # User Defined Variable configuration.
-        "dataType": "A String", # Data type for the variable. This is a required field.
-        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-        "variableType": "A String", # Variable name in the tag. This is a required field.
-      },
-    ],
-    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight configuration.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight configuration.
-    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-      "imageTagEnabled": True or False, # Whether image tags are enabled.
-    },
-    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
-    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-    },
-    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-    "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-    "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-      { # Third Party Authentication Token
-        "name": "A String", # Name of the third-party authentication token.
-        "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-      },
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-      { # User Defined Variable configuration.
-        "dataType": "A String", # Data type for the variable. This is a required field.
-        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-        "variableType": "A String", # Variable name in the tag. This is a required field.
-      },
-    ],
-    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.html b/docs/dyn/dfareporting_v2_5beta1.html
deleted file mode 100644
index b44df52..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.html
+++ /dev/null
@@ -1,383 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.accountActiveAdSummaries.html">accountActiveAdSummaries()</a></code>
-</p>
-<p class="firstline">Returns the accountActiveAdSummaries Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.accountPermissionGroups.html">accountPermissionGroups()</a></code>
-</p>
-<p class="firstline">Returns the accountPermissionGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.accountPermissions.html">accountPermissions()</a></code>
-</p>
-<p class="firstline">Returns the accountPermissions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.accountUserProfiles.html">accountUserProfiles()</a></code>
-</p>
-<p class="firstline">Returns the accountUserProfiles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.accounts.html">accounts()</a></code>
-</p>
-<p class="firstline">Returns the accounts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.ads.html">ads()</a></code>
-</p>
-<p class="firstline">Returns the ads Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.advertiserGroups.html">advertiserGroups()</a></code>
-</p>
-<p class="firstline">Returns the advertiserGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.advertisers.html">advertisers()</a></code>
-</p>
-<p class="firstline">Returns the advertisers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.browsers.html">browsers()</a></code>
-</p>
-<p class="firstline">Returns the browsers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.campaignCreativeAssociations.html">campaignCreativeAssociations()</a></code>
-</p>
-<p class="firstline">Returns the campaignCreativeAssociations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.campaigns.html">campaigns()</a></code>
-</p>
-<p class="firstline">Returns the campaigns Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.changeLogs.html">changeLogs()</a></code>
-</p>
-<p class="firstline">Returns the changeLogs Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.cities.html">cities()</a></code>
-</p>
-<p class="firstline">Returns the cities Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.connectionTypes.html">connectionTypes()</a></code>
-</p>
-<p class="firstline">Returns the connectionTypes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.contentCategories.html">contentCategories()</a></code>
-</p>
-<p class="firstline">Returns the contentCategories Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.conversions.html">conversions()</a></code>
-</p>
-<p class="firstline">Returns the conversions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.countries.html">countries()</a></code>
-</p>
-<p class="firstline">Returns the countries Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.creativeAssets.html">creativeAssets()</a></code>
-</p>
-<p class="firstline">Returns the creativeAssets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.creativeFieldValues.html">creativeFieldValues()</a></code>
-</p>
-<p class="firstline">Returns the creativeFieldValues Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.creativeFields.html">creativeFields()</a></code>
-</p>
-<p class="firstline">Returns the creativeFields Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.creativeGroups.html">creativeGroups()</a></code>
-</p>
-<p class="firstline">Returns the creativeGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.creatives.html">creatives()</a></code>
-</p>
-<p class="firstline">Returns the creatives Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.dimensionValues.html">dimensionValues()</a></code>
-</p>
-<p class="firstline">Returns the dimensionValues Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.directorySiteContacts.html">directorySiteContacts()</a></code>
-</p>
-<p class="firstline">Returns the directorySiteContacts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.directorySites.html">directorySites()</a></code>
-</p>
-<p class="firstline">Returns the directorySites Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.dynamicTargetingKeys.html">dynamicTargetingKeys()</a></code>
-</p>
-<p class="firstline">Returns the dynamicTargetingKeys Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.eventTags.html">eventTags()</a></code>
-</p>
-<p class="firstline">Returns the eventTags Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.files.html">files()</a></code>
-</p>
-<p class="firstline">Returns the files Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.floodlightActivities.html">floodlightActivities()</a></code>
-</p>
-<p class="firstline">Returns the floodlightActivities Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.floodlightActivityGroups.html">floodlightActivityGroups()</a></code>
-</p>
-<p class="firstline">Returns the floodlightActivityGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.floodlightConfigurations.html">floodlightConfigurations()</a></code>
-</p>
-<p class="firstline">Returns the floodlightConfigurations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.inventoryItems.html">inventoryItems()</a></code>
-</p>
-<p class="firstline">Returns the inventoryItems Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.landingPages.html">landingPages()</a></code>
-</p>
-<p class="firstline">Returns the landingPages Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.metros.html">metros()</a></code>
-</p>
-<p class="firstline">Returns the metros Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.mobileCarriers.html">mobileCarriers()</a></code>
-</p>
-<p class="firstline">Returns the mobileCarriers Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.operatingSystemVersions.html">operatingSystemVersions()</a></code>
-</p>
-<p class="firstline">Returns the operatingSystemVersions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.operatingSystems.html">operatingSystems()</a></code>
-</p>
-<p class="firstline">Returns the operatingSystems Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.orderDocuments.html">orderDocuments()</a></code>
-</p>
-<p class="firstline">Returns the orderDocuments Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.orders.html">orders()</a></code>
-</p>
-<p class="firstline">Returns the orders Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.placementGroups.html">placementGroups()</a></code>
-</p>
-<p class="firstline">Returns the placementGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.placementStrategies.html">placementStrategies()</a></code>
-</p>
-<p class="firstline">Returns the placementStrategies Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.placements.html">placements()</a></code>
-</p>
-<p class="firstline">Returns the placements Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.platformTypes.html">platformTypes()</a></code>
-</p>
-<p class="firstline">Returns the platformTypes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.postalCodes.html">postalCodes()</a></code>
-</p>
-<p class="firstline">Returns the postalCodes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.projects.html">projects()</a></code>
-</p>
-<p class="firstline">Returns the projects Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.regions.html">regions()</a></code>
-</p>
-<p class="firstline">Returns the regions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.remarketingListShares.html">remarketingListShares()</a></code>
-</p>
-<p class="firstline">Returns the remarketingListShares Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.remarketingLists.html">remarketingLists()</a></code>
-</p>
-<p class="firstline">Returns the remarketingLists Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.reports.html">reports()</a></code>
-</p>
-<p class="firstline">Returns the reports Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.sites.html">sites()</a></code>
-</p>
-<p class="firstline">Returns the sites Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.sizes.html">sizes()</a></code>
-</p>
-<p class="firstline">Returns the sizes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.subaccounts.html">subaccounts()</a></code>
-</p>
-<p class="firstline">Returns the subaccounts Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.targetableRemarketingLists.html">targetableRemarketingLists()</a></code>
-</p>
-<p class="firstline">Returns the targetableRemarketingLists Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.userProfiles.html">userProfiles()</a></code>
-</p>
-<p class="firstline">Returns the userProfiles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.userRolePermissionGroups.html">userRolePermissionGroups()</a></code>
-</p>
-<p class="firstline">Returns the userRolePermissionGroups Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.userRolePermissions.html">userRolePermissions()</a></code>
-</p>
-<p class="firstline">Returns the userRolePermissions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.userRoles.html">userRoles()</a></code>
-</p>
-<p class="firstline">Returns the userRoles Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.inventoryItems.html b/docs/dyn/dfareporting_v2_5beta1.inventoryItems.html
deleted file mode 100644
index 8546b1e..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.inventoryItems.html
+++ /dev/null
@@ -1,250 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.inventoryItems.html">inventoryItems</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one inventory item by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, pageToken=None, inPlan=None, sortOrder=None, type=None, orderId=None, maxResults=None, siteId=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of inventory items, possibly filtered. This method supports paging.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one inventory item by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  id: string, Inventory item ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a buy from the DoubleClick Planning inventory store.
-    "orderId": "A String", # Order ID of this inventory item.
-    "pricing": { # Pricing Information # Pricing of this inventory item.
-      "groupType": "A String", # Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.
-      "startDate": "A String", # Start date of this inventory item.
-      "endDate": "A String", # End date of this inventory item.
-      "pricingType": "A String", # Pricing type of this inventory item.
-      "flights": [ # Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.
-        { # Flight
-          "rateOrCost": "A String", # Rate or cost of this flight.
-          "startDate": "A String", # Inventory item flight start date.
-          "units": "A String", # Units of this flight.
-          "endDate": "A String", # Inventory item flight end date.
-        },
-      ],
-      "capCostType": "A String", # Cap cost type of this inventory item.
-    },
-    "kind": "dfareporting#inventoryItem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItem".
-    "negotiationChannelId": "A String", # Negotiation channel ID of this inventory item.
-    "subaccountId": "A String", # Subaccount ID of this inventory item.
-    "name": "A String", # Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.
-    "estimatedClickThroughRate": "A String", # Estimated click-through rate of this inventory item.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this inventory item.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "estimatedConversionRate": "A String", # Estimated conversion rate of this inventory item.
-    "inPlan": True or False, # Whether this inventory item is in plan.
-    "id": "A String", # ID of this inventory item.
-    "advertiserId": "A String", # Advertiser ID of this inventory item.
-    "siteId": "A String", # ID of the site this inventory item is associated with.
-    "adSlots": [ # Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.
-      { # Ad Slot
-        "comment": "A String", # Comment for this ad slot.
-        "linkedPlacementId": "A String", # ID of the placement from an external platform that is linked to this ad slot.
-        "name": "A String", # Name of this ad slot.
-        "primary": True or False, # Primary ad slot of a roadblock inventory item.
-        "height": "A String", # Height of this ad slot.
-        "width": "A String", # Width of this ad slot.
-        "paymentSourceType": "A String", # Payment source type of this ad slot.
-        "compatibility": "A String", # Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.
-      },
-    ],
-    "projectId": "A String", # Project ID of this inventory item.
-    "rfpId": "A String", # RFP ID of this inventory item.
-    "type": "A String", # Type of inventory item.
-    "contentCategoryId": "A String", # Content category ID of this inventory item.
-    "placementStrategyId": "A String", # Placement strategy ID of this inventory item.
-    "accountId": "A String", # Account ID of this inventory item.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, pageToken=None, inPlan=None, sortOrder=None, type=None, orderId=None, maxResults=None, siteId=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of inventory items, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  inPlan: boolean, Select only inventory items that are in plan.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only inventory items with this type.
-    Allowed values
-      PLANNING_PLACEMENT_TYPE_CREDIT - 
-      PLANNING_PLACEMENT_TYPE_REGULAR - 
-  orderId: string, Select only inventory items that belong to specified orders. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  siteId: string, Select only inventory items that are associated with these sites. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only inventory items with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Inventory item List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#inventoryItemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItemsListResponse".
-    "inventoryItems": [ # Inventory item collection
-      { # Represents a buy from the DoubleClick Planning inventory store.
-        "orderId": "A String", # Order ID of this inventory item.
-        "pricing": { # Pricing Information # Pricing of this inventory item.
-          "groupType": "A String", # Group type of this inventory item if it represents a placement group. Is null otherwise. There are two type of placement groups: PLANNING_PLACEMENT_GROUP_TYPE_PACKAGE is a simple group of inventory items that acts as a single pricing point for a group of tags. PLANNING_PLACEMENT_GROUP_TYPE_ROADBLOCK is a group of inventory items that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned inventory items to be marked as primary.
-          "startDate": "A String", # Start date of this inventory item.
-          "endDate": "A String", # End date of this inventory item.
-          "pricingType": "A String", # Pricing type of this inventory item.
-          "flights": [ # Flights of this inventory item. A flight (a.k.a. pricing period) represents the inventory item pricing information for a specific period of time.
-            { # Flight
-              "rateOrCost": "A String", # Rate or cost of this flight.
-              "startDate": "A String", # Inventory item flight start date.
-              "units": "A String", # Units of this flight.
-              "endDate": "A String", # Inventory item flight end date.
-            },
-          ],
-          "capCostType": "A String", # Cap cost type of this inventory item.
-        },
-        "kind": "dfareporting#inventoryItem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#inventoryItem".
-        "negotiationChannelId": "A String", # Negotiation channel ID of this inventory item.
-        "subaccountId": "A String", # Subaccount ID of this inventory item.
-        "name": "A String", # Name of this inventory item. For standalone inventory items, this is the same name as that of its only ad slot. For group inventory items, this can differ from the name of any of its ad slots.
-        "estimatedClickThroughRate": "A String", # Estimated click-through rate of this inventory item.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this inventory item.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "estimatedConversionRate": "A String", # Estimated conversion rate of this inventory item.
-        "inPlan": True or False, # Whether this inventory item is in plan.
-        "id": "A String", # ID of this inventory item.
-        "advertiserId": "A String", # Advertiser ID of this inventory item.
-        "siteId": "A String", # ID of the site this inventory item is associated with.
-        "adSlots": [ # Ad slots of this inventory item. If this inventory item represents a standalone placement, there will be exactly one ad slot. If this inventory item represents a placement group, there will be more than one ad slot, each representing one child placement in that placement group.
-          { # Ad Slot
-            "comment": "A String", # Comment for this ad slot.
-            "linkedPlacementId": "A String", # ID of the placement from an external platform that is linked to this ad slot.
-            "name": "A String", # Name of this ad slot.
-            "primary": True or False, # Primary ad slot of a roadblock inventory item.
-            "height": "A String", # Height of this ad slot.
-            "width": "A String", # Width of this ad slot.
-            "paymentSourceType": "A String", # Payment source type of this ad slot.
-            "compatibility": "A String", # Ad slot compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop, mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard.
-          },
-        ],
-        "projectId": "A String", # Project ID of this inventory item.
-        "rfpId": "A String", # RFP ID of this inventory item.
-        "type": "A String", # Type of inventory item.
-        "contentCategoryId": "A String", # Content category ID of this inventory item.
-        "placementStrategyId": "A String", # Placement strategy ID of this inventory item.
-        "accountId": "A String", # Account ID of this inventory item.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.metros.html b/docs/dyn/dfareporting_v2_5beta1.metros.html
deleted file mode 100644
index dad0971..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.metros.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.metros.html">metros</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of metros.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of metros.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Metro List Response
-    "kind": "dfareporting#metrosListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metrosListResponse".
-    "metros": [ # Metro collection.
-      { # Contains information about a metro region that can be targeted by ads.
-        "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-        "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-        "name": "A String", # Name of this metro region.
-        "countryCode": "A String", # Country code of the country to which this metro region belongs.
-        "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-        "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-        "dartId": "A String", # DART ID of this metro region.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.mobileCarriers.html b/docs/dyn/dfareporting_v2_5beta1.mobileCarriers.html
deleted file mode 100644
index 28de22f..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.mobileCarriers.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.mobileCarriers.html">mobileCarriers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one mobile carrier by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of mobile carriers.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one mobile carrier by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Mobile carrier ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a mobile carrier that can be targeted by ads.
-    "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-    "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-    "id": "A String", # ID of this mobile carrier.
-    "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-    "name": "A String", # Name of this mobile carrier.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of mobile carriers.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Mobile Carrier List Response
-    "kind": "dfareporting#mobileCarriersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarriersListResponse".
-    "mobileCarriers": [ # Mobile carrier collection.
-      { # Contains information about a mobile carrier that can be targeted by ads.
-        "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-        "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-        "id": "A String", # ID of this mobile carrier.
-        "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-        "name": "A String", # Name of this mobile carrier.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.operatingSystemVersions.html b/docs/dyn/dfareporting_v2_5beta1.operatingSystemVersions.html
deleted file mode 100644
index ae4c904..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.operatingSystemVersions.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.operatingSystemVersions.html">operatingSystemVersions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one operating system version by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of operating system versions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one operating system version by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Operating system version ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a particular version of an operating system that can be targeted by ads.
-    "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-    "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-    "name": "A String", # Name of this operating system version.
-    "id": "A String", # ID of this operating system version.
-    "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-      "mobile": True or False, # Whether this operating system is for mobile.
-      "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-      "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-      "name": "A String", # Name of this operating system.
-      "desktop": True or False, # Whether this operating system is for desktop.
-    },
-    "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of operating system versions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Operating System Version List Response
-    "kind": "dfareporting#operatingSystemVersionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersionsListResponse".
-    "operatingSystemVersions": [ # Operating system version collection.
-      { # Contains information about a particular version of an operating system that can be targeted by ads.
-        "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
-        "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
-        "name": "A String", # Name of this operating system version.
-        "id": "A String", # ID of this operating system version.
-        "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
-          "mobile": True or False, # Whether this operating system is for mobile.
-          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-          "name": "A String", # Name of this operating system.
-          "desktop": True or False, # Whether this operating system is for desktop.
-        },
-        "minorVersion": "A String", # Minor version (number after the first dot) of this operating system version.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.operatingSystems.html b/docs/dyn/dfareporting_v2_5beta1.operatingSystems.html
deleted file mode 100644
index 3df5c7f..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.operatingSystems.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.operatingSystems.html">operatingSystems</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, dartId)</a></code></p>
-<p class="firstline">Gets one operating system by DART ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of operating systems.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, dartId)</code>
-  <pre>Gets one operating system by DART ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartId: string, Operating system DART ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about an operating system that can be targeted by ads.
-    "mobile": True or False, # Whether this operating system is for mobile.
-    "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-    "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-    "name": "A String", # Name of this operating system.
-    "desktop": True or False, # Whether this operating system is for desktop.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of operating systems.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Operating System List Response
-    "kind": "dfareporting#operatingSystemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemsListResponse".
-    "operatingSystems": [ # Operating system collection.
-      { # Contains information about an operating system that can be targeted by ads.
-        "mobile": True or False, # Whether this operating system is for mobile.
-        "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-        "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-        "name": "A String", # Name of this operating system.
-        "desktop": True or False, # Whether this operating system is for desktop.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.orderDocuments.html b/docs/dyn/dfareporting_v2_5beta1.orderDocuments.html
deleted file mode 100644
index 8765efe..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.orderDocuments.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.orderDocuments.html">orderDocuments</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one order document by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, pageToken=None, sortOrder=None, orderId=None, maxResults=None, siteId=None, approved=None, searchString=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of order documents, possibly filtered. This method supports paging.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one order document by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  id: string, Order document ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DoubleClick Planning order document.
-    "orderId": "A String", # ID of the order from which this order document is created.
-    "approvedByUserProfileIds": [ # IDs of users who have approved this order document.
-      "A String",
-    ],
-    "kind": "dfareporting#orderDocument", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocument".
-    "subaccountId": "A String", # Subaccount ID of this order document.
-    "effectiveDate": "A String", # Effective date of this order document.
-    "lastSentTime": "A String", # Timestamp of the last email sent with this order document.
-    "lastSentRecipients": [ # List of email addresses that received the last sent document.
-      "A String",
-    ],
-    "title": "A String", # Title of this order document.
-    "amendedOrderDocumentId": "A String", # The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.
-    "signed": True or False, # Whether this order document has been signed.
-    "createdInfo": { # Modification timestamp. # Information about the creation of this order document.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "advertiserId": "A String", # Advertiser ID of this order document.
-    "projectId": "A String", # Project ID of this order document.
-    "cancelled": True or False, # Whether this order document is cancelled.
-    "type": "A String", # Type of this order document
-    "id": "A String", # ID of this order document.
-    "accountId": "A String", # Account ID of this order document.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, pageToken=None, sortOrder=None, orderId=None, maxResults=None, siteId=None, approved=None, searchString=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of order documents, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  orderId: string, Select only order documents for specified orders. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  siteId: string, Select only order documents that are associated with these sites. (repeated)
-  approved: boolean, Select only order documents that have been approved by at least one user.
-  searchString: string, Allows searching for order documents by name or ID. Wildcards (*) are allowed. For example, "orderdocument*2015" will return order documents with names like "orderdocument June 2015", "orderdocument April 2015", or simply "orderdocument 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "orderdocument" will match order documents with name "my orderdocument", "orderdocument 2015", or simply "orderdocument".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only order documents with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Order document List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#orderDocumentsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocumentsListResponse".
-    "orderDocuments": [ # Order document collection
-      { # Contains properties of a DoubleClick Planning order document.
-        "orderId": "A String", # ID of the order from which this order document is created.
-        "approvedByUserProfileIds": [ # IDs of users who have approved this order document.
-          "A String",
-        ],
-        "kind": "dfareporting#orderDocument", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocument".
-        "subaccountId": "A String", # Subaccount ID of this order document.
-        "effectiveDate": "A String", # Effective date of this order document.
-        "lastSentTime": "A String", # Timestamp of the last email sent with this order document.
-        "lastSentRecipients": [ # List of email addresses that received the last sent document.
-          "A String",
-        ],
-        "title": "A String", # Title of this order document.
-        "amendedOrderDocumentId": "A String", # The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.
-        "signed": True or False, # Whether this order document has been signed.
-        "createdInfo": { # Modification timestamp. # Information about the creation of this order document.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "advertiserId": "A String", # Advertiser ID of this order document.
-        "projectId": "A String", # Project ID of this order document.
-        "cancelled": True or False, # Whether this order document is cancelled.
-        "type": "A String", # Type of this order document
-        "id": "A String", # ID of this order document.
-        "accountId": "A String", # Account ID of this order document.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.orders.html b/docs/dyn/dfareporting_v2_5beta1.orders.html
deleted file mode 100644
index 4009c19..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.orders.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.orders.html">orders</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one order by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None, siteId=None)</a></code></p>
-<p class="firstline">Retrieves a list of orders, possibly filtered. This method supports paging.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one order by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for orders. (required)
-  id: string, Order ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Describes properties of a DoubleClick Planning order.
-    "termsAndConditions": "A String", # Terms and conditions of this order.
-    "kind": "dfareporting#order", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#order".
-    "sellerOrganizationName": "A String", # Name of the seller organization.
-    "subaccountId": "A String", # Subaccount ID of this order.
-    "name": "A String", # Name of this order.
-    "buyerInvoiceId": "A String", # Buyer invoice ID associated with this order.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this order.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "notes": "A String", # Notes of this order.
-    "contacts": [ # Contacts for this order.
-      { # Contact of an order.
-        "signatureUserProfileId": "A String", # ID of the user profile containing the signature that will be embedded into order documents.
-        "contactTitle": "A String", # Title of this contact.
-        "contactInfo": "A String", # Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.
-        "contactName": "A String", # Name of this contact.
-        "contactType": "A String", # Type of this contact.
-      },
-    ],
-    "buyerOrganizationName": "A String", # Name of the buyer organization.
-    "comments": "A String", # Comments in this order.
-    "advertiserId": "A String", # Advertiser ID of this order.
-    "approverUserProfileIds": [ # IDs for users that have to approve documents created for this order.
-      "A String",
-    ],
-    "siteId": [ # Site IDs this order is associated with.
-      "A String",
-    ],
-    "sellerOrderId": "A String", # Seller order ID associated with this order.
-    "projectId": "A String", # Project ID of this order.
-    "siteNames": [ # Free-form site names this order is associated with.
-      "A String",
-    ],
-    "planningTermId": "A String", # ID of the terms and conditions template used in this order.
-    "id": "A String", # ID of this order. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this order.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None, siteId=None)</code>
-  <pre>Retrieves a list of orders, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for orders. (required)
-  searchString: string, Allows searching for orders by name or ID. Wildcards (*) are allowed. For example, "order*2015" will return orders with names like "order June 2015", "order April 2015", or simply "order 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "order" will match orders with name "my order", "order 2015", or simply "order".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only orders with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  siteId: string, Select only orders that are associated with these site IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Order List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#ordersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ordersListResponse".
-    "orders": [ # Order collection.
-      { # Describes properties of a DoubleClick Planning order.
-        "termsAndConditions": "A String", # Terms and conditions of this order.
-        "kind": "dfareporting#order", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#order".
-        "sellerOrganizationName": "A String", # Name of the seller organization.
-        "subaccountId": "A String", # Subaccount ID of this order.
-        "name": "A String", # Name of this order.
-        "buyerInvoiceId": "A String", # Buyer invoice ID associated with this order.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this order.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "notes": "A String", # Notes of this order.
-        "contacts": [ # Contacts for this order.
-          { # Contact of an order.
-            "signatureUserProfileId": "A String", # ID of the user profile containing the signature that will be embedded into order documents.
-            "contactTitle": "A String", # Title of this contact.
-            "contactInfo": "A String", # Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.
-            "contactName": "A String", # Name of this contact.
-            "contactType": "A String", # Type of this contact.
-          },
-        ],
-        "buyerOrganizationName": "A String", # Name of the buyer organization.
-        "comments": "A String", # Comments in this order.
-        "advertiserId": "A String", # Advertiser ID of this order.
-        "approverUserProfileIds": [ # IDs for users that have to approve documents created for this order.
-          "A String",
-        ],
-        "siteId": [ # Site IDs this order is associated with.
-          "A String",
-        ],
-        "sellerOrderId": "A String", # Seller order ID associated with this order.
-        "projectId": "A String", # Project ID of this order.
-        "siteNames": [ # Free-form site names this order is associated with.
-          "A String",
-        ],
-        "planningTermId": "A String", # ID of the terms and conditions template used in this order.
-        "id": "A String", # ID of this order. This is a read-only, auto-generated field.
-        "accountId": "A String", # Account ID of this order.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.placementGroups.html b/docs/dyn/dfareporting_v2_5beta1.placementGroups.html
deleted file mode 100644
index e0ffaa7..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.placementGroups.html
+++ /dev/null
@@ -1,977 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.placementGroups.html">placementGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, searchString=None, minEndDate=None, directorySiteIds=None, ids=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of placement groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, searchString=None, minEndDate=None, directorySiteIds=None, ids=None, sortField=None)</code>
-  <pre>Retrieves a list of placement groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  siteIds: string, Select only placement groups that are associated with these sites. (repeated)
-  placementGroupType: string, Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.
-    Allowed values
-      PLACEMENT_PACKAGE - 
-      PLACEMENT_ROADBLOCK - 
-  pricingTypes: string, Select only placement groups with these pricing types. (repeated)
-    Allowed values
-      PRICING_TYPE_CPA - 
-      PRICING_TYPE_CPC - 
-      PRICING_TYPE_CPM - 
-      PRICING_TYPE_CPM_ACTIVEVIEW - 
-      PRICING_TYPE_FLAT_RATE_CLICKS - 
-      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
-  campaignIds: string, Select only placement groups that belong to these campaigns. (repeated)
-  advertiserIds: string, Select only placement groups that belong to these advertisers. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as "yyyy-MM-dd".
-  placementStrategyIds: string, Select only placement groups that are associated with these placement strategies. (repeated)
-  contentCategoryIds: string, Select only placement groups that are associated with these content categories. (repeated)
-  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
-  maxResults: integer, Maximum number of results to return.
-  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as "yyyy-MM-dd".
-  searchString: string, Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placement groups with names like "placement group June 2015", "placement group May 2015", or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementgroup" will match placement groups with name "my placementgroup", "placementgroup 2015", or simply "placementgroup".
-  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as "yyyy-MM-dd".
-  directorySiteIds: string, Select only placement groups that are associated with these directory sites. (repeated)
-  ids: string, Select only placement groups with these IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # Placement Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroupsListResponse".
-    "placementGroups": [ # Placement group collection.
-      { # Contains properties of a package or roadblock.
-          "comment": "A String", # Comments for this placement group.
-          "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-          "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-          "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-          "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-          "archived": True or False, # Whether this placement group is archived.
-          "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-            "A String",
-          ],
-          "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-          "externalId": "A String", # External ID for this placement.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-          "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-          "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-            "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-            "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-            "capCostOption": "A String", # Placement cap cost option.
-            "pricingPeriods": [ # Pricing periods for this placement.
-              { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-                "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-                "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-                "pricingComment": "A String", # Comments for this pricing period.
-              },
-            ],
-            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-          },
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a package or roadblock.
-    "comment": "A String", # Comments for this placement group.
-    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-    "archived": True or False, # Whether this placement group is archived.
-    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-      "A String",
-    ],
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a package or roadblock.
-      "comment": "A String", # Comments for this placement group.
-      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
-      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
-      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
-      "archived": True or False, # Whether this placement group is archived.
-      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
-        "A String",
-      ],
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
-      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
-      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.placementStrategies.html b/docs/dyn/dfareporting_v2_5beta1.placementStrategies.html
deleted file mode 100644
index 7f0a008..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.placementStrategies.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.placementStrategies.html">placementStrategies</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing placement strategy.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement strategy by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement strategy.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of placement strategies, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement strategy. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement strategy.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement strategy by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of placement strategies, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "placementstrategy*2015" will return objects with names like "placementstrategy June 2015", "placementstrategy April 2015", or simply "placementstrategy 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementstrategy" will match objects with name "my placementstrategy", "placementstrategy 2015", or simply "placementstrategy".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only placement strategies with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Placement Strategy List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementStrategiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategiesListResponse".
-    "placementStrategies": [ # Placement strategy collection.
-      { # Contains properties of a placement strategy.
-          "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-          "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-          "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement strategy. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.placements.html b/docs/dyn/dfareporting_v2_5beta1.placements.html
deleted file mode 100644
index 9ee0273..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.placements.html
+++ /dev/null
@@ -1,1360 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.placements.html">placements</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</a></code></p>
-<p class="firstline">Generates tags for a placement.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, advertiserIds=None, sizeIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, compatibilities=None, searchString=None, minEndDate=None, directorySiteIds=None, sortField=None, ids=None, groupIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of placements, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</code>
-  <pre>Generates tags for a placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Generate placements belonging to this campaign. This is a required field.
-  tagFormats: string, Tag formats to generate for these placements. (repeated)
-    Allowed values
-      PLACEMENT_TAG_CLICK_COMMANDS - 
-      PLACEMENT_TAG_IFRAME_ILAYER - 
-      PLACEMENT_TAG_IFRAME_JAVASCRIPT - 
-      PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
-      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3 - 
-      PLACEMENT_TAG_INTERNAL_REDIRECT - 
-      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
-      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT - 
-      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT - 
-      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_JAVASCRIPT - 
-      PLACEMENT_TAG_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_STANDARD - 
-      PLACEMENT_TAG_TRACKING - 
-      PLACEMENT_TAG_TRACKING_IFRAME - 
-      PLACEMENT_TAG_TRACKING_JAVASCRIPT - 
-  placementIds: string, Generate tags for these placements. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Placement GenerateTags Response
-    "kind": "dfareporting#placementsGenerateTagsResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsGenerateTagsResponse".
-    "placementTags": [ # Set of generated tags for the specified placements.
-      { # Placement Tag
-        "tagDatas": [ # Tags generated for this placement.
-          { # Placement Tag Data
-            "clickTag": "A String", # Tag string to record a click.
-            "impressionTag": "A String", # Tag string for serving an ad.
-            "creativeId": "A String", # Creative associated with this placement tag.
-            "adId": "A String", # Ad associated with this placement tag.
-            "format": "A String", # TagData tag format of this tag.
-          },
-        ],
-        "placementId": "A String", # Placement ID
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, advertiserIds=None, sizeIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, compatibilities=None, searchString=None, minEndDate=None, directorySiteIds=None, sortField=None, ids=None, groupIds=None)</code>
-  <pre>Retrieves a list of placements, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  siteIds: string, Select only placements that are associated with these sites. (repeated)
-  paymentSource: string, Select only placements with this payment source.
-    Allowed values
-      PLACEMENT_AGENCY_PAID - 
-      PLACEMENT_PUBLISHER_PAID - 
-  pricingTypes: string, Select only placements with these pricing types. (repeated)
-    Allowed values
-      PRICING_TYPE_CPA - 
-      PRICING_TYPE_CPC - 
-      PRICING_TYPE_CPM - 
-      PRICING_TYPE_CPM_ACTIVEVIEW - 
-      PRICING_TYPE_FLAT_RATE_CLICKS - 
-      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
-  campaignIds: string, Select only placements that belong to these campaigns. (repeated)
-  advertiserIds: string, Select only placements that belong to these advertisers. (repeated)
-  sizeIds: string, Select only placements that are associated with these sizes. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as "yyyy-MM-dd".
-  placementStrategyIds: string, Select only placements that are associated with these placement strategies. (repeated)
-  contentCategoryIds: string, Select only placements that are associated with these content categories. (repeated)
-  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
-  maxResults: integer, Maximum number of results to return.
-  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as "yyyy-MM-dd".
-  compatibilities: string, Select only placements that are associated with these compatibilities. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. (repeated)
-    Allowed values
-      APP - 
-      APP_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_INTERSTITIAL - 
-      IN_STREAM_VIDEO - 
-  searchString: string, Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placements with names like "placement June 2015", "placement May 2015", or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placement" will match placements with name "my placement", "placement 2015", or simply "placement".
-  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as "yyyy-MM-dd".
-  directorySiteIds: string, Select only placements that are associated with these directory sites. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only placements with these IDs. (repeated)
-  groupIds: string, Select only placements that belong to these placement groups. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Placement List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsListResponse".
-    "placements": [ # Placement collection.
-      { # Contains properties of a placement.
-          "comment": "A String", # Comments for this placement.
-          "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-          "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-          "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-          "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this placement. This field can be left blank.
-          "archived": True or False, # Whether this placement is archived.
-          "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-              # Acceptable values are:
-              # - "PLACEMENT_TAG_STANDARD"
-              # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-              # - "PLACEMENT_TAG_IFRAME_ILAYER"
-              # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-              # - "PLACEMENT_TAG_JAVASCRIPT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-              # - "PLACEMENT_TAG_CLICK_COMMANDS"
-              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-              # - "PLACEMENT_TAG_TRACKING"
-              # - "PLACEMENT_TAG_TRACKING_IFRAME"
-              # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-            "A String",
-          ],
-          "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-          "tagSetting": { # Tag Settings # Tag settings for this placement.
-            "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-            "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-            "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-            "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-          },
-          "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-          "externalId": "A String", # External ID for this placement.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-          "status": "A String", # Third-party placement status.
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-          "placementGroupId": "A String", # ID of this placement's group, if applicable.
-          "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-          "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-          "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-          "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-            "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-            "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-            "capCostOption": "A String", # Placement cap cost option.
-            "pricingPeriods": [ # Pricing periods for this placement.
-              { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-                "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-                "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-                "pricingComment": "A String", # Comments for this pricing period.
-              },
-            ],
-            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-          },
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.platformTypes.html b/docs/dyn/dfareporting_v2_5beta1.platformTypes.html
deleted file mode 100644
index 48b5790..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.platformTypes.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.platformTypes.html">platformTypes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one platform type by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of platform types.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one platform type by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Platform type ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a platform type that can be targeted by ads.
-    "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-    "id": "A String", # ID of this platform type.
-    "name": "A String", # Name of this platform type.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of platform types.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Platform Type List Response
-    "kind": "dfareporting#platformTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformTypesListResponse".
-    "platformTypes": [ # Platform type collection.
-      { # Contains information about a platform type that can be targeted by ads.
-        "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-        "id": "A String", # ID of this platform type.
-        "name": "A String", # Name of this platform type.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.postalCodes.html b/docs/dyn/dfareporting_v2_5beta1.postalCodes.html
deleted file mode 100644
index 175530d..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.postalCodes.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.postalCodes.html">postalCodes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, code)</a></code></p>
-<p class="firstline">Gets one postal code by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of postal codes.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, code)</code>
-  <pre>Gets one postal code by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  code: string, Postal code ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a postal code that can be targeted by ads.
-    "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-    "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-    "code": "A String", # Postal code. This is equivalent to the id field.
-    "id": "A String", # ID of this postal code.
-    "countryCode": "A String", # Country code of the country to which this postal code belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of postal codes.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Postal Code List Response
-    "kind": "dfareporting#postalCodesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCodesListResponse".
-    "postalCodes": [ # Postal code collection.
-      { # Contains information about a postal code that can be targeted by ads.
-        "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-        "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-        "code": "A String", # Postal code. This is equivalent to the id field.
-        "id": "A String", # ID of this postal code.
-        "countryCode": "A String", # Country code of the country to which this postal code belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.projects.html b/docs/dyn/dfareporting_v2_5beta1.projects.html
deleted file mode 100644
index c3ae016..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.projects.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.projects.html">projects</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one project by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of projects, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one project by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Project ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DoubleClick Planning project.
-    "startDate": "A String", # Start date of the project.
-    "kind": "dfareporting#project", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#project".
-    "targetConversions": "A String", # Number of conversions that the advertiser is targeting.
-    "endDate": "A String", # End date of the project.
-    "name": "A String", # Name of this project.
-    "targetCpmNanos": "A String", # CPM that the advertiser is targeting.
-    "targetCpcNanos": "A String", # CPC that the advertiser is targeting.
-    "clientBillingCode": "A String", # Client billing code of this project.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this project.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "targetClicks": "A String", # Number of clicks that the advertiser is targeting.
-    "budget": "A String", # Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.
-    "targetCpaNanos": "A String", # CPA that the advertiser is targeting.
-    "advertiserId": "A String", # Advertiser ID of this project.
-    "targetImpressions": "A String", # Number of impressions that the advertiser is targeting.
-    "overview": "A String", # Overview of this project.
-    "audienceAgeGroup": "A String", # Audience age group of this project.
-    "subaccountId": "A String", # Subaccount ID of this project.
-    "audienceGender": "A String", # Audience gender of this project.
-    "id": "A String", # ID of this project. This is a read-only, auto-generated field.
-    "clientName": "A String", # Name of the project client.
-    "accountId": "A String", # Account ID of this project.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of projects, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for projects by name or ID. Wildcards (*) are allowed. For example, "project*2015" will return projects with names like "project June 2015", "project April 2015", or simply "project 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "project" will match projects with name "my project", "project 2015", or simply "project".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only projects with these advertiser IDs. (repeated)
-  ids: string, Select only projects with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Project List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#projectsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#projectsListResponse".
-    "projects": [ # Project collection.
-      { # Contains properties of a DoubleClick Planning project.
-        "startDate": "A String", # Start date of the project.
-        "kind": "dfareporting#project", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#project".
-        "targetConversions": "A String", # Number of conversions that the advertiser is targeting.
-        "endDate": "A String", # End date of the project.
-        "name": "A String", # Name of this project.
-        "targetCpmNanos": "A String", # CPM that the advertiser is targeting.
-        "targetCpcNanos": "A String", # CPC that the advertiser is targeting.
-        "clientBillingCode": "A String", # Client billing code of this project.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this project.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "targetClicks": "A String", # Number of clicks that the advertiser is targeting.
-        "budget": "A String", # Budget of this project in the currency specified by the current account. The value stored in this field represents only the non-fractional amount. For example, for USD, the smallest value that can be represented by this field is 1 US dollar.
-        "targetCpaNanos": "A String", # CPA that the advertiser is targeting.
-        "advertiserId": "A String", # Advertiser ID of this project.
-        "targetImpressions": "A String", # Number of impressions that the advertiser is targeting.
-        "overview": "A String", # Overview of this project.
-        "audienceAgeGroup": "A String", # Audience age group of this project.
-        "subaccountId": "A String", # Subaccount ID of this project.
-        "audienceGender": "A String", # Audience gender of this project.
-        "id": "A String", # ID of this project. This is a read-only, auto-generated field.
-        "clientName": "A String", # Name of the project client.
-        "accountId": "A String", # Account ID of this project.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.regions.html b/docs/dyn/dfareporting_v2_5beta1.regions.html
deleted file mode 100644
index 134ea4b..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.regions.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.regions.html">regions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of regions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of regions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Region List Response
-    "regions": [ # Region collection.
-      { # Contains information about a region that can be targeted by ads.
-        "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-        "countryDartId": "A String", # DART ID of the country to which this region belongs.
-        "name": "A String", # Name of this region.
-        "countryCode": "A String", # Country code of the country to which this region belongs.
-        "regionCode": "A String", # Region code.
-        "dartId": "A String", # DART ID of this region.
-      },
-    ],
-    "kind": "dfareporting#regionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#regionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.remarketingListShares.html b/docs/dyn/dfareporting_v2_5beta1.remarketingListShares.html
deleted file mode 100644
index ca59463..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.remarketingListShares.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.remarketingListShares.html">remarketingListShares</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, remarketingListId)</a></code></p>
-<p class="firstline">Gets one remarketing list share by remarketing list ID.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, remarketingListId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list share. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list share.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, remarketingListId)</code>
-  <pre>Gets one remarketing list share by remarketing list ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  remarketingListId: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, remarketingListId, body)</code>
-  <pre>Updates an existing remarketing list share. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  remarketingListId: string, Remarketing list ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-    "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-      "A String",
-    ],
-    "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-    "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing remarketing list share.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-    "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-      "A String",
-    ],
-    "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-    "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.remarketingLists.html b/docs/dyn/dfareporting_v2_5beta1.remarketingLists.html
deleted file mode 100644
index 842361b..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.remarketingLists.html
+++ /dev/null
@@ -1,532 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.remarketingLists.html">remarketingLists</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one remarketing list by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new remarketing list.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of remarketing lists, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one remarketing list by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new remarketing list.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of remarketing lists, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only remarketing lists owned by this advertiser. (required)
-  name: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "remarketing list*2015" will return objects with names like "remarketing list June 2015", "remarketing list April 2015", or simply "remarketing list 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "remarketing list" will match objects with name "my remarketing list", "remarketing list 2015", or simply "remarketing list".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightActivityId: string, Select only remarketing lists that have this floodlight activity ID.
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active or only inactive remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Remarketing list response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "remarketingLists": [ # Remarketing list collection.
-      { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-          "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-            "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-            "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-              { # A group clause made up of list population terms representing constraints joined by ORs.
-                "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-                  { # Remarketing List Population Rule Term.
-                    "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                    "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                    "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                    "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                    "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                  },
-                ],
-              },
-            ],
-          },
-          "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-          "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-          "description": "A String", # Remarketing list description.
-          "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-          "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-          "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-          "listSource": "A String", # Product from which this remarketing list was originated.
-          "active": True or False, # Whether this remarketing list is active.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-        },
-    ],
-    "kind": "dfareporting#remarketingListsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing remarketing list. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing remarketing list.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.reports.files.html b/docs/dyn/dfareporting_v2_5beta1.reports.files.html
deleted file mode 100644
index 8767784..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.reports.files.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.reports.html">reports</a> . <a href="dfareporting_v2_5beta1.reports.files.html">files</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
-<p class="toc_element">
-  <code><a href="#get_media">get_media(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Lists files for a report.</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="get">get(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get_media">get_media(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  fileId: string, The ID of the report file. (required)
-
-Returns:
-  The media object as a string.
-
-    </pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</code>
-  <pre>Lists files for a report.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the parent report. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by file ID.
-      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of File resources.
-    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The files returned in this response.
-      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-        "status": "A String", # The status of the report file.
-        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-        "format": "A String", # The output format of the report. Only available once the file is available.
-        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "fileName": "A String", # The filename of the file.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "reportId": "A String", # The ID of the report this file was generated from.
-        "urls": { # The URLs where the completed report file can be downloaded.
-          "browserUrl": "A String", # The URL for downloading the report data through a browser.
-          "apiUrl": "A String", # The URL for downloading the report data through the API.
-        },
-        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-        "id": "A String", # The unique ID of this report file.
-      },
-    ],
-    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.sizes.html b/docs/dyn/dfareporting_v2_5beta1.sizes.html
deleted file mode 100644
index d970e47..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.sizes.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.sizes.html">sizes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one size by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new size.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</a></code></p>
-<p class="firstline">Retrieves a list of sizes, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one size by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Size ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
-    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new size.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents the dimensions of ads, placements, creatives, or creative assets.
-  "width": 42, # Width of this size.
-  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-  "height": 42, # Height of this size.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
-    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</code>
-  <pre>Retrieves a list of sizes, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  iabStandard: boolean, Select only IAB standard sizes.
-  width: integer, Select only sizes with this width.
-  ids: string, Select only sizes with these IDs. (repeated)
-  height: integer, Select only sizes with this height.
-
-Returns:
-  An object of the form:
-
-    { # Size List Response
-    "kind": "dfareporting#sizesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sizesListResponse".
-    "sizes": [ # Size collection.
-      { # Represents the dimensions of ads, placements, creatives, or creative assets.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.subaccounts.html b/docs/dyn/dfareporting_v2_5beta1.subaccounts.html
deleted file mode 100644
index e142052..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.subaccounts.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.subaccounts.html">subaccounts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one subaccount by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new subaccount.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Gets a list of subaccounts, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing subaccount. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing subaccount.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one subaccount by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Subaccount ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new subaccount.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Gets a list of subaccounts, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "subaccount*2015" will return objects with names like "subaccount June 2015", "subaccount April 2015", or simply "subaccount 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "subaccount" will match objects with name "my subaccount", "subaccount 2015", or simply "subaccount".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only subaccounts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Subaccount List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#subaccountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccountsListResponse".
-    "subaccounts": [ # Subaccount collection.
-      { # Contains properties of a DCM subaccount.
-          "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-          "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-            "A String",
-          ],
-          "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-          "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing subaccount. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Subaccount ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing subaccount.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.targetableRemarketingLists.html b/docs/dyn/dfareporting_v2_5beta1.targetableRemarketingLists.html
deleted file mode 100644
index 5112c7f..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.targetableRemarketingLists.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.targetableRemarketingLists.html">targetableRemarketingLists</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one remarketing list by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one remarketing list by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.
-    "kind": "dfareporting#targetableRemarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Targetable remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the targetable remarketing list without an impression.
-    "name": "A String", # Name of the targetable remarketing list. Is no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this targetable remarketing list.
-    "listSource": "A String", # Product from which this targetable remarketing list was originated.
-    "active": True or False, # Whether this targetable remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Targetable remarketing list ID.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only targetable remarketing lists targetable by these advertisers. (required)
-  name: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "remarketing list*2015" will return objects with names like "remarketing list June 2015", "remarketing list April 2015", or simply "remarketing list 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "remarketing list" will match objects with name "my remarketing list", "remarketing list 2015", or simply "remarketing list".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active or only inactive targetable remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Targetable remarketing list response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#targetableRemarketingListsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingListsListResponse".
-    "targetableRemarketingLists": [ # Targetable remarketing list collection.
-      { # Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.
-        "kind": "dfareporting#targetableRemarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingList".
-        "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-        "description": "A String", # Targetable remarketing list description.
-        "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-        "lifeSpan": "A String", # Number of days that a user should remain in the targetable remarketing list without an impression.
-        "name": "A String", # Name of the targetable remarketing list. Is no greater than 128 characters long.
-        "advertiserId": "A String", # Dimension value for the advertiser ID that owns this targetable remarketing list.
-        "listSource": "A String", # Product from which this targetable remarketing list was originated.
-        "active": True or False, # Whether this targetable remarketing list is active.
-        "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "id": "A String", # Targetable remarketing list ID.
-        "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_5beta1.userProfiles.html b/docs/dyn/dfareporting_v2_5beta1.userProfiles.html
deleted file mode 100644
index 18de5af..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.userProfiles.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.userProfiles.html">userProfiles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId)</a></code></p>
-<p class="firstline">Gets one user profile by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list()</a></code></p>
-<p class="firstline">Retrieves list of user profiles for a user.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId)</code>
-  <pre>Gets one user profile by ID.
-
-Args:
-  profileId: string, The user profile ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a UserProfile resource.
-    "userName": "A String", # The user name.
-    "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
-    "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
-    "accountName": "A String", # The account name this profile belongs to.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
-    "profileId": "A String", # The unique ID of the user profile.
-    "accountId": "A String", # The account ID to which this profile belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list()</code>
-  <pre>Retrieves list of user profiles for a user.
-
-Args:
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of user profiles.
-    "items": [ # The user profiles returned in this response.
-      { # Represents a UserProfile resource.
-        "userName": "A String", # The user name.
-        "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
-        "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
-        "accountName": "A String", # The account name this profile belongs to.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
-        "profileId": "A String", # The unique ID of the user profile.
-        "accountId": "A String", # The account ID to which this profile belongs.
-      },
-    ],
-    "kind": "dfareporting#userProfileList", # The kind of list this is, in this case dfareporting#userProfileList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.userRolePermissionGroups.html b/docs/dyn/dfareporting_v2_5beta1.userRolePermissionGroups.html
deleted file mode 100644
index 4fac1a1..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.userRolePermissionGroups.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.userRolePermissionGroups.html">userRolePermissionGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role permission group by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Gets a list of all supported user role permission groups.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role permission group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role permission group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a grouping of related user role permissions.
-    "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
-    "id": "A String", # ID of this user role permission.
-    "name": "A String", # Name of this user role permission group.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Gets a list of all supported user role permission groups.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # User Role Permission Group List Response
-    "userRolePermissionGroups": [ # User role permission group collection.
-      { # Represents a grouping of related user role permissions.
-        "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
-        "id": "A String", # ID of this user role permission.
-        "name": "A String", # Name of this user role permission group.
-      },
-    ],
-    "kind": "dfareporting#userRolePermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroupsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.userRolePermissions.html b/docs/dyn/dfareporting_v2_5beta1.userRolePermissions.html
deleted file mode 100644
index d60aa63..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.userRolePermissions.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.userRolePermissions.html">userRolePermissions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role permission by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, ids=None)</a></code></p>
-<p class="firstline">Gets a list of user role permissions, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role permission by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role permission ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a user role permission.
-    "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-    "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-    "availability": "A String", # Levels of availability for a user role permission.
-    "name": "A String", # Name of this user role permission.
-    "id": "A String", # ID of this user role permission.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, ids=None)</code>
-  <pre>Gets a list of user role permissions, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  ids: string, Select only user role permissions with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # User Role Permission List Response
-    "userRolePermissions": [ # User role permission collection.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "kind": "dfareporting#userRolePermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_5beta1.userRoles.html b/docs/dyn/dfareporting_v2_5beta1.userRoles.html
deleted file mode 100644
index 74c9111..0000000
--- a/docs/dyn/dfareporting_v2_5beta1.userRoles.html
+++ /dev/null
@@ -1,361 +0,0 @@
-<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="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.userRoles.html">userRoles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing user role.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new user role.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of user roles, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing user role. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing user role.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</code>
-  <pre>Retrieves a list of user roles, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "userrole*2015" will return objects with names like "userrole June 2015", "userrole April 2015", or simply "userrole 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "userrole" will match objects with name "my userrole", "userrole 2015", or simply "userrole".
-  subaccountId: string, Select only user roles that belong to this subaccount.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  ids: string, Select only user roles with the specified IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  accountUserRoleOnly: boolean, Select only account level user roles not associated with any specific subaccount.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # User Role List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#userRolesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolesListResponse".
-    "userRoles": [ # User role collection.
-      { # Contains properties of auser role, which is used to manage user access.
-          "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-          "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-          "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-          "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-          "permissions": [ # List of permissions associated with this user role.
-            { # Contains properties of a user role permission.
-              "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-              "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-              "availability": "A String", # Levels of availability for a user role permission.
-              "name": "A String", # Name of this user role permission.
-              "id": "A String", # ID of this user role permission.
-            },
-          ],
-          "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing user role. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.accountPermissions.html b/docs/dyn/dfareporting_v2_6.accountPermissions.html
deleted file mode 100644
index 9ab8bd1..0000000
--- a/docs/dyn/dfareporting_v2_6.accountPermissions.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.accountPermissions.html">accountPermissions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account permission by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves the list of account permissions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account permission by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Account permission ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
-    "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
-    "name": "A String", # Name of this account permission.
-    "level": "A String", # Administrative level required to enable this account permission.
-    "permissionGroupId": "A String", # Permission group of this account permission.
-    "accountProfiles": [ # Account profiles associated with this account permission.
-        #
-        # Possible values are:
-        # - "ACCOUNT_PROFILE_BASIC"
-        # - "ACCOUNT_PROFILE_STANDARD"
-      "A String",
-    ],
-    "id": "A String", # ID of this account permission.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves the list of account permissions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Account Permission List Response
-    "accountPermissions": [ # Account permission collection.
-      { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
-        "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
-        "name": "A String", # Name of this account permission.
-        "level": "A String", # Administrative level required to enable this account permission.
-        "permissionGroupId": "A String", # Permission group of this account permission.
-        "accountProfiles": [ # Account profiles associated with this account permission.
-            #
-            # Possible values are:
-            # - "ACCOUNT_PROFILE_BASIC"
-            # - "ACCOUNT_PROFILE_STANDARD"
-          "A String",
-        ],
-        "id": "A String", # ID of this account permission.
-      },
-    ],
-    "kind": "dfareporting#accountPermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.accountUserProfiles.html b/docs/dyn/dfareporting_v2_6.accountUserProfiles.html
deleted file mode 100644
index 258ebf1..0000000
--- a/docs/dyn/dfareporting_v2_6.accountUserProfiles.html
+++ /dev/null
@@ -1,677 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.accountUserProfiles.html">accountUserProfiles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one account user profile by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new account user profile.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</a></code></p>
-<p class="firstline">Retrieves a list of account user profiles, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing account user profile. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing account user profile.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one account user profile by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User profile ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new account user profile.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</code>
-  <pre>Retrieves a list of account user profiles, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "user profile*2015" will return objects with names like "user profile June 2015", "user profile April 2015", or simply "user profile 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "user profile" will match objects with name "my user profile", "user profile 2015", or simply "user profile".
-  subaccountId: string, Select only user profiles with the specified subaccount ID.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only user profiles with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  userRoleId: string, Select only user profiles with the specified user role ID.
-  active: boolean, Select only active user profiles.
-
-Returns:
-  An object of the form:
-
-    { # Account User Profile List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "accountUserProfiles": [ # Account user profile collection.
-      { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-          "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-          "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-          "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-          "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "locale": "A String", # Locale of the user profile. This is a required field.
-              # Acceptable values are:
-              # - "cs" (Czech)
-              # - "de" (German)
-              # - "en" (English)
-              # - "en-GB" (English United Kingdom)
-              # - "es" (Spanish)
-              # - "fr" (French)
-              # - "it" (Italian)
-              # - "ja" (Japanese)
-              # - "ko" (Korean)
-              # - "pl" (Polish)
-              # - "pt-BR" (Portuguese Brazil)
-              # - "ru" (Russian)
-              # - "sv" (Swedish)
-              # - "tr" (Turkish)
-              # - "zh-CN" (Chinese Simplified)
-              # - "zh-TW" (Chinese Traditional)
-          "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "comments": "A String", # Comments for this user profile.
-          "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-          "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-              "A String",
-            ],
-            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-          },
-          "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-          "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-          "traffickerType": "A String", # Trafficker type of this user profile.
-          "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-          "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-          "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#accountUserProfilesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfilesListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing account user profile. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing account user profile.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "locale": "A String", # Locale of the user profile. This is a required field.
-        # Acceptable values are:
-        # - "cs" (Czech)
-        # - "de" (German)
-        # - "en" (English)
-        # - "en-GB" (English United Kingdom)
-        # - "es" (Spanish)
-        # - "fr" (French)
-        # - "it" (Italian)
-        # - "ja" (Japanese)
-        # - "ko" (Korean)
-        # - "pl" (Polish)
-        # - "pt-BR" (Portuguese Brazil)
-        # - "ru" (Russian)
-        # - "sv" (Swedish)
-        # - "tr" (Turkish)
-        # - "zh-CN" (Chinese Simplified)
-        # - "zh-TW" (Chinese Traditional)
-    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "comments": "A String", # Comments for this user profile.
-    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-        "A String",
-      ],
-      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-    },
-    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-    "traffickerType": "A String", # Trafficker type of this user profile.
-    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
-      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
-      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
-      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
-      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "locale": "A String", # Locale of the user profile. This is a required field.
-          # Acceptable values are:
-          # - "cs" (Czech)
-          # - "de" (German)
-          # - "en" (English)
-          # - "en-GB" (English United Kingdom)
-          # - "es" (Spanish)
-          # - "fr" (French)
-          # - "it" (Italian)
-          # - "ja" (Japanese)
-          # - "ko" (Korean)
-          # - "pl" (Polish)
-          # - "pt-BR" (Portuguese Brazil)
-          # - "ru" (Russian)
-          # - "sv" (Swedish)
-          # - "tr" (Turkish)
-          # - "zh-CN" (Chinese Simplified)
-          # - "zh-TW" (Chinese Traditional)
-      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "comments": "A String", # Comments for this user profile.
-      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
-      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
-        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
-          "A String",
-        ],
-        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
-        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
-      },
-      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
-      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
-      "traffickerType": "A String", # Trafficker type of this user profile.
-      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
-      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
-      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.advertisers.html b/docs/dyn/dfareporting_v2_6.advertisers.html
deleted file mode 100644
index fb0c2f7..0000000
--- a/docs/dyn/dfareporting_v2_6.advertisers.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.advertisers.html">advertisers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one advertiser by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new advertiser.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of advertisers, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing advertiser.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one advertiser by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new advertiser.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</code>
-  <pre>Retrieves a list of advertisers, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  includeAdvertisersWithoutGroupsOnly: boolean, Select only advertisers which do not belong to any advertiser group.
-  onlyParent: boolean, Select only advertisers which use another advertiser's floodlight configuration.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  status: string, Select only advertisers with the specified status.
-    Allowed values
-      APPROVED - 
-      ON_HOLD - 
-  maxResults: integer, Maximum number of results to return.
-  advertiserGroupIds: string, Select only advertisers with these advertiser group IDs. (repeated)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser June 2015", "advertiser April 2015", or simply "advertiser 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertiser" will match objects with name "my advertiser", "advertiser 2015", or simply "advertiser".
-  subaccountId: string, Select only advertisers with these subaccount IDs.
-  ids: string, Select only advertisers with these IDs. (repeated)
-  floodlightConfigurationIds: string, Select only advertisers with these floodlight configuration IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # Advertiser List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "advertisers": [ # Advertiser collection.
-      { # Contains properties of a DCM advertiser.
-          "status": "A String", # Status of this advertiser.
-          "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-          "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-          "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-          "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-          "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-          "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-              # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-              # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-          "suspended": True or False, # Suspension status of this advertiser.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-          "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#advertisersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertisersListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing advertiser. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Advertiser ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing advertiser.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM advertiser.
-    "status": "A String", # Status of this advertiser.
-    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-    "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-    "suspended": True or False, # Suspension status of this advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM advertiser.
-      "status": "A String", # Status of this advertiser.
-      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
-      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
-      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
-      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
-      "originalFloodlightConfigurationId": "A String", # Original floodlight configuration before any sharing occurred. Set the floodlightConfigurationId of this advertiser to originalFloodlightConfigurationId to unshare the advertiser's current floodlight configuration. You cannot unshare an advertiser's floodlight configuration if the shared configuration has activities associated with any campaign or placement.
-      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
-          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
-          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
-      "suspended": True or False, # Suspension status of this advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
-      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.browsers.html b/docs/dyn/dfareporting_v2_6.browsers.html
deleted file mode 100644
index c0f71f2..0000000
--- a/docs/dyn/dfareporting_v2_6.browsers.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.browsers.html">browsers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of browsers.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of browsers.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Browser List Response
-    "kind": "dfareporting#browsersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browsersListResponse".
-    "browsers": [ # Browser collection.
-      { # Contains information about a browser that can be targeted by ads.
-        "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-        "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
-        "name": "A String", # Name of this browser.
-        "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
-        "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
-        "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.campaignCreativeAssociations.html b/docs/dyn/dfareporting_v2_6.campaignCreativeAssociations.html
deleted file mode 100644
index a514d29..0000000
--- a/docs/dyn/dfareporting_v2_6.campaignCreativeAssociations.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.campaignCreativeAssociations.html">campaignCreativeAssociations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.</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="insert">insert(profileId, campaignId, body)</code>
-  <pre>Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Campaign ID in this association. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Identifies a creative which has been associated with a given campaign.
-    "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-    "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Identifies a creative which has been associated with a given campaign.
-      "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-      "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</code>
-  <pre>Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Campaign ID in this association. (required)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Campaign Creative Association List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "campaignCreativeAssociations": [ # Campaign creative association collection
-      { # Identifies a creative which has been associated with a given campaign.
-          "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
-          "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
-        },
-    ],
-    "kind": "dfareporting#campaignCreativeAssociationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociationsListResponse".
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.changeLogs.html b/docs/dyn/dfareporting_v2_6.changeLogs.html
deleted file mode 100644
index 9439c17..0000000
--- a/docs/dyn/dfareporting_v2_6.changeLogs.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.changeLogs.html">changeLogs</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one change log by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of change logs. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one change log by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Change log ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Describes a change that a user has made to a resource.
-    "changeTime": "A String", # Time when the object was modified.
-    "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
-    "subaccountId": "A String", # Subaccount ID of the modified object.
-    "userProfileId": "A String", # ID of the user who modified the object.
-    "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
-    "newValue": "A String", # New value of the object field.
-    "userProfileName": "A String", # User profile name of the user who modified the object.
-    "fieldName": "A String", # Field name of the object which changed.
-    "oldValue": "A String", # Old value of the object field.
-    "action": "A String", # Action which caused the change.
-    "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
-    "objectType": "A String", # Object type of the change log.
-    "id": "A String", # ID of this change log.
-    "accountId": "A String", # Account ID of the modified object.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</code>
-  <pre>Retrieves a list of change logs. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  objectType: string, Select only change logs with the specified object type.
-    Allowed values
-      OBJECT_ACCOUNT - 
-      OBJECT_ACCOUNT_BILLING_FEATURE - 
-      OBJECT_AD - 
-      OBJECT_ADVERTISER - 
-      OBJECT_ADVERTISER_GROUP - 
-      OBJECT_BILLING_ACCOUNT_GROUP - 
-      OBJECT_BILLING_FEATURE - 
-      OBJECT_BILLING_MINIMUM_FEE - 
-      OBJECT_BILLING_PROFILE - 
-      OBJECT_CAMPAIGN - 
-      OBJECT_CONTENT_CATEGORY - 
-      OBJECT_CREATIVE - 
-      OBJECT_CREATIVE_ASSET - 
-      OBJECT_CREATIVE_BUNDLE - 
-      OBJECT_CREATIVE_FIELD - 
-      OBJECT_CREATIVE_GROUP - 
-      OBJECT_DFA_SITE - 
-      OBJECT_EVENT_TAG - 
-      OBJECT_FLOODLIGHT_ACTIVITY_GROUP - 
-      OBJECT_FLOODLIGHT_ACTVITY - 
-      OBJECT_FLOODLIGHT_CONFIGURATION - 
-      OBJECT_INSTREAM_CREATIVE - 
-      OBJECT_LANDING_PAGE - 
-      OBJECT_MEDIA_ORDER - 
-      OBJECT_PLACEMENT - 
-      OBJECT_PLACEMENT_STRATEGY - 
-      OBJECT_PLAYSTORE_LINK - 
-      OBJECT_PROVIDED_LIST_CLIENT - 
-      OBJECT_RATE_CARD - 
-      OBJECT_REMARKETING_LIST - 
-      OBJECT_RICHMEDIA_CREATIVE - 
-      OBJECT_SD_SITE - 
-      OBJECT_SEARCH_LIFT_STUDY - 
-      OBJECT_SIZE - 
-      OBJECT_SUBACCOUNT - 
-      OBJECT_TARGETING_TEMPLATE - 
-      OBJECT_USER_PROFILE - 
-      OBJECT_USER_PROFILE_FILTER - 
-      OBJECT_USER_ROLE - 
-  maxChangeTime: string, Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  action: string, Select only change logs with the specified action.
-    Allowed values
-      ACTION_ADD - 
-      ACTION_ASSIGN - 
-      ACTION_ASSOCIATE - 
-      ACTION_CREATE - 
-      ACTION_DELETE - 
-      ACTION_DISABLE - 
-      ACTION_EMAIL_TAGS - 
-      ACTION_ENABLE - 
-      ACTION_LINK - 
-      ACTION_MARK_AS_DEFAULT - 
-      ACTION_PUSH - 
-      ACTION_REMOVE - 
-      ACTION_SEND - 
-      ACTION_SHARE - 
-      ACTION_UNASSIGN - 
-      ACTION_UNLINK - 
-      ACTION_UPDATE - 
-  minChangeTime: string, Select only change logs whose change time is before the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
-  searchString: string, Select only change logs whose object ID, user name, old or new values match the search string.
-  userProfileIds: string, Select only change logs with these user profile IDs. (repeated)
-  ids: string, Select only change logs with these IDs. (repeated)
-  objectIds: string, Select only change logs with these object IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Change Log List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#changeLogsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLogsListResponse".
-    "changeLogs": [ # Change log collection.
-      { # Describes a change that a user has made to a resource.
-        "changeTime": "A String", # Time when the object was modified.
-        "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
-        "subaccountId": "A String", # Subaccount ID of the modified object.
-        "userProfileId": "A String", # ID of the user who modified the object.
-        "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
-        "newValue": "A String", # New value of the object field.
-        "userProfileName": "A String", # User profile name of the user who modified the object.
-        "fieldName": "A String", # Field name of the object which changed.
-        "oldValue": "A String", # Old value of the object field.
-        "action": "A String", # Action which caused the change.
-        "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
-        "objectType": "A String", # Object type of the change log.
-        "id": "A String", # ID of this change log.
-        "accountId": "A String", # Account ID of the modified object.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.connectionTypes.html b/docs/dyn/dfareporting_v2_6.connectionTypes.html
deleted file mode 100644
index 6618194..0000000
--- a/docs/dyn/dfareporting_v2_6.connectionTypes.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.connectionTypes.html">connectionTypes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one connection type by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of connection types.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one connection type by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Connection type ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-    "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-    "id": "A String", # ID of this connection type.
-    "name": "A String", # Name of this connection type.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of connection types.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Connection Type List Response
-    "kind": "dfareporting#connectionTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionTypesListResponse".
-    "connectionTypes": [ # Collection of connection types such as broadband and mobile.
-      { # Contains information about an internet connection type that can be targeted by ads. Clients can use the connection type to target mobile vs. broadband users.
-        "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
-        "id": "A String", # ID of this connection type.
-        "name": "A String", # Name of this connection type.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.contentCategories.html b/docs/dyn/dfareporting_v2_6.contentCategories.html
deleted file mode 100644
index a91f62f..0000000
--- a/docs/dyn/dfareporting_v2_6.contentCategories.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.contentCategories.html">contentCategories</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing content category.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one content category by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new content category.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of content categories, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing content category. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing content category.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one content category by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of content categories, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "contentcategory*2015" will return objects with names like "contentcategory June 2015", "contentcategory April 2015", or simply "contentcategory 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "contentcategory" will match objects with name "my contentcategory", "contentcategory 2015", or simply "contentcategory".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only content categories with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Content Category List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#contentCategoriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategoriesListResponse".
-    "contentCategories": [ # Content category collection.
-      { # Organizes placements according to the contents of their associated webpages.
-          "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-          "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-          "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing content category. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Content category ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing content category.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Organizes placements according to the contents of their associated webpages.
-    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Organizes placements according to the contents of their associated webpages.
-      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
-      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
-      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.conversions.html b/docs/dyn/dfareporting_v2_6.conversions.html
deleted file mode 100644
index a3a6ac1..0000000
--- a/docs/dyn/dfareporting_v2_6.conversions.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.conversions.html">conversions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#batchinsert">batchinsert(profileId, body)</a></code></p>
-<p class="firstline">Inserts conversions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="batchinsert">batchinsert(profileId, body)</code>
-  <pre>Inserts conversions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Insert Conversions Request.
-    "conversions": [ # The set of conversions to insert.
-      { # A Conversion represents when a user successfully performs a desired action after seeing an ad.
-        "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
-        "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
-        "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
-        "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
-        "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
-        "customVariables": [ # Custom floodlight variables.
-          { # A custom floodlight variable.
-            "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
-            "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
-            "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
-          },
-        ],
-        "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
-        "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
-        "value": 3.14, # The value of the conversion.
-        "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
-        "quantity": "A String", # The quantity of the conversion.
-        "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
-        "encryptedUserIdCandidates": [ # A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with NO_COOKIE_MATCH_FOUND error. When set, encryptionInfo should also be specified. This field should only be used when calling conversions.batchinsert. This field is mutually exclusive with encryptedUserId and mobileDeviceId. This or encryptedUserId or mobileDeviceId is a required field.
-          "A String",
-        ],
-      },
-    ],
-    "kind": "dfareporting#conversionsBatchInsertRequest", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertRequest".
-    "encryptionInfo": { # A description of how user IDs are encrypted. # Describes how encryptedUserId or encryptedUserIdCandidates[] is encrypted. This is a required field if encryptedUserId or encryptedUserIdCandidates[] is used.
-      "kind": "dfareporting#encryptionInfo", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#encryptionInfo".
-      "encryptionEntityId": "A String", # The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.
-      "encryptionSource": "A String", # Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.
-      "encryptionEntityType": "A String", # The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Insert Conversions Response.
-    "status": [ # The status of each conversion's insertion status. The status is returned in the same order that conversions are inserted.
-      { # The original conversion that was inserted or updated and whether there were any errors.
-        "conversion": { # A Conversion represents when a user successfully performs a desired action after seeing an ad. # The original conversion that was inserted or updated.
-          "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
-          "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
-          "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
-          "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
-          "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
-          "customVariables": [ # Custom floodlight variables.
-            { # A custom floodlight variable.
-              "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
-              "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
-              "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
-            },
-          ],
-          "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
-          "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
-          "value": 3.14, # The value of the conversion.
-          "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
-          "quantity": "A String", # The quantity of the conversion.
-          "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
-          "encryptedUserIdCandidates": [ # A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with NO_COOKIE_MATCH_FOUND error. When set, encryptionInfo should also be specified. This field should only be used when calling conversions.batchinsert. This field is mutually exclusive with encryptedUserId and mobileDeviceId. This or encryptedUserId or mobileDeviceId is a required field.
-            "A String",
-          ],
-        },
-        "errors": [ # A list of errors related to this conversion.
-          { # The error code and description for a conversion that failed to insert or update.
-            "kind": "dfareporting#conversionError", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionError".
-            "code": "A String", # The error code.
-            "message": "A String", # A description of the error.
-          },
-        ],
-        "kind": "dfareporting#conversionStatus", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionStatus".
-      },
-    ],
-    "hasFailures": True or False, # Indicates that some or all conversions failed to insert.
-    "kind": "dfareporting#conversionsBatchInsertResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.countries.html b/docs/dyn/dfareporting_v2_6.countries.html
deleted file mode 100644
index 17ee3d5..0000000
--- a/docs/dyn/dfareporting_v2_6.countries.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.countries.html">countries</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, dartId)</a></code></p>
-<p class="firstline">Gets one country by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of countries.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, dartId)</code>
-  <pre>Gets one country by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartId: string, Country DART ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a country that can be targeted by ads.
-    "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-    "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-    "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-    "countryCode": "A String", # Country code.
-    "name": "A String", # Name of this country.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of countries.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Country List Response
-    "kind": "dfareporting#countriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#countriesListResponse".
-    "countries": [ # Country collection.
-      { # Contains information about a country that can be targeted by ads.
-        "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
-        "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
-        "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
-        "countryCode": "A String", # Country code.
-        "name": "A String", # Name of this country.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.creativeFieldValues.html b/docs/dyn/dfareporting_v2_6.creativeFieldValues.html
deleted file mode 100644
index c076e96..0000000
--- a/docs/dyn/dfareporting_v2_6.creativeFieldValues.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.creativeFieldValues.html">creativeFieldValues</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, creativeFieldId, id)</a></code></p>
-<p class="firstline">Deletes an existing creative field value.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, creativeFieldId, id)</a></code></p>
-<p class="firstline">Gets one creative field value by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, creativeFieldId, body)</a></code></p>
-<p class="firstline">Inserts a new creative field value.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative field values, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, creativeFieldId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative field value. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, creativeFieldId, body)</a></code></p>
-<p class="firstline">Updates an existing creative field value.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, creativeFieldId, id)</code>
-  <pre>Deletes an existing creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, creativeFieldId, id)</code>
-  <pre>Gets one creative field value by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, creativeFieldId, body)</code>
-  <pre>Inserts a new creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative field values, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  searchString: string, Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      VALUE - 
-  ids: string, Select only creative field values with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Field Value List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#creativeFieldValuesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValuesListResponse".
-    "creativeFieldValues": [ # Creative field value collection.
-      { # Contains properties of a creative field value.
-          "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-          "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-          "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, creativeFieldId, id, body)</code>
-  <pre>Updates an existing creative field value. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  id: string, Creative Field Value ID (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, creativeFieldId, body)</code>
-  <pre>Updates an existing creative field value.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  creativeFieldId: string, Creative field ID for this creative field value. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field value.
-    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field value.
-      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
-      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
-      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.creativeFields.html b/docs/dyn/dfareporting_v2_6.creativeFields.html
deleted file mode 100644
index b8a3bf8..0000000
--- a/docs/dyn/dfareporting_v2_6.creativeFields.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.creativeFields.html">creativeFields</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing creative field.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative field by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative field.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative fields, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative field. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative field.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative field by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative fields, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, "creativefield*2015" will return creative fields with names like "creativefield June 2015", "creativefield April 2015", or simply "creativefield 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativefield" will match creative fields with the name "my creativefield", "creativefield 2015", or simply "creativefield".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only creative fields that belong to these advertisers. (repeated)
-  ids: string, Select only creative fields with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Field List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "creativeFields": [ # Creative field collection.
-      { # Contains properties of a creative field.
-          "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-          "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-          "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#creativeFieldsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative field. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative Field ID (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative field.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative field.
-    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative field.
-      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
-      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
-      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.creativeGroups.html b/docs/dyn/dfareporting_v2_6.creativeGroups.html
deleted file mode 100644
index 624677c..0000000
--- a/docs/dyn/dfareporting_v2_6.creativeGroups.html
+++ /dev/null
@@ -1,364 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.creativeGroups.html">creativeGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one creative group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new creative group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing creative group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing creative group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one creative group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new creative group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, "creativegroup*2015" will return creative groups with names like "creativegroup June 2015", "creativegroup April 2015", or simply "creativegroup 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativegroup" will match creative groups with the name "my creativegroup", "creativegroup 2015", or simply "creativegroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  advertiserIds: string, Select only creative groups that belong to these advertisers. (repeated)
-  groupNumber: integer, Select only creative groups that belong to this subgroup.
-  maxResults: integer, Maximum number of results to return.
-  ids: string, Select only creative groups with these IDs. (repeated)
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Creative Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "creativeGroups": [ # Creative group collection.
-      { # Contains properties of a creative group.
-          "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-          "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-              # Acceptable values are:
-              # - 1
-              # - 2
-          "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#creativeGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroupsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing creative group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Creative group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing creative group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a creative group.
-    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
-    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a creative group.
-      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
-      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
-      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.dimensionValues.html b/docs/dyn/dfareporting_v2_6.dimensionValues.html
deleted file mode 100644
index 6027ca0..0000000
--- a/docs/dyn/dfareporting_v2_6.dimensionValues.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.dimensionValues.html">dimensionValues</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#query">query(profileId, body, pageToken=None, maxResults=None)</a></code></p>
-<p class="firstline">Retrieves list of report dimension values for a list of filters.</p>
-<p class="toc_element">
-  <code><a href="#query_next">query_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="query">query(profileId, body, pageToken=None, maxResults=None)</code>
-  <pre>Retrieves list of report dimension values for a list of filters.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a DimensionValuesRequest.
-    "dimensionName": "A String", # The name of the dimension for which values should be requested.
-    "startDate": "A String", # The start date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
-    "kind": "dfareporting#dimensionValueRequest", # The kind of request this is, in this case dfareporting#dimensionValueRequest.
-    "endDate": "A String", # The end date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
-    "filters": [ # The list of filters by which to filter values. The filters are ANDed.
-      { # Represents a dimension filter.
-        "dimensionName": "A String", # The name of the dimension to filter.
-        "kind": "dfareporting#dimensionFilter", # The kind of resource this is, in this case dfareporting#dimensionFilter.
-        "value": "A String", # The value of the dimension to filter.
-      },
-    ],
-  }
-
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of DimensionValue resources.
-    "nextPageToken": "A String", # Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The dimension values returned in this response.
-      { # Represents a DimensionValue resource.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-    ],
-    "kind": "dfareporting#dimensionValueList", # The kind of list this is, in this case dfareporting#dimensionValueList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="query_next">query_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
diff --git a/docs/dyn/dfareporting_v2_6.directorySiteContacts.html b/docs/dyn/dfareporting_v2_6.directorySiteContacts.html
deleted file mode 100644
index 1d58870..0000000
--- a/docs/dyn/dfareporting_v2_6.directorySiteContacts.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.directorySiteContacts.html">directorySiteContacts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one directory site contact by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of directory site contacts, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one directory site contact by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Directory site contact ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Site Directory contact.
-    "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
-    "firstName": "A String", # First name of this directory site contact.
-    "title": "A String", # Title or designation of this directory site contact.
-    "lastName": "A String", # Last name of this directory site contact.
-    "email": "A String", # Email address of this directory site contact.
-    "phone": "A String", # Phone number of this directory site contact.
-    "role": "A String", # Directory site contact role.
-    "address": "A String", # Address of this directory site contact.
-    "type": "A String", # Directory site contact type.
-    "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of directory site contacts, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "directory site contact*2015" will return objects with names like "directory site contact June 2015", "directory site contact April 2015", or simply "directory site contact 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site contact" will match objects with name "my directory site contact", "directory site contact 2015", or simply "directory site contact".
-  directorySiteIds: string, Select only directory site contacts with these directory site IDs. This is a required field. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only directory site contacts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Directory Site Contact List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "directorySiteContacts": [ # Directory site contact collection
-      { # Contains properties of a Site Directory contact.
-        "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
-        "firstName": "A String", # First name of this directory site contact.
-        "title": "A String", # Title or designation of this directory site contact.
-        "lastName": "A String", # Last name of this directory site contact.
-        "email": "A String", # Email address of this directory site contact.
-        "phone": "A String", # Phone number of this directory site contact.
-        "role": "A String", # Directory site contact role.
-        "address": "A String", # Address of this directory site contact.
-        "type": "A String", # Directory site contact type.
-        "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "kind": "dfareporting#directorySiteContactsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContactsListResponse".
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.directorySites.html b/docs/dyn/dfareporting_v2_6.directorySites.html
deleted file mode 100644
index bdcf5d4..0000000
--- a/docs/dyn/dfareporting_v2_6.directorySites.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.directorySites.html">directorySites</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one directory site by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new directory site.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</a></code></p>
-<p class="firstline">Retrieves a list of directory sites, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one directory site by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Directory site ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-      "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
-      "settings": { # Directory Site Settings # Directory site settings.
-        "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-        "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
-          "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
-          "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-          "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
-        },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-        "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-        "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-      },
-      "currencyId": "A String", # Currency ID of this directory site.
-          # Possible values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "inpageTagFormats": [ # Tag types for regular placements.
-          #
-          # Acceptable values are:
-          # - "STANDARD"
-          # - "IFRAME_JAVASCRIPT_INPAGE"
-          # - "INTERNAL_REDIRECT_INPAGE"
-          # - "JAVASCRIPT_INPAGE"
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "interstitialTagFormats": [ # Tag types for interstitial placements.
-          #
-          # Acceptable values are:
-          # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-          # - "INTERNAL_REDIRECT_INTERSTITIAL"
-          # - "JAVASCRIPT_INTERSTITIAL"
-        "A String",
-      ],
-      "contactAssignments": [ # Directory site contacts.
-        { # Directory Site Contact Assignment
-          "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-          "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-        },
-      ],
-      "url": "A String", # URL of this directory site.
-      "parentId": "A String", # Parent directory site ID.
-      "active": True or False, # Whether this directory site is active.
-      "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this directory site.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new directory site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-    "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-    "countryId": "A String", # Country ID of this directory site.
-    "description": "A String", # Description of this directory site.
-    "settings": { # Directory Site Settings # Directory site settings.
-      "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-      "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-      "dfp_settings": { # DFP Settings # Directory site DFP settings.
-        "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-        "dfp_network_name": "A String", # DFP network name for this directory site.
-        "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-        "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-        "dfp_network_code": "A String", # DFP network code for this directory site.
-      },
-      "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-      "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-      "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-      "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-    },
-    "currencyId": "A String", # Currency ID of this directory site.
-        # Possible values are:
-        # - "1" for USD
-        # - "2" for GBP
-        # - "3" for ESP
-        # - "4" for SEK
-        # - "5" for CAD
-        # - "6" for JPY
-        # - "7" for DEM
-        # - "8" for AUD
-        # - "9" for FRF
-        # - "10" for ITL
-        # - "11" for DKK
-        # - "12" for NOK
-        # - "13" for FIM
-        # - "14" for ZAR
-        # - "15" for IEP
-        # - "16" for NLG
-        # - "17" for EUR
-        # - "18" for KRW
-        # - "19" for TWD
-        # - "20" for SGD
-        # - "21" for CNY
-        # - "22" for HKD
-        # - "23" for NZD
-        # - "24" for MYR
-        # - "25" for BRL
-        # - "26" for PTE
-        # - "27" for MXP
-        # - "28" for CLP
-        # - "29" for TRY
-        # - "30" for ARS
-        # - "31" for PEN
-        # - "32" for ILS
-        # - "33" for CHF
-        # - "34" for VEF
-        # - "35" for COP
-        # - "36" for GTQ
-        # - "37" for PLN
-        # - "39" for INR
-        # - "40" for THB
-        # - "41" for IDR
-        # - "42" for CZK
-        # - "43" for RON
-        # - "44" for HUF
-        # - "45" for RUB
-        # - "46" for AED
-        # - "47" for BGN
-        # - "48" for HRK
-    "inpageTagFormats": [ # Tag types for regular placements.
-        # 
-        # Acceptable values are:
-        # - "STANDARD"
-        # - "IFRAME_JAVASCRIPT_INPAGE"
-        # - "INTERNAL_REDIRECT_INPAGE"
-        # - "JAVASCRIPT_INPAGE"
-      "A String",
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "interstitialTagFormats": [ # Tag types for interstitial placements.
-        # 
-        # Acceptable values are:
-        # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-        # - "INTERNAL_REDIRECT_INTERSTITIAL"
-        # - "JAVASCRIPT_INTERSTITIAL"
-      "A String",
-    ],
-    "contactAssignments": [ # Directory site contacts.
-      { # Directory Site Contact Assignment
-        "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-        "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-      },
-    ],
-    "url": "A String", # URL of this directory site.
-    "parentId": "A String", # Parent directory site ID.
-    "active": True or False, # Whether this directory site is active.
-    "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this directory site.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-      "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
-      "settings": { # Directory Site Settings # Directory site settings.
-        "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-        "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
-          "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
-          "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-          "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
-        },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-        "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-        "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-      },
-      "currencyId": "A String", # Currency ID of this directory site.
-          # Possible values are:
-          # - "1" for USD
-          # - "2" for GBP
-          # - "3" for ESP
-          # - "4" for SEK
-          # - "5" for CAD
-          # - "6" for JPY
-          # - "7" for DEM
-          # - "8" for AUD
-          # - "9" for FRF
-          # - "10" for ITL
-          # - "11" for DKK
-          # - "12" for NOK
-          # - "13" for FIM
-          # - "14" for ZAR
-          # - "15" for IEP
-          # - "16" for NLG
-          # - "17" for EUR
-          # - "18" for KRW
-          # - "19" for TWD
-          # - "20" for SGD
-          # - "21" for CNY
-          # - "22" for HKD
-          # - "23" for NZD
-          # - "24" for MYR
-          # - "25" for BRL
-          # - "26" for PTE
-          # - "27" for MXP
-          # - "28" for CLP
-          # - "29" for TRY
-          # - "30" for ARS
-          # - "31" for PEN
-          # - "32" for ILS
-          # - "33" for CHF
-          # - "34" for VEF
-          # - "35" for COP
-          # - "36" for GTQ
-          # - "37" for PLN
-          # - "39" for INR
-          # - "40" for THB
-          # - "41" for IDR
-          # - "42" for CZK
-          # - "43" for RON
-          # - "44" for HUF
-          # - "45" for RUB
-          # - "46" for AED
-          # - "47" for BGN
-          # - "48" for HRK
-      "inpageTagFormats": [ # Tag types for regular placements.
-          #
-          # Acceptable values are:
-          # - "STANDARD"
-          # - "IFRAME_JAVASCRIPT_INPAGE"
-          # - "INTERNAL_REDIRECT_INPAGE"
-          # - "JAVASCRIPT_INPAGE"
-        "A String",
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "interstitialTagFormats": [ # Tag types for interstitial placements.
-          #
-          # Acceptable values are:
-          # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-          # - "INTERNAL_REDIRECT_INTERSTITIAL"
-          # - "JAVASCRIPT_INTERSTITIAL"
-        "A String",
-      ],
-      "contactAssignments": [ # Directory site contacts.
-        { # Directory Site Contact Assignment
-          "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-          "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-        },
-      ],
-      "url": "A String", # URL of this directory site.
-      "parentId": "A String", # Parent directory site ID.
-      "active": True or False, # Whether this directory site is active.
-      "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this directory site.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</code>
-  <pre>Retrieves a list of directory sites, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  countryId: string, Select only directory sites with this country ID.
-  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  parentId: string, Select only directory sites with this parent ID.
-  acceptsPublisherPaidPlacements: boolean, Select only directory sites that accept publisher paid placements. This field can be left blank.
-  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.
-  searchString: string, Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, "directory site*2015" will return objects with names like "directory site June 2015", "directory site April 2015", or simply "directory site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site" will match objects with name "my directory site", "directory site 2015" or simply, "directory site".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only directory sites with these IDs. (repeated)
-  dfp_network_code: string, Select only directory sites with this DFP network code.
-
-Returns:
-  An object of the form:
-
-    { # Directory Site List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#directorySitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySitesListResponse".
-    "directorySites": [ # Directory site collection.
-      { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
-          "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-          "countryId": "A String", # Country ID of this directory site.
-          "description": "A String", # Description of this directory site.
-          "settings": { # Directory Site Settings # Directory site settings.
-            "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
-            "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-            "dfp_settings": { # DFP Settings # Directory site DFP settings.
-              "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-              "dfp_network_name": "A String", # DFP network name for this directory site.
-              "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
-              "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-              "dfp_network_code": "A String", # DFP network code for this directory site.
-            },
-            "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-            "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
-            "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
-            "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
-          },
-          "currencyId": "A String", # Currency ID of this directory site.
-              # Possible values are:
-              # - "1" for USD
-              # - "2" for GBP
-              # - "3" for ESP
-              # - "4" for SEK
-              # - "5" for CAD
-              # - "6" for JPY
-              # - "7" for DEM
-              # - "8" for AUD
-              # - "9" for FRF
-              # - "10" for ITL
-              # - "11" for DKK
-              # - "12" for NOK
-              # - "13" for FIM
-              # - "14" for ZAR
-              # - "15" for IEP
-              # - "16" for NLG
-              # - "17" for EUR
-              # - "18" for KRW
-              # - "19" for TWD
-              # - "20" for SGD
-              # - "21" for CNY
-              # - "22" for HKD
-              # - "23" for NZD
-              # - "24" for MYR
-              # - "25" for BRL
-              # - "26" for PTE
-              # - "27" for MXP
-              # - "28" for CLP
-              # - "29" for TRY
-              # - "30" for ARS
-              # - "31" for PEN
-              # - "32" for ILS
-              # - "33" for CHF
-              # - "34" for VEF
-              # - "35" for COP
-              # - "36" for GTQ
-              # - "37" for PLN
-              # - "39" for INR
-              # - "40" for THB
-              # - "41" for IDR
-              # - "42" for CZK
-              # - "43" for RON
-              # - "44" for HUF
-              # - "45" for RUB
-              # - "46" for AED
-              # - "47" for BGN
-              # - "48" for HRK
-          "inpageTagFormats": [ # Tag types for regular placements.
-              #
-              # Acceptable values are:
-              # - "STANDARD"
-              # - "IFRAME_JAVASCRIPT_INPAGE"
-              # - "INTERNAL_REDIRECT_INPAGE"
-              # - "JAVASCRIPT_INPAGE"
-            "A String",
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "interstitialTagFormats": [ # Tag types for interstitial placements.
-              #
-              # Acceptable values are:
-              # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
-              # - "INTERNAL_REDIRECT_INTERSTITIAL"
-              # - "JAVASCRIPT_INTERSTITIAL"
-            "A String",
-          ],
-          "contactAssignments": [ # Directory site contacts.
-            { # Directory Site Contact Assignment
-              "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
-              "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
-            },
-          ],
-          "url": "A String", # URL of this directory site.
-          "parentId": "A String", # Parent directory site ID.
-          "active": True or False, # Whether this directory site is active.
-          "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this directory site.
-        },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.eventTags.html b/docs/dyn/dfareporting_v2_6.eventTags.html
deleted file mode 100644
index 87797cd..0000000
--- a/docs/dyn/dfareporting_v2_6.eventTags.html
+++ /dev/null
@@ -1,493 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.eventTags.html">eventTags</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing event tag.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one event tag by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new event tag.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of event tags, possibly filtered.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing event tag. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing event tag.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one event tag by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</code>
-  <pre>Retrieves a list of event tags, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Select only event tags that belong to this campaign.
-  advertiserId: string, Select only event tags that belong to this advertiser.
-  adId: string, Select only event tags that belong to this ad.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  definitionsOnly: boolean, Examine only the specified campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign of the specified ad or campaign is examined as well. In addition, when set to false, the status field is examined as well, along with the enabledByDefault field. This parameter can not be set to true when adId is specified as ads do not define their own even tags.
-  eventTagTypes: string, Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. (repeated)
-    Allowed values
-      CLICK_THROUGH_EVENT_TAG - 
-      IMPRESSION_IMAGE_EVENT_TAG - 
-      IMPRESSION_JAVASCRIPT_EVENT_TAG - 
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "eventtag*2015" will return objects with names like "eventtag June 2015", "eventtag April 2015", or simply "eventtag 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "eventtag" will match objects with name "my eventtag", "eventtag 2015", or simply "eventtag".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  enabled: boolean, Select only enabled event tags. What is considered enabled or disabled depends on the definitionsOnly parameter. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.
-  ids: string, Select only event tags with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Event Tag List Response
-    "eventTags": [ # Event tag collection.
-      { # Contains properties of an event tag.
-          "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-          "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-          "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-          "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-          "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-          "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-          "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-          "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-          "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-            "A String",
-          ],
-          "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-          "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-          "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#eventTagsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTagsListResponse".
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing event tag. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Event tag ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing event tag.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of an event tag.
-    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-      "A String",
-    ],
-    "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of an event tag.
-      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
-      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
-      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
-      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not. This is a read-only field.
-      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
-      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
-      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
-      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
-      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
-        "A String",
-      ],
-      "excludeFromAdxRequests": True or False, # Whether to remove this event tag from ads that are trafficked through DoubleClick Bid Manager to Ad Exchange. This may be useful if the event tag uses a pixel that is unapproved for Ad Exchange bids on one or more networks, such as the Google Display Network.
-      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
-      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.floodlightActivities.html b/docs/dyn/dfareporting_v2_6.floodlightActivities.html
deleted file mode 100644
index 6e498cc..0000000
--- a/docs/dyn/dfareporting_v2_6.floodlightActivities.html
+++ /dev/null
@@ -1,1045 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.floodlightActivities.html">floodlightActivities</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#generatetag">generatetag(profileId, floodlightActivityId=None)</a></code></p>
-<p class="firstline">Generates a tag for a floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight activity by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new floodlight activity.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight activities, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="generatetag">generatetag(profileId, floodlightActivityId=None)</code>
-  <pre>Generates a tag for a floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  floodlightActivityId: string, Floodlight activity ID for which we want to generate a tag.
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity GenerateTag Response
-    "kind": "dfareporting#floodlightActivitiesGenerateTagResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesGenerateTagResponse".
-    "floodlightActivityTag": "A String", # Generated tag for this floodlight activity.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight activity by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</code>
-  <pre>Retrieves a list of floodlight activities, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  floodlightActivityGroupName: string, Select only floodlight activities with the specified floodlight activity group name.
-  advertiserId: string, Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
-  tagString: string, Select only floodlight activities with the specified tag string.
-  floodlightActivityGroupTagString: string, Select only floodlight activities with the specified floodlight activity group tag string.
-  floodlightActivityGroupIds: string, Select only floodlight activities with the specified floodlight activity group IDs. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxResults: integer, Maximum number of results to return.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivity*2015" will return objects with names like "floodlightactivity June 2015", "floodlightactivity April 2015", or simply "floodlightactivity 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivity" will match objects with name "my floodlightactivity activity", "floodlightactivity 2015", or simply "floodlightactivity".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightConfigurationId: string, Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
-  ids: string, Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result. (repeated)
-  floodlightActivityGroupType: string, Select only floodlight activities with the specified floodlight activity group type.
-    Allowed values
-      COUNTER - 
-      SALE - 
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#floodlightActivitiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesListResponse".
-    "floodlightActivities": [ # Floodlight activity collection.
-      { # Contains properties of a Floodlight activity.
-          "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-          "secure": True or False, # Whether this tag should use SSL.
-          "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-          "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-          "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-          "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-          "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-          "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-          "publisherTags": [ # Publisher dynamic floodlight tags.
-            { # Publisher Dynamic Tag
-              "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-              "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-              "siteId": "A String", # Site ID of this dynamic tag.
-              "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-                "tag": "A String", # Tag code.
-                "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-                "name": "A String", # Name of this tag.
-              },
-              "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-              "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            },
-          ],
-          "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "hidden": True or False, # Whether this activity is archived.
-          "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-          "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-          "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-          "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-          "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-          "notes": "A String", # General notes or implementation instructions for the tag.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-          "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-              # Acceptable values are:
-              # - "U1"
-              # - "U2"
-              # - "U3"
-              # - "U4"
-              # - "U5"
-              # - "U6"
-              # - "U7"
-              # - "U8"
-              # - "U9"
-              # - "U10"
-              # - "U11"
-              # - "U12"
-              # - "U13"
-              # - "U14"
-              # - "U15"
-              # - "U16"
-              # - "U17"
-              # - "U18"
-              # - "U19"
-              # - "U20"
-            "A String",
-          ],
-          "defaultTags": [ # Dynamic floodlight tags.
-            { # Dynamic Tag
-              "tag": "A String", # Tag code.
-              "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-              "name": "A String", # Name of this tag.
-            },
-          ],
-          "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-          "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight activity. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight activity.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity.
-    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-    "secure": True or False, # Whether this tag should use SSL.
-    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-    "publisherTags": [ # Publisher dynamic floodlight tags.
-      { # Publisher Dynamic Tag
-        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-        "siteId": "A String", # Site ID of this dynamic tag.
-        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      },
-    ],
-    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "hidden": True or False, # Whether this activity is archived.
-    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-    "notes": "A String", # General notes or implementation instructions for the tag.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-        # Acceptable values are:
-        # - "U1"
-        # - "U2"
-        # - "U3"
-        # - "U4"
-        # - "U5"
-        # - "U6"
-        # - "U7"
-        # - "U8"
-        # - "U9"
-        # - "U10"
-        # - "U11"
-        # - "U12"
-        # - "U13"
-        # - "U14"
-        # - "U15"
-        # - "U16"
-        # - "U17"
-        # - "U18"
-        # - "U19"
-        # - "U20"
-      "A String",
-    ],
-    "defaultTags": [ # Dynamic floodlight tags.
-      { # Dynamic Tag
-        "tag": "A String", # Tag code.
-        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-        "name": "A String", # Name of this tag.
-      },
-    ],
-    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity.
-      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
-      "secure": True or False, # Whether this tag should use SSL.
-      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
-      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
-      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
-      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
-      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
-      "publisherTags": [ # Publisher dynamic floodlight tags.
-        { # Publisher Dynamic Tag
-          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
-          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
-          "siteId": "A String", # Site ID of this dynamic tag.
-          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
-            "tag": "A String", # Tag code.
-            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-            "name": "A String", # Name of this tag.
-          },
-          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        },
-      ],
-      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "hidden": True or False, # Whether this activity is archived.
-      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
-      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
-      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
-      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
-      "notes": "A String", # General notes or implementation instructions for the tag.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
-      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
-          # Acceptable values are:
-          # - "U1"
-          # - "U2"
-          # - "U3"
-          # - "U4"
-          # - "U5"
-          # - "U6"
-          # - "U7"
-          # - "U8"
-          # - "U9"
-          # - "U10"
-          # - "U11"
-          # - "U12"
-          # - "U13"
-          # - "U14"
-          # - "U15"
-          # - "U16"
-          # - "U17"
-          # - "U18"
-          # - "U19"
-          # - "U20"
-        "A String",
-      ],
-      "defaultTags": [ # Dynamic floodlight tags.
-        { # Dynamic Tag
-          "tag": "A String", # Tag code.
-          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this tag.
-        },
-      ],
-      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
-      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.floodlightActivityGroups.html b/docs/dyn/dfareporting_v2_6.floodlightActivityGroups.html
deleted file mode 100644
index 6f1bf5b..0000000
--- a/docs/dyn/dfareporting_v2_6.floodlightActivityGroups.html
+++ /dev/null
@@ -1,488 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.floodlightActivityGroups.html">floodlightActivityGroups</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight activity group by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new floodlight activity group.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity group. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight activity group.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight activity group by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity Group ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new floodlight activity group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</code>
-  <pre>Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only floodlight activity groups with the specified advertiser ID. Must specify either advertiserId or floodlightConfigurationId for a non-empty result.
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivitygroup*2015" will return objects with names like "floodlightactivitygroup June 2015", "floodlightactivitygroup April 2015", or simply "floodlightactivitygroup 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivitygroup" will match objects with name "my floodlightactivitygroup activity", "floodlightactivitygroup 2015", or simply "floodlightactivitygroup".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightConfigurationId: string, Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.
-  ids: string, Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  type: string, Select only floodlight activity groups with the specified floodlight activity group type.
-    Allowed values
-      COUNTER - 
-      SALE - 
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Activity Group List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#floodlightActivityGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroupsListResponse".
-    "floodlightActivityGroups": [ # Floodlight activity group collection.
-      { # Contains properties of a Floodlight activity group.
-          "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-          "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-          "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-          "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-          "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight activity group. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight activity Group ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight activity group.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight activity group.
-    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight activity group.
-      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
-      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
-      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
-      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
-      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
-      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.floodlightConfigurations.html b/docs/dyn/dfareporting_v2_6.floodlightConfigurations.html
deleted file mode 100644
index 51759bd..0000000
--- a/docs/dyn/dfareporting_v2_6.floodlightConfigurations.html
+++ /dev/null
@@ -1,514 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.floodlightConfigurations.html">floodlightConfigurations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one floodlight configuration by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of floodlight configurations, possibly filtered.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight configuration. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing floodlight configuration.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one floodlight configuration by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight configuration ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, ids=None)</code>
-  <pre>Retrieves a list of floodlight configurations, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  ids: string, Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Floodlight Configuration List Response
-    "floodlightConfigurations": [ # Floodlight configuration collection.
-      { # Contains properties of a Floodlight configuration.
-          "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-          "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-          "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-            "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-            "imageTagEnabled": True or False, # Whether image tags are enabled.
-          },
-          "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-          "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-              #
-              # Acceptable values are:
-              # - "ORD"
-              # - "NUM"
-            "A String",
-          ],
-          "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-            "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-            "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-          },
-          "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-          "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-          "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-          "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-          "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-            { # Third Party Authentication Token
-              "name": "A String", # Name of the third-party authentication token.
-              "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-            },
-          ],
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-          "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-            { # User Defined Variable configuration.
-              "dataType": "A String", # Data type for the variable. This is a required field.
-              "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-              "variableType": "A String", # Variable name in the tag. This is a required field.
-            },
-          ],
-          "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-        },
-    ],
-    "kind": "dfareporting#floodlightConfigurationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfigurationsListResponse".
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing floodlight configuration. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Floodlight configuration ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight configuration.
-    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-      "imageTagEnabled": True or False, # Whether image tags are enabled.
-    },
-    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
-    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-    },
-    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-    "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-    "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-      { # Third Party Authentication Token
-        "name": "A String", # Name of the third-party authentication token.
-        "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-      },
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-      { # User Defined Variable configuration.
-        "dataType": "A String", # Data type for the variable. This is a required field.
-        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-        "variableType": "A String", # Variable name in the tag. This is a required field.
-      },
-    ],
-    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing floodlight configuration.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a Floodlight configuration.
-    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-      "imageTagEnabled": True or False, # Whether image tags are enabled.
-    },
-    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
-    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-    },
-    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-    "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-    "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-      { # Third Party Authentication Token
-        "name": "A String", # Name of the third-party authentication token.
-        "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-      },
-    ],
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-      { # User Defined Variable configuration.
-        "dataType": "A String", # Data type for the variable. This is a required field.
-        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-        "variableType": "A String", # Variable name in the tag. This is a required field.
-      },
-    ],
-    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a Floodlight configuration.
-      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
-      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
-      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
-        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
-        "imageTagEnabled": True or False, # Whether image tags are enabled.
-      },
-      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
-      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
-        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
-        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
-      },
-      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
-      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
-      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
-      "inAppAttributionTrackingEnabled": True or False, # Whether in-app attribution tracking is enabled.
-      "thirdPartyAuthenticationTokens": [ # List of third-party authentication tokens enabled for this configuration.
-        { # Third Party Authentication Token
-          "name": "A String", # Name of the third-party authentication token.
-          "value": "A String", # Value of the third-party authentication token. This is a read-only, auto-generated field.
-        },
-      ],
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
-      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
-        { # User Defined Variable configuration.
-          "dataType": "A String", # Data type for the variable. This is a required field.
-          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
-          "variableType": "A String", # Variable name in the tag. This is a required field.
-        },
-      ],
-      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.landingPages.html b/docs/dyn/dfareporting_v2_6.landingPages.html
deleted file mode 100644
index 549e376..0000000
--- a/docs/dyn/dfareporting_v2_6.landingPages.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.landingPages.html">landingPages</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, campaignId, id)</a></code></p>
-<p class="firstline">Deletes an existing campaign landing page.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, campaignId, id)</a></code></p>
-<p class="firstline">Gets one campaign landing page by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Inserts a new landing page for the specified campaign.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, campaignId)</a></code></p>
-<p class="firstline">Retrieves the list of landing pages for the specified campaign.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, campaignId, id, body)</a></code></p>
-<p class="firstline">Updates an existing campaign landing page. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, campaignId, body)</a></code></p>
-<p class="firstline">Updates an existing campaign landing page.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, campaignId, id)</code>
-  <pre>Deletes an existing campaign landing page.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, campaignId, id)</code>
-  <pre>Gets one campaign landing page by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, campaignId, body)</code>
-  <pre>Inserts a new landing page for the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, campaignId)</code>
-  <pre>Retrieves the list of landing pages for the specified campaign.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Landing Page List Response
-    "kind": "dfareporting#landingPagesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPagesListResponse".
-    "landingPages": [ # Landing page collection
-      { # Contains information about where a user's browser is taken after the user clicks an ad.
-          "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-          "url": "A String", # URL of this landing page. This is a required field.
-          "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-          "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, campaignId, id, body)</code>
-  <pre>Updates an existing campaign landing page. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  id: string, Landing page ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, campaignId, body)</code>
-  <pre>Updates an existing campaign landing page.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Landing page campaign ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains information about where a user's browser is taken after the user clicks an ad.
-    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-    "url": "A String", # URL of this landing page. This is a required field.
-    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains information about where a user's browser is taken after the user clicks an ad.
-      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
-      "url": "A String", # URL of this landing page. This is a required field.
-      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
-      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this landing page. This is a required field. It must be less than 256 characters long, and must be unique among landing pages of the same campaign.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.metros.html b/docs/dyn/dfareporting_v2_6.metros.html
deleted file mode 100644
index e67f75f..0000000
--- a/docs/dyn/dfareporting_v2_6.metros.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.metros.html">metros</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of metros.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of metros.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Metro List Response
-    "kind": "dfareporting#metrosListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metrosListResponse".
-    "metros": [ # Metro collection.
-      { # Contains information about a metro region that can be targeted by ads.
-        "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
-        "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
-        "name": "A String", # Name of this metro region.
-        "countryCode": "A String", # Country code of the country to which this metro region belongs.
-        "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
-        "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
-        "dartId": "A String", # DART ID of this metro region.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.mobileCarriers.html b/docs/dyn/dfareporting_v2_6.mobileCarriers.html
deleted file mode 100644
index e046c91..0000000
--- a/docs/dyn/dfareporting_v2_6.mobileCarriers.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.mobileCarriers.html">mobileCarriers</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one mobile carrier by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of mobile carriers.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one mobile carrier by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Mobile carrier ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a mobile carrier that can be targeted by ads.
-    "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-    "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-    "id": "A String", # ID of this mobile carrier.
-    "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-    "name": "A String", # Name of this mobile carrier.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of mobile carriers.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Mobile Carrier List Response
-    "kind": "dfareporting#mobileCarriersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarriersListResponse".
-    "mobileCarriers": [ # Mobile carrier collection.
-      { # Contains information about a mobile carrier that can be targeted by ads.
-        "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
-        "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
-        "id": "A String", # ID of this mobile carrier.
-        "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
-        "name": "A String", # Name of this mobile carrier.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.operatingSystems.html b/docs/dyn/dfareporting_v2_6.operatingSystems.html
deleted file mode 100644
index 24f27fc..0000000
--- a/docs/dyn/dfareporting_v2_6.operatingSystems.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.operatingSystems.html">operatingSystems</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, dartId)</a></code></p>
-<p class="firstline">Gets one operating system by DART ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of operating systems.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, dartId)</code>
-  <pre>Gets one operating system by DART ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  dartId: string, Operating system DART ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about an operating system that can be targeted by ads.
-    "mobile": True or False, # Whether this operating system is for mobile.
-    "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-    "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-    "name": "A String", # Name of this operating system.
-    "desktop": True or False, # Whether this operating system is for desktop.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of operating systems.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Operating System List Response
-    "kind": "dfareporting#operatingSystemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemsListResponse".
-    "operatingSystems": [ # Operating system collection.
-      { # Contains information about an operating system that can be targeted by ads.
-        "mobile": True or False, # Whether this operating system is for mobile.
-        "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
-        "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
-        "name": "A String", # Name of this operating system.
-        "desktop": True or False, # Whether this operating system is for desktop.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.orderDocuments.html b/docs/dyn/dfareporting_v2_6.orderDocuments.html
deleted file mode 100644
index c1e4b3d..0000000
--- a/docs/dyn/dfareporting_v2_6.orderDocuments.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.orderDocuments.html">orderDocuments</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one order document by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, pageToken=None, sortOrder=None, orderId=None, maxResults=None, siteId=None, approved=None, searchString=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of order documents, possibly filtered. This method supports paging.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one order document by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  id: string, Order document ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DoubleClick Planning order document.
-    "orderId": "A String", # ID of the order from which this order document is created.
-    "approvedByUserProfileIds": [ # IDs of users who have approved this order document.
-      "A String",
-    ],
-    "kind": "dfareporting#orderDocument", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocument".
-    "subaccountId": "A String", # Subaccount ID of this order document.
-    "effectiveDate": "A String", # Effective date of this order document.
-    "lastSentTime": "A String", # Timestamp of the last email sent with this order document.
-    "lastSentRecipients": [ # List of email addresses that received the last sent document.
-      "A String",
-    ],
-    "title": "A String", # Title of this order document.
-    "amendedOrderDocumentId": "A String", # The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.
-    "signed": True or False, # Whether this order document has been signed.
-    "createdInfo": { # Modification timestamp. # Information about the creation of this order document.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "advertiserId": "A String", # Advertiser ID of this order document.
-    "projectId": "A String", # Project ID of this order document.
-    "cancelled": True or False, # Whether this order document is cancelled.
-    "type": "A String", # Type of this order document
-    "id": "A String", # ID of this order document.
-    "accountId": "A String", # Account ID of this order document.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, pageToken=None, sortOrder=None, orderId=None, maxResults=None, siteId=None, approved=None, searchString=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of order documents, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for order documents. (required)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  orderId: string, Select only order documents for specified orders. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  siteId: string, Select only order documents that are associated with these sites. (repeated)
-  approved: boolean, Select only order documents that have been approved by at least one user.
-  searchString: string, Allows searching for order documents by name or ID. Wildcards (*) are allowed. For example, "orderdocument*2015" will return order documents with names like "orderdocument June 2015", "orderdocument April 2015", or simply "orderdocument 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "orderdocument" will match order documents with name "my orderdocument", "orderdocument 2015", or simply "orderdocument".
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only order documents with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Order document List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#orderDocumentsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocumentsListResponse".
-    "orderDocuments": [ # Order document collection
-      { # Contains properties of a DoubleClick Planning order document.
-        "orderId": "A String", # ID of the order from which this order document is created.
-        "approvedByUserProfileIds": [ # IDs of users who have approved this order document.
-          "A String",
-        ],
-        "kind": "dfareporting#orderDocument", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#orderDocument".
-        "subaccountId": "A String", # Subaccount ID of this order document.
-        "effectiveDate": "A String", # Effective date of this order document.
-        "lastSentTime": "A String", # Timestamp of the last email sent with this order document.
-        "lastSentRecipients": [ # List of email addresses that received the last sent document.
-          "A String",
-        ],
-        "title": "A String", # Title of this order document.
-        "amendedOrderDocumentId": "A String", # The amended order document ID of this order document. An order document can be created by optionally amending another order document so that the change history can be preserved.
-        "signed": True or False, # Whether this order document has been signed.
-        "createdInfo": { # Modification timestamp. # Information about the creation of this order document.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "advertiserId": "A String", # Advertiser ID of this order document.
-        "projectId": "A String", # Project ID of this order document.
-        "cancelled": True or False, # Whether this order document is cancelled.
-        "type": "A String", # Type of this order document
-        "id": "A String", # ID of this order document.
-        "accountId": "A String", # Account ID of this order document.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.orders.html b/docs/dyn/dfareporting_v2_6.orders.html
deleted file mode 100644
index a3aa09d..0000000
--- a/docs/dyn/dfareporting_v2_6.orders.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.orders.html">orders</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, projectId, id)</a></code></p>
-<p class="firstline">Gets one order by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, projectId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None, siteId=None)</a></code></p>
-<p class="firstline">Retrieves a list of orders, possibly filtered. This method supports paging.</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="get">get(profileId, projectId, id)</code>
-  <pre>Gets one order by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for orders. (required)
-  id: string, Order ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Describes properties of a DoubleClick Planning order.
-    "termsAndConditions": "A String", # Terms and conditions of this order.
-    "kind": "dfareporting#order", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#order".
-    "sellerOrganizationName": "A String", # Name of the seller organization.
-    "subaccountId": "A String", # Subaccount ID of this order.
-    "name": "A String", # Name of this order.
-    "buyerInvoiceId": "A String", # Buyer invoice ID associated with this order.
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this order.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "notes": "A String", # Notes of this order.
-    "contacts": [ # Contacts for this order.
-      { # Contact of an order.
-        "signatureUserProfileId": "A String", # ID of the user profile containing the signature that will be embedded into order documents.
-        "contactTitle": "A String", # Title of this contact.
-        "contactInfo": "A String", # Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.
-        "contactName": "A String", # Name of this contact.
-        "contactType": "A String", # Type of this contact.
-      },
-    ],
-    "buyerOrganizationName": "A String", # Name of the buyer organization.
-    "comments": "A String", # Comments in this order.
-    "advertiserId": "A String", # Advertiser ID of this order.
-    "approverUserProfileIds": [ # IDs for users that have to approve documents created for this order.
-      "A String",
-    ],
-    "siteId": [ # Site IDs this order is associated with.
-      "A String",
-    ],
-    "sellerOrderId": "A String", # Seller order ID associated with this order.
-    "projectId": "A String", # Project ID of this order.
-    "siteNames": [ # Free-form site names this order is associated with.
-      "A String",
-    ],
-    "planningTermId": "A String", # ID of the terms and conditions template used in this order.
-    "id": "A String", # ID of this order. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this order.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, projectId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None, siteId=None)</code>
-  <pre>Retrieves a list of orders, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  projectId: string, Project ID for orders. (required)
-  searchString: string, Allows searching for orders by name or ID. Wildcards (*) are allowed. For example, "order*2015" will return orders with names like "order June 2015", "order April 2015", or simply "order 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "order" will match orders with name "my order", "order 2015", or simply "order".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only orders with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  siteId: string, Select only orders that are associated with these site IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Order List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#ordersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ordersListResponse".
-    "orders": [ # Order collection.
-      { # Describes properties of a DoubleClick Planning order.
-        "termsAndConditions": "A String", # Terms and conditions of this order.
-        "kind": "dfareporting#order", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#order".
-        "sellerOrganizationName": "A String", # Name of the seller organization.
-        "subaccountId": "A String", # Subaccount ID of this order.
-        "name": "A String", # Name of this order.
-        "buyerInvoiceId": "A String", # Buyer invoice ID associated with this order.
-        "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this order.
-          "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-        },
-        "notes": "A String", # Notes of this order.
-        "contacts": [ # Contacts for this order.
-          { # Contact of an order.
-            "signatureUserProfileId": "A String", # ID of the user profile containing the signature that will be embedded into order documents.
-            "contactTitle": "A String", # Title of this contact.
-            "contactInfo": "A String", # Free-form information about this contact. It could be any information related to this contact in addition to type, title, name, and signature user profile ID.
-            "contactName": "A String", # Name of this contact.
-            "contactType": "A String", # Type of this contact.
-          },
-        ],
-        "buyerOrganizationName": "A String", # Name of the buyer organization.
-        "comments": "A String", # Comments in this order.
-        "advertiserId": "A String", # Advertiser ID of this order.
-        "approverUserProfileIds": [ # IDs for users that have to approve documents created for this order.
-          "A String",
-        ],
-        "siteId": [ # Site IDs this order is associated with.
-          "A String",
-        ],
-        "sellerOrderId": "A String", # Seller order ID associated with this order.
-        "projectId": "A String", # Project ID of this order.
-        "siteNames": [ # Free-form site names this order is associated with.
-          "A String",
-        ],
-        "planningTermId": "A String", # ID of the terms and conditions template used in this order.
-        "id": "A String", # ID of this order. This is a read-only, auto-generated field.
-        "accountId": "A String", # Account ID of this order.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.placementStrategies.html b/docs/dyn/dfareporting_v2_6.placementStrategies.html
deleted file mode 100644
index 325f59a..0000000
--- a/docs/dyn/dfareporting_v2_6.placementStrategies.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.placementStrategies.html">placementStrategies</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing placement strategy.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement strategy by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement strategy.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of placement strategies, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement strategy. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement strategy.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement strategy by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of placement strategies, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "placementstrategy*2015" will return objects with names like "placementstrategy June 2015", "placementstrategy April 2015", or simply "placementstrategy 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementstrategy" will match objects with name "my placementstrategy", "placementstrategy 2015", or simply "placementstrategy".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only placement strategies with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Placement Strategy List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementStrategiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategiesListResponse".
-    "placementStrategies": [ # Placement strategy collection.
-      { # Contains properties of a placement strategy.
-          "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-          "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-          "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement strategy. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement strategy ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement strategy.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement strategy.
-    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement strategy.
-      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
-      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this placement strategy. This is a required field. It must be less than 256 characters long and unique among placement strategies of the same account.
-      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.placements.html b/docs/dyn/dfareporting_v2_6.placements.html
deleted file mode 100644
index 19b17bc..0000000
--- a/docs/dyn/dfareporting_v2_6.placements.html
+++ /dev/null
@@ -1,1360 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.placements.html">placements</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</a></code></p>
-<p class="firstline">Generates tags for a placement.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one placement by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new placement.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, advertiserIds=None, sizeIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, compatibilities=None, searchString=None, minEndDate=None, directorySiteIds=None, sortField=None, ids=None, groupIds=None)</a></code></p>
-<p class="firstline">Retrieves a list of placements, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing placement. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing placement.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</code>
-  <pre>Generates tags for a placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  campaignId: string, Generate placements belonging to this campaign. This is a required field.
-  tagFormats: string, Tag formats to generate for these placements. (repeated)
-    Allowed values
-      PLACEMENT_TAG_CLICK_COMMANDS - 
-      PLACEMENT_TAG_IFRAME_ILAYER - 
-      PLACEMENT_TAG_IFRAME_JAVASCRIPT - 
-      PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
-      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3 - 
-      PLACEMENT_TAG_INTERNAL_REDIRECT - 
-      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
-      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT - 
-      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT - 
-      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_JAVASCRIPT - 
-      PLACEMENT_TAG_JAVASCRIPT_LEGACY - 
-      PLACEMENT_TAG_STANDARD - 
-      PLACEMENT_TAG_TRACKING - 
-      PLACEMENT_TAG_TRACKING_IFRAME - 
-      PLACEMENT_TAG_TRACKING_JAVASCRIPT - 
-  placementIds: string, Generate tags for these placements. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Placement GenerateTags Response
-    "kind": "dfareporting#placementsGenerateTagsResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsGenerateTagsResponse".
-    "placementTags": [ # Set of generated tags for the specified placements.
-      { # Placement Tag
-        "tagDatas": [ # Tags generated for this placement.
-          { # Placement Tag Data
-            "clickTag": "A String", # Tag string to record a click.
-            "impressionTag": "A String", # Tag string for serving an ad.
-            "creativeId": "A String", # Creative associated with this placement tag.
-            "adId": "A String", # Ad associated with this placement tag.
-            "format": "A String", # TagData tag format of this tag.
-          },
-        ],
-        "placementId": "A String", # Placement ID
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one placement by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, advertiserIds=None, sizeIds=None, pageToken=None, maxStartDate=None, sortOrder=None, maxEndDate=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, minStartDate=None, compatibilities=None, searchString=None, minEndDate=None, directorySiteIds=None, sortField=None, ids=None, groupIds=None)</code>
-  <pre>Retrieves a list of placements, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  siteIds: string, Select only placements that are associated with these sites. (repeated)
-  paymentSource: string, Select only placements with this payment source.
-    Allowed values
-      PLACEMENT_AGENCY_PAID - 
-      PLACEMENT_PUBLISHER_PAID - 
-  pricingTypes: string, Select only placements with these pricing types. (repeated)
-    Allowed values
-      PRICING_TYPE_CPA - 
-      PRICING_TYPE_CPC - 
-      PRICING_TYPE_CPM - 
-      PRICING_TYPE_CPM_ACTIVEVIEW - 
-      PRICING_TYPE_FLAT_RATE_CLICKS - 
-      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
-  campaignIds: string, Select only placements that belong to these campaigns. (repeated)
-  advertiserIds: string, Select only placements that belong to these advertisers. (repeated)
-  sizeIds: string, Select only placements that are associated with these sizes. (repeated)
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  maxEndDate: string, Select only placements or placement groups whose end date is on or before the specified maxEndDate. The date should be formatted as "yyyy-MM-dd".
-  placementStrategyIds: string, Select only placements that are associated with these placement strategies. (repeated)
-  contentCategoryIds: string, Select only placements that are associated with these content categories. (repeated)
-  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
-  maxResults: integer, Maximum number of results to return.
-  minStartDate: string, Select only placements or placement groups whose start date is on or after the specified minStartDate. The date should be formatted as "yyyy-MM-dd".
-  compatibilities: string, Select only placements that are associated with these compatibilities. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. (repeated)
-    Allowed values
-      APP - 
-      APP_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_INTERSTITIAL - 
-      IN_STREAM_VIDEO - 
-  searchString: string, Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placements with names like "placement June 2015", "placement May 2015", or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placement" will match placements with name "my placement", "placement 2015", or simply "placement".
-  minEndDate: string, Select only placements or placement groups whose end date is on or after the specified minEndDate. The date should be formatted as "yyyy-MM-dd".
-  directorySiteIds: string, Select only placements that are associated with these directory sites. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only placements with these IDs. (repeated)
-  groupIds: string, Select only placements that belong to these placement groups. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Placement List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#placementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsListResponse".
-    "placements": [ # Placement collection.
-      { # Contains properties of a placement.
-          "comment": "A String", # Comments for this placement.
-          "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-          "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-          "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-          "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this placement. This field can be left blank.
-          "archived": True or False, # Whether this placement is archived.
-          "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-              # Acceptable values are:
-              # - "PLACEMENT_TAG_STANDARD"
-              # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-              # - "PLACEMENT_TAG_IFRAME_ILAYER"
-              # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-              # - "PLACEMENT_TAG_JAVASCRIPT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-              # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-              # - "PLACEMENT_TAG_CLICK_COMMANDS"
-              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-              # - "PLACEMENT_TAG_TRACKING"
-              # - "PLACEMENT_TAG_TRACKING_IFRAME"
-              # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-            "A String",
-          ],
-          "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-          "tagSetting": { # Tag Settings # Tag settings for this placement.
-            "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-            "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-            "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-            "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-          },
-          "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-          "externalId": "A String", # External ID for this placement.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-            "width": 42, # Width of this size.
-            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
-          },
-          "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-          "status": "A String", # Third-party placement status.
-          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-          "placementGroupId": "A String", # ID of this placement's group, if applicable.
-          "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-          "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-          "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-          "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          },
-          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-          },
-          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-            "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-            "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-            "capCostOption": "A String", # Placement cap cost option.
-            "pricingPeriods": [ # Pricing periods for this placement.
-              { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-                "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-                "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-                "pricingComment": "A String", # Comments for this pricing period.
-              },
-            ],
-            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-          },
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing placement. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Placement ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing placement.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a placement.
-    "comment": "A String", # Comments for this placement.
-    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this placement. This field can be left blank.
-    "archived": True or False, # Whether this placement is archived.
-    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-        # Acceptable values are:
-        # - "PLACEMENT_TAG_STANDARD"
-        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_IFRAME_ILAYER"
-        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-        # - "PLACEMENT_TAG_CLICK_COMMANDS"
-        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-        # - "PLACEMENT_TAG_TRACKING"
-        # - "PLACEMENT_TAG_TRACKING_IFRAME"
-        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-      "A String",
-    ],
-    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-    "tagSetting": { # Tag Settings # Tag settings for this placement.
-      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-    },
-    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-    "externalId": "A String", # External ID for this placement.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
-      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
-    },
-    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-    "status": "A String", # Third-party placement status.
-    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-    "placementGroupId": "A String", # ID of this placement's group, if applicable.
-    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-    },
-    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-    },
-    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-      "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-      "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-      "capCostOption": "A String", # Placement cap cost option.
-      "pricingPeriods": [ # Pricing periods for this placement.
-        { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-          "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-          "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-          "pricingComment": "A String", # Comments for this pricing period.
-        },
-      ],
-      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-    },
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a placement.
-      "comment": "A String", # Comments for this placement.
-      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
-      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
-      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this placement. This field can be left blank.
-      "archived": True or False, # Whether this placement is archived.
-      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
-          # Acceptable values are:
-          # - "PLACEMENT_TAG_STANDARD"
-          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_IFRAME_ILAYER"
-          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
-          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
-          # - "PLACEMENT_TAG_CLICK_COMMANDS"
-          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
-          # - "PLACEMENT_TAG_TRACKING"
-          # - "PLACEMENT_TAG_TRACKING_IFRAME"
-          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
-        "A String",
-      ],
-      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
-      "tagSetting": { # Tag Settings # Tag settings for this placement.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
-      "externalId": "A String", # External ID for this placement.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
-      "status": "A String", # Third-party placement status.
-      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
-      "placementGroupId": "A String", # ID of this placement's group, if applicable.
-      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
-      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "compatibility": "A String", # Placement compatibility. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering on desktop, on mobile devices or in mobile apps for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are no longer allowed for new placement insertions. Instead, use DISPLAY or DISPLAY_INTERSTITIAL. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
-      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
-      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
-      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
-      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
-        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
-      },
-      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
-        "startDate": "A String", # Placement start date. This date must be later than, or the same day as, the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
-        "endDate": "A String", # Placement end date. This date must be later than, or the same day as, the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
-        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
-        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
-        "capCostOption": "A String", # Placement cap cost option.
-        "pricingPeriods": [ # Pricing periods for this placement.
-          { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
-            "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-            "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
-            "pricingComment": "A String", # Comments for this pricing period.
-          },
-        ],
-        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
-        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
-      },
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.platformTypes.html b/docs/dyn/dfareporting_v2_6.platformTypes.html
deleted file mode 100644
index 0759c8a..0000000
--- a/docs/dyn/dfareporting_v2_6.platformTypes.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.platformTypes.html">platformTypes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one platform type by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of platform types.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one platform type by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Platform type ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a platform type that can be targeted by ads.
-    "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-    "id": "A String", # ID of this platform type.
-    "name": "A String", # Name of this platform type.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of platform types.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Platform Type List Response
-    "kind": "dfareporting#platformTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformTypesListResponse".
-    "platformTypes": [ # Platform type collection.
-      { # Contains information about a platform type that can be targeted by ads.
-        "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
-        "id": "A String", # ID of this platform type.
-        "name": "A String", # Name of this platform type.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.postalCodes.html b/docs/dyn/dfareporting_v2_6.postalCodes.html
deleted file mode 100644
index 4c09747..0000000
--- a/docs/dyn/dfareporting_v2_6.postalCodes.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.postalCodes.html">postalCodes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, code)</a></code></p>
-<p class="firstline">Gets one postal code by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of postal codes.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, code)</code>
-  <pre>Gets one postal code by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  code: string, Postal code ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains information about a postal code that can be targeted by ads.
-    "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-    "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-    "code": "A String", # Postal code. This is equivalent to the id field.
-    "id": "A String", # ID of this postal code.
-    "countryCode": "A String", # Country code of the country to which this postal code belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of postal codes.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Postal Code List Response
-    "kind": "dfareporting#postalCodesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCodesListResponse".
-    "postalCodes": [ # Postal code collection.
-      { # Contains information about a postal code that can be targeted by ads.
-        "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
-        "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
-        "code": "A String", # Postal code. This is equivalent to the id field.
-        "id": "A String", # ID of this postal code.
-        "countryCode": "A String", # Country code of the country to which this postal code belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.regions.html b/docs/dyn/dfareporting_v2_6.regions.html
deleted file mode 100644
index bba1464..0000000
--- a/docs/dyn/dfareporting_v2_6.regions.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.regions.html">regions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(profileId)</a></code></p>
-<p class="firstline">Retrieves a list of regions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(profileId)</code>
-  <pre>Retrieves a list of regions.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-
-Returns:
-  An object of the form:
-
-    { # Region List Response
-    "regions": [ # Region collection.
-      { # Contains information about a region that can be targeted by ads.
-        "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
-        "countryDartId": "A String", # DART ID of the country to which this region belongs.
-        "name": "A String", # Name of this region.
-        "countryCode": "A String", # Country code of the country to which this region belongs.
-        "regionCode": "A String", # Region code.
-        "dartId": "A String", # DART ID of this region.
-      },
-    ],
-    "kind": "dfareporting#regionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#regionsListResponse".
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.remarketingListShares.html b/docs/dyn/dfareporting_v2_6.remarketingListShares.html
deleted file mode 100644
index 7ca3a13..0000000
--- a/docs/dyn/dfareporting_v2_6.remarketingListShares.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.remarketingListShares.html">remarketingListShares</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, remarketingListId)</a></code></p>
-<p class="firstline">Gets one remarketing list share by remarketing list ID.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, remarketingListId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list share. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list share.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, remarketingListId)</code>
-  <pre>Gets one remarketing list share by remarketing list ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  remarketingListId: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, remarketingListId, body)</code>
-  <pre>Updates an existing remarketing list share. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  remarketingListId: string, Remarketing list ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-    "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-      "A String",
-    ],
-    "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-    "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing remarketing list share.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-    "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-      "A String",
-    ],
-    "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-    "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list's sharing information. Sharing allows other accounts or advertisers to target to your remarketing lists. This resource can be used to manage remarketing list sharing to other accounts and advertisers.
-      "sharedAdvertiserIds": [ # Advertisers that the remarketing list is shared with.
-        "A String",
-      ],
-      "kind": "dfareporting#remarketingListShare", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListShare".
-      "remarketingListId": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "sharedAccountIds": [ # Accounts that the remarketing list is shared with.
-        "A String",
-      ],
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.remarketingLists.html b/docs/dyn/dfareporting_v2_6.remarketingLists.html
deleted file mode 100644
index d85f1d8..0000000
--- a/docs/dyn/dfareporting_v2_6.remarketingLists.html
+++ /dev/null
@@ -1,532 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.remarketingLists.html">remarketingLists</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one remarketing list by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new remarketing list.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of remarketing lists, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing remarketing list.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one remarketing list by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new remarketing list.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of remarketing lists, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only remarketing lists owned by this advertiser. (required)
-  name: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "remarketing list*2015" will return objects with names like "remarketing list June 2015", "remarketing list April 2015", or simply "remarketing list 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "remarketing list" will match objects with name "my remarketing list", "remarketing list 2015", or simply "remarketing list".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  floodlightActivityId: string, Select only remarketing lists that have this floodlight activity ID.
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active or only inactive remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Remarketing list response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "remarketingLists": [ # Remarketing list collection.
-      { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-          "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-            "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-            "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-            "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-              { # A group clause made up of list population terms representing constraints joined by ORs.
-                "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-                  { # Remarketing List Population Rule Term.
-                    "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                    "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                    "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                    "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                    "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                    "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                  },
-                ],
-              },
-            ],
-          },
-          "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-          "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-          "description": "A String", # Remarketing list description.
-          "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-          "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-          "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-          "listSource": "A String", # Product from which this remarketing list was originated.
-          "active": True or False, # Whether this remarketing list is active.
-          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-        },
-    ],
-    "kind": "dfareporting#remarketingListsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingListsListResponse".
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing remarketing list. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing remarketing list.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-    "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-      "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-      "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-      "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-        { # A group clause made up of list population terms representing constraints joined by ORs.
-          "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-            { # Remarketing List Population Rule Term.
-              "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-              "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-              "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-              "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-              "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-            },
-          ],
-        },
-      ],
-    },
-    "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-    "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-    "listSource": "A String", # Product from which this remarketing list was originated.
-    "active": True or False, # Whether this remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource can be used to manage remarketing lists that are owned by your advertisers. To see all remarketing lists that are visible to your advertisers, including those that are shared to your advertiser or account, use the TargetableRemarketingLists resource.
-      "listPopulationRule": { # Remarketing List Population Rule. # Rule used to populate the remarketing list with users.
-        "floodlightActivityName": "A String", # Name of floodlight activity associated with this rule. This is a read-only, auto-generated field.
-        "floodlightActivityId": "A String", # Floodlight activity ID associated with this rule. This field can be left blank.
-        "listPopulationClauses": [ # Clauses that make up this list population rule. Clauses are joined by ANDs, and the clauses themselves are made up of list population terms which are joined by ORs.
-          { # A group clause made up of list population terms representing constraints joined by ORs.
-            "terms": [ # Terms of this list population clause. Each clause is made up of list population terms representing constraints and are joined by ORs.
-              { # Remarketing List Population Rule Term.
-                "remarketingListId": "A String", # ID of the list in question. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM.
-                "contains": True or False, # Will be true if the term should check if the user is in the list and false if the term should check if the user is not in the list. This field is only relevant when type is set to LIST_MEMBERSHIP_TERM. False by default.
-                "negation": True or False, # Whether to negate the comparison result of this term during rule evaluation. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "value": "A String", # Literal to compare the variable to. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "variableFriendlyName": "A String", # Friendly name of this term's variable. This is a read-only, auto-generated field. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM.
-                "operator": "A String", # Comparison operator of this term. This field is only relevant when type is left unset or set to CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-                "type": "A String", # List population term type determines the applicable fields in this object. If left unset or set to CUSTOM_VARIABLE_TERM, then variableName, variableFriendlyName, operator, value, and negation are applicable. If set to LIST_MEMBERSHIP_TERM then remarketingListId and contains are applicable. If set to REFERRER_TERM then operator, value, and negation are applicable.
-                "variableName": "A String", # Name of the variable (U1, U2, etc.) being compared in this term. This field is only relevant when type is set to null, CUSTOM_VARIABLE_TERM or REFERRER_TERM.
-              },
-            ],
-          },
-        ],
-      },
-      "kind": "dfareporting#remarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#remarketingList".
-      "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      "description": "A String", # Remarketing list description.
-      "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
-      "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
-      "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
-      "listSource": "A String", # Product from which this remarketing list was originated.
-      "active": True or False, # Whether this remarketing list is active.
-      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "id": "A String", # Remarketing list ID. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.reports.compatibleFields.html b/docs/dyn/dfareporting_v2_6.reports.compatibleFields.html
deleted file mode 100644
index 85c1a6e..0000000
--- a/docs/dyn/dfareporting_v2_6.reports.compatibleFields.html
+++ /dev/null
@@ -1,551 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.reports.html">reports</a> . <a href="dfareporting_v2_6.reports.compatibleFields.html">compatibleFields</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#query">query(profileId, body)</a></code></p>
-<p class="firstline">Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="query">query(profileId, body)</code>
-  <pre>Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a response to the queryCompatibleFields method.
-    "kind": "dfareporting#compatibleFields", # The kind of resource this is, in this case dfareporting#compatibleFields.
-    "reachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "REACH". # Contains items that are compatible to be selected for a report of type "REACH".
-      "kind": "dfareporting#reachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "reachByFrequencyMetrics": [ # Metrics which are compatible to be selected in the "reachByFrequencyMetricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-    },
-    "pathToConversionReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "PATH_TO_CONVERSION". # Contains items that are compatible to be selected for a report of type "PATH_TO_CONVERSION".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "perInteractionDimensions": [ # Per-interaction dimensions which are compatible to be selected in the "perInteractionDimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "kind": "dfareporting#pathToConversionReportCompatibleFields", # The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.
-      "conversionDimensions": [ # Conversion dimensions which are compatible to be selected in the "conversionDimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "customFloodlightVariables": [ # Custom floodlight variables which are compatible to be selected in the "customFloodlightVariables" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "crossDimensionReachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH". # Contains items that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # Dimensions which are compatible to be selected in the "breakdown" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#crossDimensionReachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.
-      "overlapMetrics": [ # Metrics which are compatible to be selected in the "overlapMetricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "floodlightReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "FlOODLIGHT". # Contains items that are compatible to be selected for a report of type "FLOODLIGHT".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#floodlightReportCompatibleFields", # The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-    "reportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "STANDARD". # Contains items that are compatible to be selected for a report of type "STANDARD".
-      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "kind": "dfareporting#reportCompatibleFields", # The kind of resource this is, in this case dfareporting#reportCompatibleFields.
-      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
-        { # Represents a metric.
-          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
-          "name": "A String", # The metric name, e.g. dfa:impressions
-        },
-      ],
-      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
-        { # Represents a dimension.
-          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
-          "name": "A String", # The dimension name, e.g. dfa:advertiser
-        },
-      ],
-    },
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.reports.html b/docs/dyn/dfareporting_v2_6.reports.html
deleted file mode 100644
index 78700a9..0000000
--- a/docs/dyn/dfareporting_v2_6.reports.html
+++ /dev/null
@@ -1,2795 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.reports.html">reports</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="dfareporting_v2_6.reports.compatibleFields.html">compatibleFields()</a></code>
-</p>
-<p class="firstline">Returns the compatibleFields Resource.</p>
-
-<p class="toc_element">
-  <code><a href="dfareporting_v2_6.reports.files.html">files()</a></code>
-</p>
-<p class="firstline">Returns the files Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, reportId)</a></code></p>
-<p class="firstline">Deletes a report by its ID.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, reportId)</a></code></p>
-<p class="firstline">Retrieves a report by its ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Creates a report.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
-<p class="firstline">Retrieves list of reports.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, reportId, body)</a></code></p>
-<p class="firstline">Updates a report. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#run">run(profileId, reportId, synchronous=None)</a></code></p>
-<p class="firstline">Runs a report.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, reportId, body)</a></code></p>
-<p class="firstline">Updates a report.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, reportId)</code>
-  <pre>Deletes a report by its ID.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, reportId)</code>
-  <pre>Retrieves a report by its ID.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Creates a report.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
-  <pre>Retrieves list of reports.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  pageToken: string, The value of the nextToken from the previous result page.
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
-    Allowed values
-      ASCENDING - Ascending order.
-      DESCENDING - Descending order.
-  sortField: string, The field by which to sort the list.
-    Allowed values
-      ID - Sort by report ID.
-      LAST_MODIFIED_TIME - Sort by 'lastModifiedTime' field.
-      NAME - Sort by name of reports.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
-    Allowed values
-      ALL - All reports in account.
-      MINE - My reports.
-
-Returns:
-  An object of the form:
-
-    { # Represents the list of reports.
-    "nextPageToken": "A String", # Continuation token used to page through reports. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
-    "items": [ # The reports returned in this response.
-      { # Represents a Report resource.
-          "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-            "conversionDimensions": [ # The list of conversion dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "reportProperties": { # The properties of the report.
-              "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-              "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-              "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-              "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-              "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-              "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-              "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-            },
-            "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "customRichMediaEvents": [ # The list of custom rich media events to include.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-          },
-          "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-          "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-          "name": "A String", # The name of the report.
-          "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-            "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-            "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-                # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-            "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-            "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-            "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-            "repeats": "A String", # The interval for which the report is repeated. Note:
-                # - "DAILY" also requires field "every" to be set.
-                # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-                # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-            "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-              "A String",
-            ],
-          },
-          "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-          "ownerProfileId": "A String", # The user profile id of the owner of this report.
-          "reachCriteria": { # The report criteria for a report of type "REACH".
-            "activities": { # Represents an activity group. # Activity group.
-              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-              "metricNames": [ # List of names of floodlight activity metrics.
-                "A String",
-              ],
-            },
-            "dimensions": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-              "A String",
-            ],
-            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-            },
-            "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-          },
-          "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-            "dimensions": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-            "customRichMediaEvents": [ # The list of custom rich media events to include.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "reportProperties": { # The properties of the report.
-              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-              "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-            },
-          },
-          "fileName": "A String", # The filename used when generating report files for this report.
-          "delivery": { # The report's email delivery settings.
-            "message": "A String", # The message to be sent with each email.
-            "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-            "recipients": [ # The list of recipients to which to email the report.
-              { # Represents a recipient.
-                "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-                "deliveryType": "A String", # The delivery type for the recipient.
-                "email": "A String", # The email address of the recipient.
-              },
-            ],
-            "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-          },
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "criteria": { # The report criteria for a report of type "STANDARD".
-            "activities": { # Represents an activity group. # Activity group.
-              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-              "metricNames": [ # List of names of floodlight activity metrics.
-                "A String",
-              ],
-            },
-            "dimensions": [ # The list of standard dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range for which this report should be run.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-                { # Represents a DimensionValue resource.
-                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                  "value": "A String", # The value of the dimension.
-                  "dimensionName": "A String", # The name of the dimension.
-                  "etag": "A String", # The eTag of this response for caching purposes.
-                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                  "id": "A String", # The ID associated with the value if available.
-                },
-              ],
-            },
-          },
-          "id": "A String", # The unique ID identifying this report resource.
-          "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-          "type": "A String", # The type of the report.
-          "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-            "breakdown": [ # The list of dimensions the report should include.
-              { # Represents a sorted dimension.
-                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-                "name": "A String", # The name of the dimension.
-                "sortOrder": "A String", # An optional sort order for the dimension column.
-              },
-            ],
-            "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-              "A String",
-            ],
-            "metricNames": [ # The list of names of metrics the report should include.
-              "A String",
-            ],
-            "dateRange": { # Represents a date range. # The date range this report should be run for.
-              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-            },
-            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-              { # Represents a DimensionValue resource.
-                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-                "value": "A String", # The value of the dimension.
-                "dimensionName": "A String", # The name of the dimension.
-                "etag": "A String", # The eTag of this response for caching purposes.
-                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-                "id": "A String", # The ID associated with the value if available.
-              },
-            ],
-            "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-            "dimension": "A String", # The dimension option.
-          },
-          "accountId": "A String", # The account ID to which this report belongs.
-        },
-    ],
-    "kind": "dfareporting#reportList", # The kind of list this is, in this case dfareporting#reportList.
-    "etag": "A String", # The eTag of this response for caching purposes.
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, reportId, body)</code>
-  <pre>Updates a report. This method supports patch semantics.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="run">run(profileId, reportId, synchronous=None)</code>
-  <pre>Runs a report.
-
-Args:
-  profileId: string, The DFA profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  synchronous: boolean, If set and true, tries to run the report synchronously.
-
-Returns:
-  An object of the form:
-
-    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
-    "status": "A String", # The status of the report file.
-    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
-    "format": "A String", # The output format of the report. Only available once the file is available.
-    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
-      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-    },
-    "fileName": "A String", # The filename of the file.
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "reportId": "A String", # The ID of the report this file was generated from.
-    "urls": { # The URLs where the completed report file can be downloaded.
-      "browserUrl": "A String", # The URL for downloading the report data through a browser.
-      "apiUrl": "A String", # The URL for downloading the report data through the API.
-    },
-    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
-    "id": "A String", # The unique ID of this report file.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, reportId, body)</code>
-  <pre>Updates a report.
-
-Args:
-  profileId: string, The DFA user profile ID. (required)
-  reportId: string, The ID of the report. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents a Report resource.
-    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-      "conversionDimensions": [ # The list of conversion dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "reportProperties": { # The properties of the report.
-        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-      },
-      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-    },
-    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-    "name": "A String", # The name of the report.
-    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-      "repeats": "A String", # The interval for which the report is repeated. Note:
-          # - "DAILY" also requires field "every" to be set.
-          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-        "A String",
-      ],
-    },
-    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-    "ownerProfileId": "A String", # The user profile id of the owner of this report.
-    "reachCriteria": { # The report criteria for a report of type "REACH".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-        "A String",
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-    },
-    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-      "dimensions": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "customRichMediaEvents": [ # The list of custom rich media events to include.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "reportProperties": { # The properties of the report.
-        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-      },
-    },
-    "fileName": "A String", # The filename used when generating report files for this report.
-    "delivery": { # The report's email delivery settings.
-      "message": "A String", # The message to be sent with each email.
-      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-      "recipients": [ # The list of recipients to which to email the report.
-        { # Represents a recipient.
-          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-          "deliveryType": "A String", # The delivery type for the recipient.
-          "email": "A String", # The email address of the recipient.
-        },
-      ],
-      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-    },
-    "etag": "A String", # The eTag of this response for caching purposes.
-    "criteria": { # The report criteria for a report of type "STANDARD".
-      "activities": { # Represents an activity group. # Activity group.
-        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "metricNames": [ # List of names of floodlight activity metrics.
-          "A String",
-        ],
-      },
-      "dimensions": [ # The list of standard dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range for which this report should be run.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-      },
-    },
-    "id": "A String", # The unique ID identifying this report resource.
-    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-    "type": "A String", # The type of the report.
-    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-      "breakdown": [ # The list of dimensions the report should include.
-        { # Represents a sorted dimension.
-          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-          "name": "A String", # The name of the dimension.
-          "sortOrder": "A String", # An optional sort order for the dimension column.
-        },
-      ],
-      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-        "A String",
-      ],
-      "metricNames": [ # The list of names of metrics the report should include.
-        "A String",
-      ],
-      "dateRange": { # Represents a date range. # The date range this report should be run for.
-        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-      },
-      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-        { # Represents a DimensionValue resource.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-      ],
-      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-      "dimension": "A String", # The dimension option.
-    },
-    "accountId": "A String", # The account ID to which this report belongs.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Represents a Report resource.
-      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
-        "conversionDimensions": [ # The list of conversion dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "reportProperties": { # The properties of the report.
-          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
-          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
-          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
-          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
-        },
-        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-      },
-      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
-      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
-      "name": "A String", # The name of the report.
-      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
-        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
-        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
-            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
-        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
-        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
-        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
-        "repeats": "A String", # The interval for which the report is repeated. Note:
-            # - "DAILY" also requires field "every" to be set.
-            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
-            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
-        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
-          "A String",
-        ],
-      },
-      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
-      "ownerProfileId": "A String", # The user profile id of the owner of this report.
-      "reachCriteria": { # The report criteria for a report of type "REACH".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
-          "A String",
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
-      },
-      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
-        "dimensions": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "customRichMediaEvents": [ # The list of custom rich media events to include.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "reportProperties": { # The properties of the report.
-          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
-          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
-          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
-        },
-      },
-      "fileName": "A String", # The filename used when generating report files for this report.
-      "delivery": { # The report's email delivery settings.
-        "message": "A String", # The message to be sent with each email.
-        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
-        "recipients": [ # The list of recipients to which to email the report.
-          { # Represents a recipient.
-            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
-            "deliveryType": "A String", # The delivery type for the recipient.
-            "email": "A String", # The email address of the recipient.
-          },
-        ],
-        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
-      },
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "criteria": { # The report criteria for a report of type "STANDARD".
-        "activities": { # Represents an activity group. # Activity group.
-          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
-          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-          "metricNames": [ # List of names of floodlight activity metrics.
-            "A String",
-          ],
-        },
-        "dimensions": [ # The list of standard dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range for which this report should be run.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
-          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
-          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
-            { # Represents a DimensionValue resource.
-              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-              "value": "A String", # The value of the dimension.
-              "dimensionName": "A String", # The name of the dimension.
-              "etag": "A String", # The eTag of this response for caching purposes.
-              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-              "id": "A String", # The ID associated with the value if available.
-            },
-          ],
-        },
-      },
-      "id": "A String", # The unique ID identifying this report resource.
-      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
-      "type": "A String", # The type of the report.
-      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
-        "breakdown": [ # The list of dimensions the report should include.
-          { # Represents a sorted dimension.
-            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
-            "name": "A String", # The name of the dimension.
-            "sortOrder": "A String", # An optional sort order for the dimension column.
-          },
-        ],
-        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
-          "A String",
-        ],
-        "metricNames": [ # The list of names of metrics the report should include.
-          "A String",
-        ],
-        "dateRange": { # Represents a date range. # The date range this report should be run for.
-          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
-          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
-          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
-        },
-        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
-          { # Represents a DimensionValue resource.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-        ],
-        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
-        "dimension": "A String", # The dimension option.
-      },
-      "accountId": "A String", # The account ID to which this report belongs.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.sites.html b/docs/dyn/dfareporting_v2_6.sites.html
deleted file mode 100644
index 0b0556b..0000000
--- a/docs/dyn/dfareporting_v2_6.sites.html
+++ /dev/null
@@ -1,675 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.sites.html">sites</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one site by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new site.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</a></code></p>
-<p class="firstline">Retrieves a list of sites, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing site. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing site.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one site by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Site ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</code>
-  <pre>Retrieves a list of sites, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  unmappedSite: boolean, Select only sites that have not been mapped to a directory site.
-  campaignIds: string, Select only sites with these campaign IDs. (repeated)
-  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  acceptsPublisherPaidPlacements: boolean, Select only sites that accept publisher paid placements.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
-  maxResults: integer, Maximum number of results to return.
-  adWordsSite: boolean, Select only AdWords sites.
-  approved: boolean, Select only approved sites.
-  searchString: string, Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, "site*2015" will return objects with names like "site June 2015", "site April 2015", or simply "site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "site" will match objects with name "my site", "site 2015", or simply "site".
-  subaccountId: string, Select only sites with this subaccount ID.
-  directorySiteIds: string, Select only sites with these directory site IDs. (repeated)
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only sites with these IDs. (repeated)
-
-Returns:
-  An object of the form:
-
-    { # Site List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#sitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sitesListResponse".
-    "sites": [ # Site collection.
-      { # Contains properties of a site.
-          "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-          "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteSettings": { # Site Settings # Site-wide settings.
-            "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-            "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-            "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            },
-            "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-            "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-              "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-              "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-              "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-              "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-            },
-            "creativeSettings": { # Creative Settings # Site-wide creative settings.
-              "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-              "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-            },
-            "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-          },
-          "approved": True or False, # Whether this site is approved.
-          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-            "value": "A String", # The value of the dimension.
-            "dimensionName": "A String", # The name of the dimension.
-            "etag": "A String", # The eTag of this response for caching purposes.
-            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-            "id": "A String", # The ID associated with the value if available.
-          },
-          "siteContacts": [ # Site contacts.
-            { # Site Contact
-              "firstName": "A String", # First name of this site contact.
-              "title": "A String", # Title or designation of this site contact.
-              "lastName": "A String", # Last name of this site contact.
-              "address": "A String", # Address of this site contact.
-              "email": "A String", # Email address of this site contact. This is a required field.
-              "phone": "A String", # Primary phone number of this site contact.
-              "contactType": "A String", # Site contact type.
-              "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-            },
-          ],
-          "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-          "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-          "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing site. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Site ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing site.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a site.
-    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      },
-      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-      },
-      "creativeSettings": { # Creative Settings # Site-wide creative settings.
-        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-      },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-    },
-    "approved": True or False, # Whether this site is approved.
-    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "siteContacts": [ # Site contacts.
-      { # Site Contact
-        "firstName": "A String", # First name of this site contact.
-        "title": "A String", # Title or designation of this site contact.
-        "lastName": "A String", # Last name of this site contact.
-        "address": "A String", # Address of this site contact.
-        "email": "A String", # Email address of this site contact. This is a required field.
-        "phone": "A String", # Primary phone number of this site contact.
-        "contactType": "A String", # Site contact type.
-        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-      },
-    ],
-    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a site.
-      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
-      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
-      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
-        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
-        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        },
-        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
-        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
-          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
-          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
-          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
-          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
-        },
-        "creativeSettings": { # Creative Settings # Site-wide creative settings.
-          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
-        },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
-      },
-      "approved": True or False, # Whether this site is approved.
-      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
-        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-        "value": "A String", # The value of the dimension.
-        "dimensionName": "A String", # The name of the dimension.
-        "etag": "A String", # The eTag of this response for caching purposes.
-        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-        "id": "A String", # The ID associated with the value if available.
-      },
-      "siteContacts": [ # Site contacts.
-        { # Site Contact
-          "firstName": "A String", # First name of this site contact.
-          "title": "A String", # Title or designation of this site contact.
-          "lastName": "A String", # Last name of this site contact.
-          "address": "A String", # Address of this site contact.
-          "email": "A String", # Email address of this site contact. This is a required field.
-          "phone": "A String", # Primary phone number of this site contact.
-          "contactType": "A String", # Site contact type.
-          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
-        },
-      ],
-      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
-      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
-      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.sizes.html b/docs/dyn/dfareporting_v2_6.sizes.html
deleted file mode 100644
index 3791722..0000000
--- a/docs/dyn/dfareporting_v2_6.sizes.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.sizes.html">sizes</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one size by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new size.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</a></code></p>
-<p class="firstline">Retrieves a list of sizes, possibly filtered.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one size by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Size ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
-    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new size.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Represents the dimensions of ads, placements, creatives, or creative assets.
-  "width": 42, # Width of this size.
-  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-  "height": 42, # Height of this size.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
-    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</code>
-  <pre>Retrieves a list of sizes, possibly filtered.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  iabStandard: boolean, Select only IAB standard sizes.
-  width: integer, Select only sizes with this width.
-  ids: string, Select only sizes with these IDs. (repeated)
-  height: integer, Select only sizes with this height.
-
-Returns:
-  An object of the form:
-
-    { # Size List Response
-    "kind": "dfareporting#sizesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sizesListResponse".
-    "sizes": [ # Size collection.
-      { # Represents the dimensions of ads, placements, creatives, or creative assets.
-        "width": 42, # Width of this size.
-        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
-        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
-        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.subaccounts.html b/docs/dyn/dfareporting_v2_6.subaccounts.html
deleted file mode 100644
index 371cc86..0000000
--- a/docs/dyn/dfareporting_v2_6.subaccounts.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.subaccounts.html">subaccounts</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one subaccount by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new subaccount.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Gets a list of subaccounts, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing subaccount. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing subaccount.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one subaccount by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Subaccount ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new subaccount.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Gets a list of subaccounts, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "subaccount*2015" will return objects with names like "subaccount June 2015", "subaccount April 2015", or simply "subaccount 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "subaccount" will match objects with name "my subaccount", "subaccount 2015", or simply "subaccount".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  ids: string, Select only subaccounts with these IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Subaccount List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#subaccountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccountsListResponse".
-    "subaccounts": [ # Subaccount collection.
-      { # Contains properties of a DCM subaccount.
-          "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-          "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-            "A String",
-          ],
-          "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-          "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-          "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing subaccount. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Subaccount ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing subaccount.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of a DCM subaccount.
-    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-      "A String",
-    ],
-    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a DCM subaccount.
-      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
-      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
-        "A String",
-      ],
-      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
-      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
-      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_6.targetableRemarketingLists.html b/docs/dyn/dfareporting_v2_6.targetableRemarketingLists.html
deleted file mode 100644
index 89df14b..0000000
--- a/docs/dyn/dfareporting_v2_6.targetableRemarketingLists.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.targetableRemarketingLists.html">targetableRemarketingLists</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one remarketing list by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.</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="get">get(profileId, id)</code>
-  <pre>Gets one remarketing list by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, Remarketing list ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.
-    "kind": "dfareporting#targetableRemarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingList".
-    "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-    "description": "A String", # Targetable remarketing list description.
-    "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the targetable remarketing list without an impression.
-    "name": "A String", # Name of the targetable remarketing list. Is no greater than 128 characters long.
-    "advertiserId": "A String", # Dimension value for the advertiser ID that owns this targetable remarketing list.
-    "listSource": "A String", # Product from which this targetable remarketing list was originated.
-    "active": True or False, # Whether this targetable remarketing list is active.
-    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser.
-      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-      "value": "A String", # The value of the dimension.
-      "dimensionName": "A String", # The name of the dimension.
-      "etag": "A String", # The eTag of this response for caching purposes.
-      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-      "id": "A String", # The ID associated with the value if available.
-    },
-    "id": "A String", # Targetable remarketing list ID.
-    "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  advertiserId: string, Select only targetable remarketing lists targetable by these advertisers. (required)
-  name: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "remarketing list*2015" will return objects with names like "remarketing list June 2015", "remarketing list April 2015", or simply "remarketing list 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "remarketing list" will match objects with name "my remarketing list", "remarketing list 2015", or simply "remarketing list".
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-  maxResults: integer, Maximum number of results to return.
-  active: boolean, Select only active or only inactive targetable remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-
-Returns:
-  An object of the form:
-
-    { # Targetable remarketing list response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#targetableRemarketingListsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingListsListResponse".
-    "targetableRemarketingLists": [ # Targetable remarketing list collection.
-      { # Contains properties of a targetable remarketing list. Remarketing enables you to create lists of users who have performed specific actions on a site, then target ads to members of those lists. This resource is a read-only view of a remarketing list to be used to faciliate targeting ads to specific lists. Remarketing lists that are owned by your advertisers and those that are shared to your advertisers or account are accessible via this resource. To manage remarketing lists that are owned by your advertisers, use the RemarketingLists resource.
-        "kind": "dfareporting#targetableRemarketingList", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#targetableRemarketingList".
-        "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-        "description": "A String", # Targetable remarketing list description.
-        "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-        "lifeSpan": "A String", # Number of days that a user should remain in the targetable remarketing list without an impression.
-        "name": "A String", # Name of the targetable remarketing list. Is no greater than 128 characters long.
-        "advertiserId": "A String", # Dimension value for the advertiser ID that owns this targetable remarketing list.
-        "listSource": "A String", # Product from which this targetable remarketing list was originated.
-        "active": True or False, # Whether this targetable remarketing list is active.
-        "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser.
-          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
-          "value": "A String", # The value of the dimension.
-          "dimensionName": "A String", # The name of the dimension.
-          "etag": "A String", # The eTag of this response for caching purposes.
-          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
-          "id": "A String", # The ID associated with the value if available.
-        },
-        "id": "A String", # Targetable remarketing list ID.
-        "accountId": "A String", # Account ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/dfareporting_v2_6.userRoles.html b/docs/dyn/dfareporting_v2_6.userRoles.html
deleted file mode 100644
index a53ed14..0000000
--- a/docs/dyn/dfareporting_v2_6.userRoles.html
+++ /dev/null
@@ -1,361 +0,0 @@
-<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="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.userRoles.html">userRoles</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#delete">delete(profileId, id)</a></code></p>
-<p class="firstline">Deletes an existing user role.</p>
-<p class="toc_element">
-  <code><a href="#get">get(profileId, id)</a></code></p>
-<p class="firstline">Gets one user role by ID.</p>
-<p class="toc_element">
-  <code><a href="#insert">insert(profileId, body)</a></code></p>
-<p class="firstline">Inserts a new user role.</p>
-<p class="toc_element">
-  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</a></code></p>
-<p class="firstline">Retrieves a list of user roles, possibly filtered. This method supports paging.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
-<p class="firstline">Updates an existing user role. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#update">update(profileId, body)</a></code></p>
-<p class="firstline">Updates an existing user role.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(profileId, id)</code>
-  <pre>Deletes an existing user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(profileId, id)</code>
-  <pre>Gets one user role by ID.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="insert">insert(profileId, body)</code>
-  <pre>Inserts a new user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</code>
-  <pre>Retrieves a list of user roles, possibly filtered. This method supports paging.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "userrole*2015" will return objects with names like "userrole June 2015", "userrole April 2015", or simply "userrole 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "userrole" will match objects with name "my userrole", "userrole 2015", or simply "userrole".
-  subaccountId: string, Select only user roles that belong to this subaccount.
-  pageToken: string, Value of the nextPageToken from the previous result page.
-  ids: string, Select only user roles with the specified IDs. (repeated)
-  maxResults: integer, Maximum number of results to return.
-  accountUserRoleOnly: boolean, Select only account level user roles not associated with any specific subaccount.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
-    Allowed values
-      ASCENDING - 
-      DESCENDING - 
-  sortField: string, Field by which to sort the list.
-    Allowed values
-      ID - 
-      NAME - 
-
-Returns:
-  An object of the form:
-
-    { # User Role List Response
-    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
-    "kind": "dfareporting#userRolesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolesListResponse".
-    "userRoles": [ # User role collection.
-      { # Contains properties of auser role, which is used to manage user access.
-          "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-          "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-          "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-          "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-          "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-          "permissions": [ # List of permissions associated with this user role.
-            { # Contains properties of a user role permission.
-              "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-              "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-              "availability": "A String", # Levels of availability for a user role permission.
-              "name": "A String", # Name of this user role permission.
-              "id": "A String", # ID of this user role permission.
-            },
-          ],
-          "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-          "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-        },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(profileId, id, body)</code>
-  <pre>Updates an existing user role. This method supports patch semantics.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  id: string, User role ID. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(profileId, body)</code>
-  <pre>Updates an existing user role.
-
-Args:
-  profileId: string, User profile ID associated with this request. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Contains properties of auser role, which is used to manage user access.
-    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-    "permissions": [ # List of permissions associated with this user role.
-      { # Contains properties of a user role permission.
-        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-        "availability": "A String", # Levels of availability for a user role permission.
-        "name": "A String", # Name of this user role permission.
-        "id": "A String", # ID of this user role permission.
-      },
-    ],
-    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # Contains properties of auser role, which is used to manage user access.
-      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
-      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
-      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
-      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
-      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
-      "permissions": [ # List of permissions associated with this user role.
-        { # Contains properties of a user role permission.
-          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
-          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
-          "availability": "A String", # Levels of availability for a user role permission.
-          "name": "A String", # Name of this user role permission.
-          "id": "A String", # ID of this user role permission.
-        },
-      ],
-      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
-      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_7.accountUserProfiles.html b/docs/dyn/dfareporting_v2_7.accountUserProfiles.html
index 07e5477..7d53a2b 100644
--- a/docs/dyn/dfareporting_v2_7.accountUserProfiles.html
+++ b/docs/dyn/dfareporting_v2_7.accountUserProfiles.html
@@ -314,7 +314,7 @@
   ids: string, Select only user profiles with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.accounts.html b/docs/dyn/dfareporting_v2_7.accounts.html
index 48a1a23..d8d86f4 100644
--- a/docs/dyn/dfareporting_v2_7.accounts.html
+++ b/docs/dyn/dfareporting_v2_7.accounts.html
@@ -108,7 +108,7 @@
         "A String",
       ],
       "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
       "currencyId": "A String", # ID of currency associated with this account. This is a required field.
           # Acceptable values are:
           # - "1" for USD
@@ -158,6 +158,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
       "accountPermissionIds": [ # Account permissions assigned to this account.
         "A String",
@@ -183,7 +184,7 @@
           # - "tr" (Turkish)
           # - "zh-CN" (Chinese Simplified)
           # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
       "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
         "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
             # Acceptable values are:
@@ -203,8 +204,8 @@
             # - "13" for "America/Sao_Paulo"
         "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
         "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
       },
       "active": True or False, # Whether this account is active.
@@ -229,7 +230,7 @@
   ids: string, Select only accounts with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -249,7 +250,7 @@
             "A String",
           ],
           "description": "A String", # Description of this account.
-          "maximumImageSize": "A String", # Maximum image size allowed for this account.
+          "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
           "currencyId": "A String", # ID of currency associated with this account. This is a required field.
               # Acceptable values are:
               # - "1" for USD
@@ -299,6 +300,7 @@
               # - "46" for AED
               # - "47" for BGN
               # - "48" for HRK
+              # - "49" for MXN
           "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
           "accountPermissionIds": [ # Account permissions assigned to this account.
             "A String",
@@ -324,7 +326,7 @@
               # - "tr" (Turkish)
               # - "zh-CN" (Chinese Simplified)
               # - "zh-TW" (Chinese Traditional)
-          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
           "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
             "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
                 # Acceptable values are:
@@ -344,8 +346,8 @@
                 # - "13" for "America/Sao_Paulo"
             "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
             "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
             },
           },
           "active": True or False, # Whether this account is active.
@@ -389,7 +391,7 @@
       "A String",
     ],
     "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
+    "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
     "currencyId": "A String", # ID of currency associated with this account. This is a required field.
         # Acceptable values are:
         # - "1" for USD
@@ -439,6 +441,7 @@
         # - "46" for AED
         # - "47" for BGN
         # - "48" for HRK
+        # - "49" for MXN
     "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
     "accountPermissionIds": [ # Account permissions assigned to this account.
       "A String",
@@ -464,7 +467,7 @@
         # - "tr" (Turkish)
         # - "zh-CN" (Chinese Simplified)
         # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
     "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
       "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
           # Acceptable values are:
@@ -484,8 +487,8 @@
           # - "13" for "America/Sao_Paulo"
       "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
     },
     "active": True or False, # Whether this account is active.
@@ -506,7 +509,7 @@
         "A String",
       ],
       "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
       "currencyId": "A String", # ID of currency associated with this account. This is a required field.
           # Acceptable values are:
           # - "1" for USD
@@ -556,6 +559,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
       "accountPermissionIds": [ # Account permissions assigned to this account.
         "A String",
@@ -581,7 +585,7 @@
           # - "tr" (Turkish)
           # - "zh-CN" (Chinese Simplified)
           # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
       "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
         "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
             # Acceptable values are:
@@ -601,8 +605,8 @@
             # - "13" for "America/Sao_Paulo"
         "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
         "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
       },
       "active": True or False, # Whether this account is active.
@@ -629,7 +633,7 @@
       "A String",
     ],
     "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
+    "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
     "currencyId": "A String", # ID of currency associated with this account. This is a required field.
         # Acceptable values are:
         # - "1" for USD
@@ -679,6 +683,7 @@
         # - "46" for AED
         # - "47" for BGN
         # - "48" for HRK
+        # - "49" for MXN
     "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
     "accountPermissionIds": [ # Account permissions assigned to this account.
       "A String",
@@ -704,7 +709,7 @@
         # - "tr" (Turkish)
         # - "zh-CN" (Chinese Simplified)
         # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
     "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
       "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
           # Acceptable values are:
@@ -724,8 +729,8 @@
           # - "13" for "America/Sao_Paulo"
       "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
     },
     "active": True or False, # Whether this account is active.
@@ -746,7 +751,7 @@
         "A String",
       ],
       "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
       "currencyId": "A String", # ID of currency associated with this account. This is a required field.
           # Acceptable values are:
           # - "1" for USD
@@ -796,6 +801,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
       "accountPermissionIds": [ # Account permissions assigned to this account.
         "A String",
@@ -821,7 +827,7 @@
           # - "tr" (Turkish)
           # - "zh-CN" (Chinese Simplified)
           # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
       "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
         "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
             # Acceptable values are:
@@ -841,8 +847,8 @@
             # - "13" for "America/Sao_Paulo"
         "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
         "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
       },
       "active": True or False, # Whether this account is active.
diff --git a/docs/dyn/dfareporting_v2_7.ads.html b/docs/dyn/dfareporting_v2_7.ads.html
index dcbaa9e..04573d8 100644
--- a/docs/dyn/dfareporting_v2_7.ads.html
+++ b/docs/dyn/dfareporting_v2_7.ads.html
@@ -186,10 +186,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -272,11 +272,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -285,7 +286,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -372,11 +372,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -407,7 +407,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -538,10 +538,10 @@
       "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
       "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
       "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
       },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
     },
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -624,11 +624,12 @@
     "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
       "creativeAssignments": [ # Creative assignments in this creative rotation.
         { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
           "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
           "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
               # Applicable when the creative type is any of the following:
+              # - DISPLAY
               # - RICH_MEDIA_INPAGE
               # - RICH_MEDIA_INPAGE_FLOATING
               # - RICH_MEDIA_IM_EXPAND
@@ -637,7 +638,6 @@
               # - RICH_MEDIA_MOBILE_IN_APP
               # - RICH_MEDIA_MULTI_FLOATING
               # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
               # - VPAID_LINEAR
               # - VPAID_NON_LINEAR
             { # Rich Media Exit Override.
@@ -724,11 +724,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
     "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -759,7 +759,7 @@
     "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -884,10 +884,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -970,11 +970,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -983,7 +984,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -1070,11 +1070,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -1105,7 +1105,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1159,7 +1159,7 @@
   creativeOptimizationConfigurationIds: string, Select only ads with these creative optimization configuration IDs. (repeated)
   sslCompliant: boolean, Select only ads that are SSL-compliant.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -1281,10 +1281,10 @@
             "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
             "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
             "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
             },
-            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
           },
           "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
             "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1367,11 +1367,12 @@
           "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
             "creativeAssignments": [ # Creative assignments in this creative rotation.
               { # Creative Assignment.
-                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
                 "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
                 "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                     # Applicable when the creative type is any of the following:
+                    # - DISPLAY
                     # - RICH_MEDIA_INPAGE
                     # - RICH_MEDIA_INPAGE_FLOATING
                     # - RICH_MEDIA_IM_EXPAND
@@ -1380,7 +1381,6 @@
                     # - RICH_MEDIA_MOBILE_IN_APP
                     # - RICH_MEDIA_MULTI_FLOATING
                     # - RICH_MEDIA_PEEL_DOWN
-                    # - ADVANCED_BANNER
                     # - VPAID_LINEAR
                     # - VPAID_NON_LINEAR
                   { # Rich Media Exit Override.
@@ -1467,11 +1467,11 @@
             "id": "A String", # The ID associated with the value if available.
           },
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
           "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -1502,7 +1502,7 @@
           "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
           "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
             "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+            "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
               42,
             ],
             "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1650,10 +1650,10 @@
       "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
       "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
       "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
       },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
     },
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1736,11 +1736,12 @@
     "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
       "creativeAssignments": [ # Creative assignments in this creative rotation.
         { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
           "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
           "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
               # Applicable when the creative type is any of the following:
+              # - DISPLAY
               # - RICH_MEDIA_INPAGE
               # - RICH_MEDIA_INPAGE_FLOATING
               # - RICH_MEDIA_IM_EXPAND
@@ -1749,7 +1750,6 @@
               # - RICH_MEDIA_MOBILE_IN_APP
               # - RICH_MEDIA_MULTI_FLOATING
               # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
               # - VPAID_LINEAR
               # - VPAID_NON_LINEAR
             { # Rich Media Exit Override.
@@ -1836,11 +1836,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
     "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -1871,7 +1871,7 @@
     "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1996,10 +1996,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -2082,11 +2082,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -2095,7 +2096,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -2182,11 +2182,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -2217,7 +2217,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -2348,10 +2348,10 @@
       "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
       "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
       "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
       },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
     },
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -2434,11 +2434,12 @@
     "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
       "creativeAssignments": [ # Creative assignments in this creative rotation.
         { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
           "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
           "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
               # Applicable when the creative type is any of the following:
+              # - DISPLAY
               # - RICH_MEDIA_INPAGE
               # - RICH_MEDIA_INPAGE_FLOATING
               # - RICH_MEDIA_IM_EXPAND
@@ -2447,7 +2448,6 @@
               # - RICH_MEDIA_MOBILE_IN_APP
               # - RICH_MEDIA_MULTI_FLOATING
               # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
               # - VPAID_LINEAR
               # - VPAID_NON_LINEAR
             { # Rich Media Exit Override.
@@ -2534,11 +2534,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
     "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -2569,7 +2569,7 @@
     "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -2694,10 +2694,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -2780,11 +2780,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -2793,7 +2794,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -2880,11 +2880,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -2915,7 +2915,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
diff --git a/docs/dyn/dfareporting_v2_7.advertiserGroups.html b/docs/dyn/dfareporting_v2_7.advertiserGroups.html
index a2cdfd5..8eca289 100644
--- a/docs/dyn/dfareporting_v2_7.advertiserGroups.html
+++ b/docs/dyn/dfareporting_v2_7.advertiserGroups.html
@@ -167,7 +167,7 @@
       NAME - 
   ids: string, Select only advertiser groups with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.advertisers.html b/docs/dyn/dfareporting_v2_7.advertisers.html
index d2ebd1d..7c03cbb 100644
--- a/docs/dyn/dfareporting_v2_7.advertisers.html
+++ b/docs/dyn/dfareporting_v2_7.advertisers.html
@@ -230,7 +230,7 @@
   includeAdvertisersWithoutGroupsOnly: boolean, Select only advertisers which do not belong to any advertiser group.
   onlyParent: boolean, Select only advertisers which use another advertiser's floodlight configuration.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.campaignCreativeAssociations.html b/docs/dyn/dfareporting_v2_7.campaignCreativeAssociations.html
index 3d50026..ffcb52c 100644
--- a/docs/dyn/dfareporting_v2_7.campaignCreativeAssociations.html
+++ b/docs/dyn/dfareporting_v2_7.campaignCreativeAssociations.html
@@ -118,7 +118,7 @@
   campaignId: string, Campaign ID in this association. (required)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.campaigns.html b/docs/dyn/dfareporting_v2_7.campaigns.html
index 1d1d5a3..ca438d0 100644
--- a/docs/dyn/dfareporting_v2_7.campaigns.html
+++ b/docs/dyn/dfareporting_v2_7.campaigns.html
@@ -139,7 +139,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -179,7 +179,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -198,8 +198,8 @@
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -209,7 +209,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
@@ -267,7 +267,7 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
         },
       ],
       "optimizationModel": "A String", # Optimization model for this configuration.
@@ -307,7 +307,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -326,8 +326,8 @@
     "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
     "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -337,7 +337,7 @@
       { # Audience Segment Group.
         "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
           { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
             "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
             "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
           },
@@ -387,7 +387,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -427,7 +427,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -446,8 +446,8 @@
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -457,7 +457,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
@@ -479,7 +479,7 @@
   archived: boolean, Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.
   advertiserIds: string, Select only campaigns that belong to these advertisers. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -535,7 +535,7 @@
                   "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                   "id": "A String", # The ID associated with the value if available.
                 },
-                "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+                "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
               },
             ],
             "optimizationModel": "A String", # Optimization model for this configuration.
@@ -575,7 +575,7 @@
                     "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                     "id": "A String", # The ID associated with the value if available.
                   },
-                  "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+                  "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
                 },
               ],
               "optimizationModel": "A String", # Optimization model for this configuration.
@@ -594,8 +594,8 @@
           "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
           "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
           "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
           },
           "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
           "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -605,7 +605,7 @@
             { # Audience Segment Group.
               "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
                 { # Audience Segment.
-                  "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+                  "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
                   "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
                   "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
                 },
@@ -680,7 +680,7 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
         },
       ],
       "optimizationModel": "A String", # Optimization model for this configuration.
@@ -720,7 +720,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -739,8 +739,8 @@
     "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
     "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -750,7 +750,7 @@
       { # Audience Segment Group.
         "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
           { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
             "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
             "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
           },
@@ -800,7 +800,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -840,7 +840,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -859,8 +859,8 @@
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -870,7 +870,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
@@ -926,7 +926,7 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
         },
       ],
       "optimizationModel": "A String", # Optimization model for this configuration.
@@ -966,7 +966,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -985,8 +985,8 @@
     "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
     "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -996,7 +996,7 @@
       { # Audience Segment Group.
         "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
           { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
             "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
             "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
           },
@@ -1046,7 +1046,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -1086,7 +1086,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -1105,8 +1105,8 @@
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -1116,7 +1116,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
diff --git a/docs/dyn/dfareporting_v2_7.contentCategories.html b/docs/dyn/dfareporting_v2_7.contentCategories.html
index d1e3117..83d48b4 100644
--- a/docs/dyn/dfareporting_v2_7.contentCategories.html
+++ b/docs/dyn/dfareporting_v2_7.contentCategories.html
@@ -167,7 +167,7 @@
       NAME - 
   ids: string, Select only content categories with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.conversions.html b/docs/dyn/dfareporting_v2_7.conversions.html
index 9578343..700e62a 100644
--- a/docs/dyn/dfareporting_v2_7.conversions.html
+++ b/docs/dyn/dfareporting_v2_7.conversions.html
@@ -127,7 +127,7 @@
   An object of the form:
 
     { # Insert Conversions Response.
-    "status": [ # The status of each conversion's insertion status. The status is returned in the same order that conversions are inserted.
+    "status": [ # The insert status of each conversion. Statuses are returned in the same order that conversions are inserted.
       { # The original conversion that was inserted or updated and whether there were any errors.
         "conversion": { # A Conversion represents when a user successfully performs a desired action after seeing an ad. # The original conversion that was inserted or updated.
           "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
diff --git a/docs/dyn/dfareporting_v2_7.creativeFieldValues.html b/docs/dyn/dfareporting_v2_7.creativeFieldValues.html
index 9b10518..20d6e9b 100644
--- a/docs/dyn/dfareporting_v2_7.creativeFieldValues.html
+++ b/docs/dyn/dfareporting_v2_7.creativeFieldValues.html
@@ -168,7 +168,7 @@
   ids: string, Select only creative field values with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.creativeFields.html b/docs/dyn/dfareporting_v2_7.creativeFields.html
index 263786b..0532df8 100644
--- a/docs/dyn/dfareporting_v2_7.creativeFields.html
+++ b/docs/dyn/dfareporting_v2_7.creativeFields.html
@@ -198,7 +198,7 @@
   advertiserIds: string, Select only creative fields that belong to these advertisers. (repeated)
   ids: string, Select only creative fields with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.creativeGroups.html b/docs/dyn/dfareporting_v2_7.creativeGroups.html
index d508bd2..47d79bb 100644
--- a/docs/dyn/dfareporting_v2_7.creativeGroups.html
+++ b/docs/dyn/dfareporting_v2_7.creativeGroups.html
@@ -108,10 +108,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -139,10 +136,7 @@
     "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
     "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
     "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
     "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -164,10 +158,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -198,7 +189,7 @@
   groupNumber: integer, Select only creative groups that belong to this subgroup.
   maxResults: integer, Maximum number of results to return.
   ids: string, Select only creative groups with these IDs. (repeated)
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -213,10 +204,7 @@
           "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
           "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
           "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-              # Acceptable values are:
-              # - 1
-              # - 2
+          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
           "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
           "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
             "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -262,10 +250,7 @@
     "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
     "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
     "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
     "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -287,10 +272,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -318,10 +300,7 @@
     "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
     "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
     "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
     "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -343,10 +322,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
diff --git a/docs/dyn/dfareporting_v2_7.creatives.html b/docs/dyn/dfareporting_v2_7.creatives.html
index edc93a4..6355121 100644
--- a/docs/dyn/dfareporting_v2_7.creatives.html
+++ b/docs/dyn/dfareporting_v2_7.creatives.html
@@ -135,11 +135,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -168,8 +168,8 @@
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
       "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -195,11 +195,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -229,11 +229,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -245,8 +245,8 @@
         },
       ],
       "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -270,11 +270,11 @@
       },
       "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -288,11 +288,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -301,26 +301,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -358,7 +358,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -377,11 +377,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -392,7 +392,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -403,7 +403,7 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -510,11 +510,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -543,8 +543,8 @@
     "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
     "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
     "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
     },
     "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
     "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -570,11 +570,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -604,11 +604,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -620,8 +620,8 @@
       },
     ],
     "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
     },
     "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
     "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -645,11 +645,11 @@
     },
     "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
         # 
@@ -663,11 +663,11 @@
         "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -676,26 +676,26 @@
           "A String",
         ],
         "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
         "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
         "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
         "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
         "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
         "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -733,7 +733,7 @@
         ],
         "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
         "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
         "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
         "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
           "targetType": "A String", # Target type used by the event.
@@ -752,11 +752,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -767,7 +767,7 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
         "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
         "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
           "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -778,7 +778,7 @@
           "top": 42, # Offset distance from top side of an asset or a window.
           "left": 42, # Offset distance from left side of an asset or a window.
         },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
       },
     ],
     "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -879,11 +879,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -912,8 +912,8 @@
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
       "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -939,11 +939,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -973,11 +973,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -989,8 +989,8 @@
         },
       ],
       "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -1014,11 +1014,11 @@
       },
       "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -1032,11 +1032,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -1045,26 +1045,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -1102,7 +1102,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -1121,11 +1121,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1136,7 +1136,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -1147,7 +1147,7 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -1225,7 +1225,7 @@
   sizeIds: string, Select only creatives with these size IDs. (repeated)
   archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -1306,11 +1306,11 @@
                   "left": 42, # Offset distance from left side of an asset or a window.
                 },
                 "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               },
               "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1339,8 +1339,8 @@
           "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
           "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
           "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
           "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
           "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -1366,11 +1366,11 @@
                   "left": 42, # Offset distance from left side of an asset or a window.
                 },
                 "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               },
               "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1400,11 +1400,11 @@
                   "left": 42, # Offset distance from left side of an asset or a window.
                 },
                 "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               },
               "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1416,8 +1416,8 @@
             },
           ],
           "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
           "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
           "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -1441,11 +1441,11 @@
           },
           "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
               #
@@ -1459,11 +1459,11 @@
               "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
               "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
               "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -1472,26 +1472,26 @@
                 "A String",
               ],
               "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
               "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
               "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
               "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
               "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
               "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
               "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
               "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -1529,7 +1529,7 @@
               ],
               "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
               "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+              "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
               "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
               "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
                 "targetType": "A String", # Target type used by the event.
@@ -1548,11 +1548,11 @@
                     "left": 42, # Offset distance from left side of an asset or a window.
                   },
                   "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                    "width": 42, # Width of this size.
+                    "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                     "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                     "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                     "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                    "height": 42, # Height of this size.
+                    "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                   },
                 },
                 "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1563,7 +1563,7 @@
                 "advertiserCustomEventName": "A String", # User-entered name for the event.
               },
               "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
               "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
                 "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
                 "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -1574,7 +1574,7 @@
                 "top": 42, # Offset distance from top side of an asset or a window.
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
-              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
             },
           ],
           "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -1698,11 +1698,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1731,8 +1731,8 @@
     "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
     "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
     "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
     },
     "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
     "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -1758,11 +1758,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1792,11 +1792,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1808,8 +1808,8 @@
       },
     ],
     "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
     },
     "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
     "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -1833,11 +1833,11 @@
     },
     "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
         # 
@@ -1851,11 +1851,11 @@
         "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -1864,26 +1864,26 @@
           "A String",
         ],
         "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
         "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
         "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
         "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
         "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
         "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -1921,7 +1921,7 @@
         ],
         "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
         "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
         "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
         "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
           "targetType": "A String", # Target type used by the event.
@@ -1940,11 +1940,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1955,7 +1955,7 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
         "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
         "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
           "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -1966,7 +1966,7 @@
           "top": 42, # Offset distance from top side of an asset or a window.
           "left": 42, # Offset distance from left side of an asset or a window.
         },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
       },
     ],
     "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -2067,11 +2067,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2100,8 +2100,8 @@
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
       "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -2127,11 +2127,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2161,11 +2161,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2177,8 +2177,8 @@
         },
       ],
       "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -2202,11 +2202,11 @@
       },
       "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -2220,11 +2220,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -2233,26 +2233,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -2290,7 +2290,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -2309,11 +2309,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2324,7 +2324,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -2335,7 +2335,7 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -2442,11 +2442,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2475,8 +2475,8 @@
     "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
     "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
     "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
     },
     "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
     "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -2502,11 +2502,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2536,11 +2536,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2552,8 +2552,8 @@
       },
     ],
     "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
     },
     "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
     "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -2577,11 +2577,11 @@
     },
     "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
         # 
@@ -2595,11 +2595,11 @@
         "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -2608,26 +2608,26 @@
           "A String",
         ],
         "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
         "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
         "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
         "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
         "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
         "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -2665,7 +2665,7 @@
         ],
         "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
         "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
         "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
         "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
           "targetType": "A String", # Target type used by the event.
@@ -2684,11 +2684,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2699,7 +2699,7 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
         "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
         "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
           "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -2710,7 +2710,7 @@
           "top": 42, # Offset distance from top side of an asset or a window.
           "left": 42, # Offset distance from left side of an asset or a window.
         },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
       },
     ],
     "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
@@ -2811,11 +2811,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2844,8 +2844,8 @@
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
       "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
@@ -2871,11 +2871,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2905,11 +2905,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2921,8 +2921,8 @@
         },
       ],
       "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
-        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
       },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
@@ -2946,11 +2946,11 @@
       },
       "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -2964,11 +2964,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -2977,26 +2977,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -3034,7 +3034,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -3053,11 +3053,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -3068,7 +3068,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -3079,7 +3079,7 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
diff --git a/docs/dyn/dfareporting_v2_7.directorySiteContacts.html b/docs/dyn/dfareporting_v2_7.directorySiteContacts.html
index f54a4c2..946e9b7 100644
--- a/docs/dyn/dfareporting_v2_7.directorySiteContacts.html
+++ b/docs/dyn/dfareporting_v2_7.directorySiteContacts.html
@@ -124,7 +124,7 @@
       NAME - 
   ids: string, Select only directory site contacts with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.directorySites.html b/docs/dyn/dfareporting_v2_7.directorySites.html
index d8e4969..539b24f 100644
--- a/docs/dyn/dfareporting_v2_7.directorySites.html
+++ b/docs/dyn/dfareporting_v2_7.directorySites.html
@@ -100,8 +100,8 @@
 
     { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
       "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
+      "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+      "description": "A String", # Description of this directory site. This is a read-only field.
       "settings": { # Directory Site Settings # Directory site settings.
         "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
         "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
@@ -117,7 +117,7 @@
         "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
         "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
       },
-      "currencyId": "A String", # Currency ID of this directory site.
+      "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
           # Possible values are:
           # - "1" for USD
           # - "2" for GBP
@@ -166,6 +166,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "inpageTagFormats": [ # Tag types for regular placements.
           #
           # Acceptable values are:
@@ -216,8 +217,8 @@
 
 { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
     "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-    "countryId": "A String", # Country ID of this directory site.
-    "description": "A String", # Description of this directory site.
+    "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+    "description": "A String", # Description of this directory site. This is a read-only field.
     "settings": { # Directory Site Settings # Directory site settings.
       "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
       "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
@@ -233,7 +234,7 @@
       "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
       "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
     },
-    "currencyId": "A String", # Currency ID of this directory site.
+    "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
         # Possible values are:
         # - "1" for USD
         # - "2" for GBP
@@ -282,6 +283,7 @@
         # - "46" for AED
         # - "47" for BGN
         # - "48" for HRK
+        # - "49" for MXN
     "inpageTagFormats": [ # Tag types for regular placements.
         # 
         # Acceptable values are:
@@ -326,8 +328,8 @@
 
     { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
       "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
+      "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+      "description": "A String", # Description of this directory site. This is a read-only field.
       "settings": { # Directory Site Settings # Directory site settings.
         "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
         "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
@@ -343,7 +345,7 @@
         "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
         "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
       },
-      "currencyId": "A String", # Currency ID of this directory site.
+      "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
           # Possible values are:
           # - "1" for USD
           # - "2" for GBP
@@ -392,6 +394,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "inpageTagFormats": [ # Tag types for regular placements.
           #
           # Acceptable values are:
@@ -440,7 +443,7 @@
   countryId: string, Select only directory sites with this country ID.
   acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -466,8 +469,8 @@
     "directorySites": [ # Directory site collection.
       { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
           "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-          "countryId": "A String", # Country ID of this directory site.
-          "description": "A String", # Description of this directory site.
+          "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+          "description": "A String", # Description of this directory site. This is a read-only field.
           "settings": { # Directory Site Settings # Directory site settings.
             "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
             "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
@@ -483,7 +486,7 @@
             "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
             "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
           },
-          "currencyId": "A String", # Currency ID of this directory site.
+          "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
               # Possible values are:
               # - "1" for USD
               # - "2" for GBP
@@ -532,6 +535,7 @@
               # - "46" for AED
               # - "47" for BGN
               # - "48" for HRK
+              # - "49" for MXN
           "inpageTagFormats": [ # Tag types for regular placements.
               #
               # Acceptable values are:
diff --git a/docs/dyn/dfareporting_v2_7.eventTags.html b/docs/dyn/dfareporting_v2_7.eventTags.html
index b4cebf1..681daae 100644
--- a/docs/dyn/dfareporting_v2_7.eventTags.html
+++ b/docs/dyn/dfareporting_v2_7.eventTags.html
@@ -249,7 +249,7 @@
   campaignId: string, Select only event tags that belong to this campaign.
   advertiserId: string, Select only event tags that belong to this advertiser.
   adId: string, Select only event tags that belong to this ad.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.files.html b/docs/dyn/dfareporting_v2_7.files.html
index 5f5851a..f0b6e36 100644
--- a/docs/dyn/dfareporting_v2_7.files.html
+++ b/docs/dyn/dfareporting_v2_7.files.html
@@ -76,10 +76,10 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
+<p class="firstline">Retrieves a report file by its report ID and file ID. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#get_media">get_media(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
+<p class="firstline">Retrieves a report file by its report ID and file ID. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
 <p class="firstline">Lists files for a user profile.</p>
@@ -89,7 +89,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
+  <pre>Retrieves a report file by its report ID and file ID. This method supports media download.
 
 Args:
   reportId: string, The ID of the report. (required)
@@ -122,7 +122,7 @@
 
 <div class="method">
     <code class="details" id="get_media">get_media(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
+  <pre>Retrieves a report file by its report ID and file ID. This method supports media download.
 
 Args:
   reportId: string, The ID of the report. (required)
@@ -142,7 +142,7 @@
   profileId: string, The DFA profile ID. (required)
   pageToken: string, The value of the nextToken from the previous result page.
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
@@ -150,7 +150,7 @@
     Allowed values
       ID - Sort by file ID.
       LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
+  scope: string, The scope that defines which results are returned.
     Allowed values
       ALL - All files in account.
       MINE - My files.
diff --git a/docs/dyn/dfareporting_v2_7.floodlightActivities.html b/docs/dyn/dfareporting_v2_7.floodlightActivities.html
index 8c88286..ce3f6c7 100644
--- a/docs/dyn/dfareporting_v2_7.floodlightActivities.html
+++ b/docs/dyn/dfareporting_v2_7.floodlightActivities.html
@@ -197,7 +197,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -308,7 +308,7 @@
     "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
     "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
     "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
     "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
     "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
     "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -413,7 +413,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -467,7 +467,7 @@
   floodlightActivityGroupTagString: string, Select only floodlight activities with the specified floodlight activity group tag string.
   floodlightActivityGroupIds: string, Select only floodlight activities with the specified floodlight activity group IDs. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -551,7 +551,7 @@
           "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
           "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
           "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
           "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
           "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
           "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -679,7 +679,7 @@
     "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
     "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
     "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
     "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
     "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
     "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -784,7 +784,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -895,7 +895,7 @@
     "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
     "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
     "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
     "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
     "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
     "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -1000,7 +1000,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
diff --git a/docs/dyn/dfareporting_v2_7.floodlightActivityGroups.html b/docs/dyn/dfareporting_v2_7.floodlightActivityGroups.html
index e0d7ddd..c8f006f 100644
--- a/docs/dyn/dfareporting_v2_7.floodlightActivityGroups.html
+++ b/docs/dyn/dfareporting_v2_7.floodlightActivityGroups.html
@@ -243,7 +243,7 @@
   floodlightConfigurationId: string, Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.
   ids: string, Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.floodlightConfigurations.html b/docs/dyn/dfareporting_v2_7.floodlightConfigurations.html
index d2c947f..20fd2bc 100644
--- a/docs/dyn/dfareporting_v2_7.floodlightConfigurations.html
+++ b/docs/dyn/dfareporting_v2_7.floodlightConfigurations.html
@@ -103,8 +103,8 @@
       "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
       "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
         "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
@@ -178,8 +178,8 @@
           "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
           "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
           "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
           },
           "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
             "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
@@ -253,8 +253,8 @@
     "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
     "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
       "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
@@ -318,8 +318,8 @@
       "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
       "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
         "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
@@ -389,8 +389,8 @@
     "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
     "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
       "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
@@ -454,8 +454,8 @@
       "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
       "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
         "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
diff --git a/docs/dyn/dfareporting_v2_7.inventoryItems.html b/docs/dyn/dfareporting_v2_7.inventoryItems.html
index 2f281f9..a490fdd 100644
--- a/docs/dyn/dfareporting_v2_7.inventoryItems.html
+++ b/docs/dyn/dfareporting_v2_7.inventoryItems.html
@@ -156,7 +156,7 @@
   projectId: string, Project ID for order documents. (required)
   pageToken: string, Value of the nextPageToken from the previous result page.
   inPlan: boolean, Select only inventory items that are in plan.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.orderDocuments.html b/docs/dyn/dfareporting_v2_7.orderDocuments.html
index 4d250d1..e9f88af 100644
--- a/docs/dyn/dfareporting_v2_7.orderDocuments.html
+++ b/docs/dyn/dfareporting_v2_7.orderDocuments.html
@@ -131,7 +131,7 @@
   profileId: string, User profile ID associated with this request. (required)
   projectId: string, Project ID for order documents. (required)
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.orders.html b/docs/dyn/dfareporting_v2_7.orders.html
index d1c05f1..043b282 100644
--- a/docs/dyn/dfareporting_v2_7.orders.html
+++ b/docs/dyn/dfareporting_v2_7.orders.html
@@ -151,7 +151,7 @@
       NAME - 
   ids: string, Select only orders with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.placementGroups.html b/docs/dyn/dfareporting_v2_7.placementGroups.html
index 162a205..05b55df 100644
--- a/docs/dyn/dfareporting_v2_7.placementGroups.html
+++ b/docs/dyn/dfareporting_v2_7.placementGroups.html
@@ -186,8 +186,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -291,8 +291,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -390,8 +390,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -427,7 +427,7 @@
   advertiserIds: string, Select only placement groups that belong to these advertisers. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
   maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -535,8 +535,8 @@
             "capCostOption": "A String", # Placement cap cost option.
             "pricingPeriods": [ # Pricing periods for this placement.
               { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+                "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+                "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
                 "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
                 "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
                 "pricingComment": "A String", # Comments for this pricing period.
@@ -657,8 +657,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -756,8 +756,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -861,8 +861,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -960,8 +960,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
diff --git a/docs/dyn/dfareporting_v2_7.placementStrategies.html b/docs/dyn/dfareporting_v2_7.placementStrategies.html
index 011f8ab..225bceb 100644
--- a/docs/dyn/dfareporting_v2_7.placementStrategies.html
+++ b/docs/dyn/dfareporting_v2_7.placementStrategies.html
@@ -167,7 +167,7 @@
       NAME - 
   ids: string, Select only placement strategies with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.placements.html b/docs/dyn/dfareporting_v2_7.placements.html
index 99dbcf3..b1dcd5c 100644
--- a/docs/dyn/dfareporting_v2_7.placements.html
+++ b/docs/dyn/dfareporting_v2_7.placements.html
@@ -111,6 +111,7 @@
       PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY - 
       PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
       PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3 - 
+      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4 - 
       PLACEMENT_TAG_INTERNAL_REDIRECT - 
       PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
       PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY - 
@@ -136,8 +137,8 @@
           { # Placement Tag Data
             "clickTag": "A String", # Tag string to record a click.
             "impressionTag": "A String", # Tag string for serving an ad.
-            "creativeId": "A String", # Creative associated with this placement tag.
-            "adId": "A String", # Ad associated with this placement tag.
+            "creativeId": "A String", # Creative associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.
+            "adId": "A String", # Ad associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.
             "format": "A String", # TagData tag format of this tag.
           },
         ],
@@ -190,12 +191,12 @@
           "skippable": True or False, # Whether the user can skip creatives served to this placement.
           "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
           "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
           "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
         },
         "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -205,11 +206,11 @@
           "imageOnly": True or False, # Whether to serve only static images as companions.
           "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
             { # Represents the dimensions of ads, placements, creatives, or creative assets.
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           ],
         },
@@ -235,6 +236,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -258,11 +261,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -302,8 +305,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -316,8 +319,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -372,12 +375,12 @@
         "skippable": True or False, # Whether the user can skip creatives served to this placement.
         "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
         "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
         },
         "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
         },
       },
       "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -387,11 +390,11 @@
         "imageOnly": True or False, # Whether to serve only static images as companions.
         "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
           { # Represents the dimensions of ads, placements, creatives, or creative assets.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         ],
       },
@@ -417,6 +420,8 @@
         # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
         # - "PLACEMENT_TAG_CLICK_COMMANDS"
         # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
         # - "PLACEMENT_TAG_TRACKING"
         # - "PLACEMENT_TAG_TRACKING_IFRAME"
         # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -440,11 +445,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
     "status": "A String", # Third-party placement status.
@@ -484,8 +489,8 @@
     "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
     "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -498,8 +503,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -548,12 +553,12 @@
           "skippable": True or False, # Whether the user can skip creatives served to this placement.
           "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
           "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
           "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
         },
         "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -563,11 +568,11 @@
           "imageOnly": True or False, # Whether to serve only static images as companions.
           "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
             { # Represents the dimensions of ads, placements, creatives, or creative assets.
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           ],
         },
@@ -593,6 +598,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -616,11 +623,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -660,8 +667,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -674,8 +681,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -713,7 +720,7 @@
   sizeIds: string, Select only placements that are associated with these sizes. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
   maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -779,12 +786,12 @@
               "skippable": True or False, # Whether the user can skip creatives served to this placement.
               "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
               "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-                "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-                "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+                "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+                "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
               },
               "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-                "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-                "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+                "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+                "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
               },
             },
             "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -794,11 +801,11 @@
               "imageOnly": True or False, # Whether to serve only static images as companions.
               "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
                 { # Represents the dimensions of ads, placements, creatives, or creative assets.
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               ],
             },
@@ -824,6 +831,8 @@
               # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
               # - "PLACEMENT_TAG_CLICK_COMMANDS"
               # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
               # - "PLACEMENT_TAG_TRACKING"
               # - "PLACEMENT_TAG_TRACKING_IFRAME"
               # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -847,11 +856,11 @@
             "id": "A String", # The ID associated with the value if available.
           },
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
           "status": "A String", # Third-party placement status.
@@ -891,8 +900,8 @@
           "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
           "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
           "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
           },
           "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
             "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -905,8 +914,8 @@
             "capCostOption": "A String", # Placement cap cost option.
             "pricingPeriods": [ # Pricing periods for this placement.
               { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+                "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+                "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
                 "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
                 "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
                 "pricingComment": "A String", # Comments for this pricing period.
@@ -978,12 +987,12 @@
         "skippable": True or False, # Whether the user can skip creatives served to this placement.
         "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
         "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
         },
         "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
         },
       },
       "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -993,11 +1002,11 @@
         "imageOnly": True or False, # Whether to serve only static images as companions.
         "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
           { # Represents the dimensions of ads, placements, creatives, or creative assets.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         ],
       },
@@ -1023,6 +1032,8 @@
         # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
         # - "PLACEMENT_TAG_CLICK_COMMANDS"
         # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
         # - "PLACEMENT_TAG_TRACKING"
         # - "PLACEMENT_TAG_TRACKING_IFRAME"
         # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -1046,11 +1057,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
     "status": "A String", # Third-party placement status.
@@ -1090,8 +1101,8 @@
     "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
     "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1104,8 +1115,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -1154,12 +1165,12 @@
           "skippable": True or False, # Whether the user can skip creatives served to this placement.
           "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
           "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
           "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
         },
         "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -1169,11 +1180,11 @@
           "imageOnly": True or False, # Whether to serve only static images as companions.
           "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
             { # Represents the dimensions of ads, placements, creatives, or creative assets.
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           ],
         },
@@ -1199,6 +1210,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -1222,11 +1235,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -1266,8 +1279,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1280,8 +1293,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -1336,12 +1349,12 @@
         "skippable": True or False, # Whether the user can skip creatives served to this placement.
         "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
         "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
         },
         "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
         },
       },
       "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -1351,11 +1364,11 @@
         "imageOnly": True or False, # Whether to serve only static images as companions.
         "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
           { # Represents the dimensions of ads, placements, creatives, or creative assets.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         ],
       },
@@ -1381,6 +1394,8 @@
         # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
         # - "PLACEMENT_TAG_CLICK_COMMANDS"
         # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
         # - "PLACEMENT_TAG_TRACKING"
         # - "PLACEMENT_TAG_TRACKING_IFRAME"
         # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -1404,11 +1419,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
     "status": "A String", # Third-party placement status.
@@ -1448,8 +1463,8 @@
     "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
     "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1462,8 +1477,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -1512,12 +1527,12 @@
           "skippable": True or False, # Whether the user can skip creatives served to this placement.
           "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
           "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
           "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
-            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set.
-            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
           },
         },
         "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
@@ -1527,11 +1542,11 @@
           "imageOnly": True or False, # Whether to serve only static images as companions.
           "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
             { # Represents the dimensions of ads, placements, creatives, or creative assets.
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           ],
         },
@@ -1557,6 +1572,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -1580,11 +1597,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -1624,8 +1641,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1638,8 +1655,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
diff --git a/docs/dyn/dfareporting_v2_7.projects.html b/docs/dyn/dfareporting_v2_7.projects.html
index 297d004..826b0a7 100644
--- a/docs/dyn/dfareporting_v2_7.projects.html
+++ b/docs/dyn/dfareporting_v2_7.projects.html
@@ -138,7 +138,7 @@
   advertiserIds: string, Select only projects with these advertiser IDs. (repeated)
   ids: string, Select only projects with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.remarketingLists.html b/docs/dyn/dfareporting_v2_7.remarketingLists.html
index 4fd3133..fe3f1bc 100644
--- a/docs/dyn/dfareporting_v2_7.remarketingLists.html
+++ b/docs/dyn/dfareporting_v2_7.remarketingLists.html
@@ -129,7 +129,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
@@ -181,7 +181,7 @@
     "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
     "description": "A String", # Remarketing list description.
     "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
     "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
     "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
     "listSource": "A String", # Product from which this remarketing list was originated.
@@ -227,7 +227,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
@@ -261,7 +261,7 @@
   floodlightActivityId: string, Select only remarketing lists that have this floodlight activity ID.
   maxResults: integer, Maximum number of results to return.
   active: boolean, Select only active or only inactive remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -297,7 +297,7 @@
           "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
           "description": "A String", # Remarketing list description.
           "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
           "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
           "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
           "listSource": "A String", # Product from which this remarketing list was originated.
@@ -367,7 +367,7 @@
     "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
     "description": "A String", # Remarketing list description.
     "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
     "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
     "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
     "listSource": "A String", # Product from which this remarketing list was originated.
@@ -413,7 +413,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
@@ -465,7 +465,7 @@
     "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
     "description": "A String", # Remarketing list description.
     "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
     "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
     "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
     "listSource": "A String", # Product from which this remarketing list was originated.
@@ -511,7 +511,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
diff --git a/docs/dyn/dfareporting_v2_7.reports.files.html b/docs/dyn/dfareporting_v2_7.reports.files.html
index 6c8e4f0..e7dc128 100644
--- a/docs/dyn/dfareporting_v2_7.reports.files.html
+++ b/docs/dyn/dfareporting_v2_7.reports.files.html
@@ -76,10 +76,10 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
+<p class="firstline">Retrieves a report file. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#get_media">get_media(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
+<p class="firstline">Retrieves a report file. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</a></code></p>
 <p class="firstline">Lists files for a report.</p>
@@ -89,7 +89,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
+  <pre>Retrieves a report file. This method supports media download.
 
 Args:
   profileId: string, The DFA profile ID. (required)
@@ -123,7 +123,7 @@
 
 <div class="method">
     <code class="details" id="get_media">get_media(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
+  <pre>Retrieves a report file. This method supports media download.
 
 Args:
   profileId: string, The DFA profile ID. (required)
@@ -149,7 +149,7 @@
       ID - Sort by file ID.
       LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
diff --git a/docs/dyn/dfareporting_v2_7.reports.html b/docs/dyn/dfareporting_v2_7.reports.html
index 8ac050c..21348ae 100644
--- a/docs/dyn/dfareporting_v2_7.reports.html
+++ b/docs/dyn/dfareporting_v2_7.reports.html
@@ -1104,7 +1104,7 @@
   profileId: string, The DFA user profile ID. (required)
   pageToken: string, The value of the nextToken from the previous result page.
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
@@ -1113,7 +1113,7 @@
       ID - Sort by report ID.
       LAST_MODIFIED_TIME - Sort by 'lastModifiedTime' field.
       NAME - Sort by name of reports.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
+  scope: string, The scope that defines which results are returned.
     Allowed values
       ALL - All reports in account.
       MINE - My reports.
diff --git a/docs/dyn/dfareporting_v2_7.sites.html b/docs/dyn/dfareporting_v2_7.sites.html
index 4912582..7025036 100644
--- a/docs/dyn/dfareporting_v2_7.sites.html
+++ b/docs/dyn/dfareporting_v2_7.sites.html
@@ -121,8 +121,8 @@
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
         "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -191,8 +191,8 @@
       "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
       "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
       "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -255,8 +255,8 @@
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
         "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -310,7 +310,7 @@
   acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
   pageToken: string, Value of the nextPageToken from the previous result page.
   acceptsPublisherPaidPlacements: boolean, Select only sites that accept publisher paid placements.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -351,8 +351,8 @@
             "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
             "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
             "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
             },
             "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
             "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -438,8 +438,8 @@
       "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
       "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
       "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -502,8 +502,8 @@
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
         "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -572,8 +572,8 @@
       "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
       "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
       "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -636,8 +636,8 @@
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
         "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
diff --git a/docs/dyn/dfareporting_v2_7.sizes.html b/docs/dyn/dfareporting_v2_7.sizes.html
index f2122aa..c1a5179 100644
--- a/docs/dyn/dfareporting_v2_7.sizes.html
+++ b/docs/dyn/dfareporting_v2_7.sizes.html
@@ -96,11 +96,11 @@
   An object of the form:
 
     { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
+    "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
     "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
     "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
     "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
+    "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
   }</pre>
 </div>
 
@@ -114,11 +114,11 @@
     The object takes the form of:
 
 { # Represents the dimensions of ads, placements, creatives, or creative assets.
-  "width": 42, # Width of this size.
+  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-  "height": 42, # Height of this size.
+  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
 }
 
 
@@ -126,11 +126,11 @@
   An object of the form:
 
     { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
+    "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
     "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
     "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
     "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
+    "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
   }</pre>
 </div>
 
@@ -152,11 +152,11 @@
     "kind": "dfareporting#sizesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sizesListResponse".
     "sizes": [ # Size collection.
       { # Represents the dimensions of ads, placements, creatives, or creative assets.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
     ],
   }</pre>
diff --git a/docs/dyn/dfareporting_v2_7.subaccounts.html b/docs/dyn/dfareporting_v2_7.subaccounts.html
index aea098b..d9402f3 100644
--- a/docs/dyn/dfareporting_v2_7.subaccounts.html
+++ b/docs/dyn/dfareporting_v2_7.subaccounts.html
@@ -163,7 +163,7 @@
       NAME - 
   ids: string, Select only subaccounts with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.targetableRemarketingLists.html b/docs/dyn/dfareporting_v2_7.targetableRemarketingLists.html
index 0906660..d4cc6c4 100644
--- a/docs/dyn/dfareporting_v2_7.targetableRemarketingLists.html
+++ b/docs/dyn/dfareporting_v2_7.targetableRemarketingLists.html
@@ -133,7 +133,7 @@
       NAME - 
   maxResults: integer, Maximum number of results to return.
   active: boolean, Select only active or only inactive targetable remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.targetingTemplates.html b/docs/dyn/dfareporting_v2_7.targetingTemplates.html
index 17fb522..35cba51 100644
--- a/docs/dyn/dfareporting_v2_7.targetingTemplates.html
+++ b/docs/dyn/dfareporting_v2_7.targetingTemplates.html
@@ -110,7 +110,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -286,7 +286,7 @@
     "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -456,7 +456,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -632,7 +632,7 @@
       NAME - 
   ids: string, Select only targeting templates with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -650,7 +650,7 @@
           "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
           "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
             "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+            "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
               42,
             ],
             "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -843,7 +843,7 @@
     "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1013,7 +1013,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1189,7 +1189,7 @@
     "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1359,7 +1359,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
diff --git a/docs/dyn/dfareporting_v2_7.userRoles.html b/docs/dyn/dfareporting_v2_7.userRoles.html
index 9404d81..691b347 100644
--- a/docs/dyn/dfareporting_v2_7.userRoles.html
+++ b/docs/dyn/dfareporting_v2_7.userRoles.html
@@ -201,7 +201,7 @@
   ids: string, Select only user roles with the specified IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   accountUserRoleOnly: boolean, Select only account level user roles not associated with any specific subaccount.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_7.videoFormats.html b/docs/dyn/dfareporting_v2_7.videoFormats.html
index 8daccca..3407e47 100644
--- a/docs/dyn/dfareporting_v2_7.videoFormats.html
+++ b/docs/dyn/dfareporting_v2_7.videoFormats.html
@@ -95,11 +95,11 @@
     { # Contains information about supported video formats.
     "fileType": "A String", # File type of the video format.
     "resolution": { # Represents the dimensions of ads, placements, creatives, or creative assets. # The resolution of this video format.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "id": 42, # ID of the video format.
     "kind": "dfareporting#videoFormat", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoFormat".
@@ -123,11 +123,11 @@
       { # Contains information about supported video formats.
         "fileType": "A String", # File type of the video format.
         "resolution": { # Represents the dimensions of ads, placements, creatives, or creative assets. # The resolution of this video format.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "id": 42, # ID of the video format.
         "kind": "dfareporting#videoFormat", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoFormat".
diff --git a/docs/dyn/dfareporting_v2_6.accountActiveAdSummaries.html b/docs/dyn/dfareporting_v2_8.accountActiveAdSummaries.html
similarity index 94%
rename from docs/dyn/dfareporting_v2_6.accountActiveAdSummaries.html
rename to docs/dyn/dfareporting_v2_8.accountActiveAdSummaries.html
index d2d926a..c5c7f9e 100644
--- a/docs/dyn/dfareporting_v2_6.accountActiveAdSummaries.html
+++ b/docs/dyn/dfareporting_v2_8.accountActiveAdSummaries.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.accountActiveAdSummaries.html">accountActiveAdSummaries</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.accountActiveAdSummaries.html">accountActiveAdSummaries</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, summaryAccountId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.accountPermissionGroups.html b/docs/dyn/dfareporting_v2_8.accountPermissionGroups.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_6.accountPermissionGroups.html
rename to docs/dyn/dfareporting_v2_8.accountPermissionGroups.html
index d42cda1..2e10769 100644
--- a/docs/dyn/dfareporting_v2_6.accountPermissionGroups.html
+++ b/docs/dyn/dfareporting_v2_8.accountPermissionGroups.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.accountPermissionGroups.html">accountPermissionGroups</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.accountPermissionGroups.html">accountPermissionGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.accountPermissions.html b/docs/dyn/dfareporting_v2_8.accountPermissions.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_5.accountPermissions.html
rename to docs/dyn/dfareporting_v2_8.accountPermissions.html
index 2caa82a..d9cf15c 100644
--- a/docs/dyn/dfareporting_v2_5.accountPermissions.html
+++ b/docs/dyn/dfareporting_v2_8.accountPermissions.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.accountPermissions.html">accountPermissions</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.accountPermissions.html">accountPermissions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5beta1.accountUserProfiles.html b/docs/dyn/dfareporting_v2_8.accountUserProfiles.html
similarity index 99%
rename from docs/dyn/dfareporting_v2_5beta1.accountUserProfiles.html
rename to docs/dyn/dfareporting_v2_8.accountUserProfiles.html
index 6ad07cd..f464a41 100644
--- a/docs/dyn/dfareporting_v2_5beta1.accountUserProfiles.html
+++ b/docs/dyn/dfareporting_v2_8.accountUserProfiles.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.accountUserProfiles.html">accountUserProfiles</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.accountUserProfiles.html">accountUserProfiles</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -314,7 +314,7 @@
   ids: string, Select only user profiles with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_6.accounts.html b/docs/dyn/dfareporting_v2_8.accounts.html
similarity index 93%
rename from docs/dyn/dfareporting_v2_6.accounts.html
rename to docs/dyn/dfareporting_v2_8.accounts.html
index 5350947..090dc3f 100644
--- a/docs/dyn/dfareporting_v2_6.accounts.html
+++ b/docs/dyn/dfareporting_v2_8.accounts.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.accounts.html">accounts</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.accounts.html">accounts</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -108,7 +108,7 @@
         "A String",
       ],
       "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
       "currencyId": "A String", # ID of currency associated with this account. This is a required field.
           # Acceptable values are:
           # - "1" for USD
@@ -158,6 +158,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
       "accountPermissionIds": [ # Account permissions assigned to this account.
         "A String",
@@ -183,7 +184,7 @@
           # - "tr" (Turkish)
           # - "zh-CN" (Chinese Simplified)
           # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
       "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
         "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
             # Acceptable values are:
@@ -203,8 +204,8 @@
             # - "13" for "America/Sao_Paulo"
         "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
         "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
       },
       "active": True or False, # Whether this account is active.
@@ -229,7 +230,7 @@
   ids: string, Select only accounts with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -249,7 +250,7 @@
             "A String",
           ],
           "description": "A String", # Description of this account.
-          "maximumImageSize": "A String", # Maximum image size allowed for this account.
+          "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
           "currencyId": "A String", # ID of currency associated with this account. This is a required field.
               # Acceptable values are:
               # - "1" for USD
@@ -299,6 +300,7 @@
               # - "46" for AED
               # - "47" for BGN
               # - "48" for HRK
+              # - "49" for MXN
           "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
           "accountPermissionIds": [ # Account permissions assigned to this account.
             "A String",
@@ -324,7 +326,7 @@
               # - "tr" (Turkish)
               # - "zh-CN" (Chinese Simplified)
               # - "zh-TW" (Chinese Traditional)
-          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
           "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
             "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
                 # Acceptable values are:
@@ -344,8 +346,8 @@
                 # - "13" for "America/Sao_Paulo"
             "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
             "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
             },
           },
           "active": True or False, # Whether this account is active.
@@ -389,7 +391,7 @@
       "A String",
     ],
     "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
+    "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
     "currencyId": "A String", # ID of currency associated with this account. This is a required field.
         # Acceptable values are:
         # - "1" for USD
@@ -439,6 +441,7 @@
         # - "46" for AED
         # - "47" for BGN
         # - "48" for HRK
+        # - "49" for MXN
     "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
     "accountPermissionIds": [ # Account permissions assigned to this account.
       "A String",
@@ -464,7 +467,7 @@
         # - "tr" (Turkish)
         # - "zh-CN" (Chinese Simplified)
         # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
     "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
       "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
           # Acceptable values are:
@@ -484,8 +487,8 @@
           # - "13" for "America/Sao_Paulo"
       "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
     },
     "active": True or False, # Whether this account is active.
@@ -506,7 +509,7 @@
         "A String",
       ],
       "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
       "currencyId": "A String", # ID of currency associated with this account. This is a required field.
           # Acceptable values are:
           # - "1" for USD
@@ -556,6 +559,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
       "accountPermissionIds": [ # Account permissions assigned to this account.
         "A String",
@@ -581,7 +585,7 @@
           # - "tr" (Turkish)
           # - "zh-CN" (Chinese Simplified)
           # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
       "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
         "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
             # Acceptable values are:
@@ -601,8 +605,8 @@
             # - "13" for "America/Sao_Paulo"
         "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
         "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
       },
       "active": True or False, # Whether this account is active.
@@ -629,7 +633,7 @@
       "A String",
     ],
     "description": "A String", # Description of this account.
-    "maximumImageSize": "A String", # Maximum image size allowed for this account.
+    "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
     "currencyId": "A String", # ID of currency associated with this account. This is a required field.
         # Acceptable values are:
         # - "1" for USD
@@ -679,6 +683,7 @@
         # - "46" for AED
         # - "47" for BGN
         # - "48" for HRK
+        # - "49" for MXN
     "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
     "accountPermissionIds": [ # Account permissions assigned to this account.
       "A String",
@@ -704,7 +709,7 @@
         # - "tr" (Turkish)
         # - "zh-CN" (Chinese Simplified)
         # - "zh-TW" (Chinese Traditional)
-    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
     "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
       "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
           # Acceptable values are:
@@ -724,8 +729,8 @@
           # - "13" for "America/Sao_Paulo"
       "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
     },
     "active": True or False, # Whether this account is active.
@@ -746,7 +751,7 @@
         "A String",
       ],
       "description": "A String", # Description of this account.
-      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account, in kilobytes. Value must be greater than or equal to 1.
       "currencyId": "A String", # ID of currency associated with this account. This is a required field.
           # Acceptable values are:
           # - "1" for USD
@@ -796,6 +801,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
       "accountPermissionIds": [ # Account permissions assigned to this account.
         "A String",
@@ -821,7 +827,7 @@
           # - "tr" (Turkish)
           # - "zh-CN" (Chinese Simplified)
           # - "zh-TW" (Chinese Traditional)
-      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Acceptable values are 1 to 10240, inclusive.
       "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
         "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
             # Acceptable values are:
@@ -841,8 +847,8 @@
             # - "13" for "America/Sao_Paulo"
         "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
         "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
       },
       "active": True or False, # Whether this account is active.
diff --git a/docs/dyn/dfareporting_v2_6.ads.html b/docs/dyn/dfareporting_v2_8.ads.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_6.ads.html
rename to docs/dyn/dfareporting_v2_8.ads.html
index d10df49..e860e93 100644
--- a/docs/dyn/dfareporting_v2_6.ads.html
+++ b/docs/dyn/dfareporting_v2_8.ads.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.ads.html">ads</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.ads.html">ads</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -81,7 +81,7 @@
   <code><a href="#insert">insert(profileId, body)</a></code></p>
 <p class="firstline">Inserts a new ad.</p>
 <p class="toc_element">
-  <code><a href="#list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</a></code></p>
+  <code><a href="#list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</a></code></p>
 <p class="firstline">Retrieves a list of ads, possibly filtered. This method supports paging.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -186,10 +186,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -272,11 +272,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -285,7 +286,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -372,11 +372,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -407,7 +407,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -538,10 +538,10 @@
       "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
       "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
       "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
       },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
     },
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -624,11 +624,12 @@
     "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
       "creativeAssignments": [ # Creative assignments in this creative rotation.
         { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
           "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
           "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
               # Applicable when the creative type is any of the following:
+              # - DISPLAY
               # - RICH_MEDIA_INPAGE
               # - RICH_MEDIA_INPAGE_FLOATING
               # - RICH_MEDIA_IM_EXPAND
@@ -637,7 +638,6 @@
               # - RICH_MEDIA_MOBILE_IN_APP
               # - RICH_MEDIA_MULTI_FLOATING
               # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
               # - VPAID_LINEAR
               # - VPAID_NON_LINEAR
             { # Rich Media Exit Override.
@@ -724,11 +724,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
     "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -759,7 +759,7 @@
     "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -884,10 +884,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -970,11 +970,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -983,7 +984,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -1070,11 +1070,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -1105,7 +1105,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1146,7 +1146,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</code>
+    <code class="details" id="list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</code>
   <pre>Retrieves a list of ads, possibly filtered. This method supports paging.
 
 Args:
@@ -1159,7 +1159,7 @@
   creativeOptimizationConfigurationIds: string, Select only ads with these creative optimization configuration IDs. (repeated)
   sslCompliant: boolean, Select only ads that are SSL-compliant.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -1173,32 +1173,6 @@
   creativeIds: string, Select only ads with these creative IDs assigned. (repeated)
   remarketingListIds: string, Select only ads whose list targeting expression use these remarketing list IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  creativeType: string, Select only ads with the specified creativeType.
-    Allowed values
-      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
-      CUSTOM_DISPLAY - 
-      CUSTOM_DISPLAY_INTERSTITIAL - 
-      DISPLAY - 
-      DISPLAY_IMAGE_GALLERY - 
-      DISPLAY_REDIRECT - 
-      FLASH_INPAGE - 
-      HTML5_BANNER - 
-      IMAGE - 
-      INSTREAM_VIDEO - 
-      INSTREAM_VIDEO_REDIRECT - 
-      INTERNAL_REDIRECT - 
-      INTERSTITIAL_INTERNAL_REDIRECT - 
-      RICH_MEDIA_DISPLAY_BANNER - 
-      RICH_MEDIA_DISPLAY_EXPANDING - 
-      RICH_MEDIA_DISPLAY_INTERSTITIAL - 
-      RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL - 
-      RICH_MEDIA_IM_EXPAND - 
-      RICH_MEDIA_INPAGE_FLOATING - 
-      RICH_MEDIA_MOBILE_IN_APP - 
-      RICH_MEDIA_PEEL_DOWN - 
-      TRACKING_TEXT - 
-      VPAID_LINEAR_VIDEO - 
-      VPAID_NON_LINEAR_VIDEO - 
   placementIds: string, Select only ads with these placement IDs assigned. (repeated)
   active: boolean, Select only active ads.
   compatibility: string, Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
@@ -1307,10 +1281,10 @@
             "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
             "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
             "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
             },
-            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
           },
           "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
             "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1393,11 +1367,12 @@
           "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
             "creativeAssignments": [ # Creative assignments in this creative rotation.
               { # Creative Assignment.
-                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
                 "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
                 "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                     # Applicable when the creative type is any of the following:
+                    # - DISPLAY
                     # - RICH_MEDIA_INPAGE
                     # - RICH_MEDIA_INPAGE_FLOATING
                     # - RICH_MEDIA_IM_EXPAND
@@ -1406,7 +1381,6 @@
                     # - RICH_MEDIA_MOBILE_IN_APP
                     # - RICH_MEDIA_MULTI_FLOATING
                     # - RICH_MEDIA_PEEL_DOWN
-                    # - ADVANCED_BANNER
                     # - VPAID_LINEAR
                     # - VPAID_NON_LINEAR
                   { # Rich Media Exit Override.
@@ -1493,11 +1467,11 @@
             "id": "A String", # The ID associated with the value if available.
           },
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
           "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -1528,7 +1502,7 @@
           "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
           "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
             "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+            "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
               42,
             ],
             "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1676,10 +1650,10 @@
       "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
       "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
       "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
       },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
     },
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1762,11 +1736,12 @@
     "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
       "creativeAssignments": [ # Creative assignments in this creative rotation.
         { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
           "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
           "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
               # Applicable when the creative type is any of the following:
+              # - DISPLAY
               # - RICH_MEDIA_INPAGE
               # - RICH_MEDIA_INPAGE_FLOATING
               # - RICH_MEDIA_IM_EXPAND
@@ -1775,7 +1750,6 @@
               # - RICH_MEDIA_MOBILE_IN_APP
               # - RICH_MEDIA_MULTI_FLOATING
               # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
               # - VPAID_LINEAR
               # - VPAID_NON_LINEAR
             { # Rich Media Exit Override.
@@ -1862,11 +1836,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
     "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -1897,7 +1871,7 @@
     "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -2022,10 +1996,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -2108,11 +2082,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -2121,7 +2096,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -2208,11 +2182,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -2243,7 +2217,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -2374,10 +2348,10 @@
       "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
       "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
       "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
       },
-      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
     },
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -2460,11 +2434,12 @@
     "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
       "creativeAssignments": [ # Creative assignments in this creative rotation.
         { # Creative Assignment.
-          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
           "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
           "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
               # Applicable when the creative type is any of the following:
+              # - DISPLAY
               # - RICH_MEDIA_INPAGE
               # - RICH_MEDIA_INPAGE_FLOATING
               # - RICH_MEDIA_IM_EXPAND
@@ -2473,7 +2448,6 @@
               # - RICH_MEDIA_MOBILE_IN_APP
               # - RICH_MEDIA_MULTI_FLOATING
               # - RICH_MEDIA_PEEL_DOWN
-              # - ADVANCED_BANNER
               # - VPAID_LINEAR
               # - VPAID_NON_LINEAR
             { # Rich Media Exit Override.
@@ -2560,11 +2534,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
     "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -2595,7 +2569,7 @@
     "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -2720,10 +2694,10 @@
         "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
         "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
         "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
-          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
-          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days. Acceptable values are 1 to 7776000, inclusive.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. Acceptable values are 1 to 15, inclusive.
         },
-        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Acceptable values are 1 to 10, inclusive.
       },
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -2806,11 +2780,12 @@
       "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
         "creativeAssignments": [ # Creative assignments in this creative rotation.
           { # Creative Assignment.
-            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
-            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM. Value must be greater than or equal to 1.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL. Acceptable values are 1 to 65535, inclusive.
             "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
             "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
                 # Applicable when the creative type is any of the following:
+                # - DISPLAY
                 # - RICH_MEDIA_INPAGE
                 # - RICH_MEDIA_INPAGE_FLOATING
                 # - RICH_MEDIA_IM_EXPAND
@@ -2819,7 +2794,6 @@
                 # - RICH_MEDIA_MOBILE_IN_APP
                 # - RICH_MEDIA_MULTI_FLOATING
                 # - RICH_MEDIA_PEEL_DOWN
-                # - ADVANCED_BANNER
                 # - VPAID_LINEAR
                 # - VPAID_NON_LINEAR
               { # Rich Media Exit Override.
@@ -2906,11 +2880,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
       "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
@@ -2941,7 +2915,7 @@
       "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. This field must be left blank if the ad is using a targeting template. Applicable when type is AD_SERVING_STANDARD_AD.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
diff --git a/docs/dyn/dfareporting_v2_6.advertiserGroups.html b/docs/dyn/dfareporting_v2_8.advertiserGroups.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_6.advertiserGroups.html
rename to docs/dyn/dfareporting_v2_8.advertiserGroups.html
index 1af0b9d..9e66136 100644
--- a/docs/dyn/dfareporting_v2_6.advertiserGroups.html
+++ b/docs/dyn/dfareporting_v2_8.advertiserGroups.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.advertiserGroups.html">advertiserGroups</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.advertiserGroups.html">advertiserGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -167,7 +167,7 @@
       NAME - 
   ids: string, Select only advertiser groups with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5beta1.advertisers.html b/docs/dyn/dfareporting_v2_8.advertisers.html
similarity index 99%
rename from docs/dyn/dfareporting_v2_5beta1.advertisers.html
rename to docs/dyn/dfareporting_v2_8.advertisers.html
index 1eb4728..0f66530 100644
--- a/docs/dyn/dfareporting_v2_5beta1.advertisers.html
+++ b/docs/dyn/dfareporting_v2_8.advertisers.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.advertisers.html">advertisers</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.advertisers.html">advertisers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -230,7 +230,7 @@
   includeAdvertisersWithoutGroupsOnly: boolean, Select only advertisers which do not belong to any advertiser group.
   onlyParent: boolean, Select only advertisers which use another advertiser's floodlight configuration.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5.browsers.html b/docs/dyn/dfareporting_v2_8.browsers.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_5.browsers.html
rename to docs/dyn/dfareporting_v2_8.browsers.html
index 3bb6a35..cbd8231 100644
--- a/docs/dyn/dfareporting_v2_5.browsers.html
+++ b/docs/dyn/dfareporting_v2_8.browsers.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.browsers.html">browsers</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.browsers.html">browsers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(profileId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.campaignCreativeAssociations.html b/docs/dyn/dfareporting_v2_8.campaignCreativeAssociations.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_5.campaignCreativeAssociations.html
rename to docs/dyn/dfareporting_v2_8.campaignCreativeAssociations.html
index 6489e26..af1f201 100644
--- a/docs/dyn/dfareporting_v2_5.campaignCreativeAssociations.html
+++ b/docs/dyn/dfareporting_v2_8.campaignCreativeAssociations.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.campaignCreativeAssociations.html">campaignCreativeAssociations</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.campaignCreativeAssociations.html">campaignCreativeAssociations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
@@ -118,7 +118,7 @@
   campaignId: string, Campaign ID in this association. (required)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_6.campaigns.html b/docs/dyn/dfareporting_v2_8.campaigns.html
similarity index 87%
rename from docs/dyn/dfareporting_v2_6.campaigns.html
rename to docs/dyn/dfareporting_v2_8.campaigns.html
index 1410c21..f4a98ce 100644
--- a/docs/dyn/dfareporting_v2_6.campaigns.html
+++ b/docs/dyn/dfareporting_v2_8.campaigns.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.campaigns.html">campaigns</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.campaigns.html">campaigns</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -139,7 +139,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -179,7 +179,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -194,12 +194,18 @@
         "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
         "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
       },
+      "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+        "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+        "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+        "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+        "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+      },
       "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -209,7 +215,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
@@ -267,7 +273,7 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
         },
       ],
       "optimizationModel": "A String", # Optimization model for this configuration.
@@ -307,7 +313,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -322,12 +328,18 @@
       "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
       "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
     },
+    "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+      "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+      "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+      "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+      "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+    },
     "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
     "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
     "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -337,7 +349,7 @@
       { # Audience Segment Group.
         "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
           { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
             "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
             "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
           },
@@ -387,7 +399,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -427,7 +439,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -442,12 +454,18 @@
         "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
         "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
       },
+      "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+        "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+        "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+        "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+        "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+      },
       "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -457,7 +475,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
@@ -479,7 +497,7 @@
   archived: boolean, Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.
   advertiserIds: string, Select only campaigns that belong to these advertisers. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -535,7 +553,7 @@
                   "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                   "id": "A String", # The ID associated with the value if available.
                 },
-                "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+                "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
               },
             ],
             "optimizationModel": "A String", # Optimization model for this configuration.
@@ -575,7 +593,7 @@
                     "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                     "id": "A String", # The ID associated with the value if available.
                   },
-                  "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+                  "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
                 },
               ],
               "optimizationModel": "A String", # Optimization model for this configuration.
@@ -590,12 +608,18 @@
             "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
             "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
           },
+          "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+            "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+            "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+            "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+            "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+          },
           "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
           "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
           "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
           "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
           },
           "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
           "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -605,7 +629,7 @@
             { # Audience Segment Group.
               "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
                 { # Audience Segment.
-                  "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+                  "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
                   "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
                   "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
                 },
@@ -680,7 +704,7 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
         },
       ],
       "optimizationModel": "A String", # Optimization model for this configuration.
@@ -720,7 +744,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -735,12 +759,18 @@
       "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
       "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
     },
+    "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+      "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+      "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+      "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+      "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+    },
     "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
     "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
     "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -750,7 +780,7 @@
       { # Audience Segment Group.
         "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
           { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
             "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
             "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
           },
@@ -800,7 +830,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -840,7 +870,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -855,12 +885,18 @@
         "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
         "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
       },
+      "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+        "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+        "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+        "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+        "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+      },
       "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -870,7 +906,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
@@ -926,7 +962,7 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
         },
       ],
       "optimizationModel": "A String", # Optimization model for this configuration.
@@ -966,7 +1002,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -981,12 +1017,18 @@
       "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
       "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
     },
+    "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+      "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+      "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+      "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+      "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+    },
     "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
     "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
     "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -996,7 +1038,7 @@
       { # Audience Segment Group.
         "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
           { # Audience Segment.
-            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
             "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
             "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
           },
@@ -1046,7 +1088,7 @@
               "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
               "id": "A String", # The ID associated with the value if available.
             },
-            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
           },
         ],
         "optimizationModel": "A String", # Optimization model for this configuration.
@@ -1086,7 +1128,7 @@
                 "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
                 "id": "A String", # The ID associated with the value if available.
               },
-              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              "weight": 42, # Weight associated with this optimization. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities. Value must be greater than or equal to 1.
             },
           ],
           "optimizationModel": "A String", # Optimization model for this configuration.
@@ -1101,12 +1143,18 @@
         "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
         "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
       },
+      "adBlockingConfiguration": { # Campaign ad blocking settings. # Ad blocking settings for this campaign.
+        "creativeBundleId": "A String", # ID of a creative bundle to use for this campaign. If set, brand-neutral ads will select creatives from this bundle. Otherwise, a default transparent pixel will be used.
+        "clickThroughUrl": "A String", # Click-through URL used by brand-neutral ads. This is a required field when overrideClickThroughUrl is set to true.
+        "enabled": True or False, # Whether this campaign has enabled ad blocking. When true, ad blocking is enabled for placements in the campaign, but this may be overridden by site and placement settings. When false, ad blocking is disabled for all placements under the campaign, regardless of site and placement settings.
+        "overrideClickThroughUrl": True or False, # Whether the brand-neutral ad's click-through URL comes from the campaign's creative bundle or the override URL. Must be set to true if ad blocking is enabled and no creative bundle is configured.
+      },
       "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
       "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
       "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
@@ -1116,7 +1164,7 @@
         { # Audience Segment Group.
           "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
             { # Audience Segment.
-              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "allocation": 42, # Weight allocated to this segment. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group. Acceptable values are 1 to 1000, inclusive.
               "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
               "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
             },
diff --git a/docs/dyn/dfareporting_v2_5.changeLogs.html b/docs/dyn/dfareporting_v2_8.changeLogs.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5.changeLogs.html
rename to docs/dyn/dfareporting_v2_8.changeLogs.html
index 109e043..205aca1 100644
--- a/docs/dyn/dfareporting_v2_5.changeLogs.html
+++ b/docs/dyn/dfareporting_v2_8.changeLogs.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.changeLogs.html">changeLogs</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.changeLogs.html">changeLogs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.cities.html b/docs/dyn/dfareporting_v2_8.cities.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_6.cities.html
rename to docs/dyn/dfareporting_v2_8.cities.html
index f1ef31e..d72b8e4 100644
--- a/docs/dyn/dfareporting_v2_6.cities.html
+++ b/docs/dyn/dfareporting_v2_8.cities.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.cities.html">cities</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.cities.html">cities</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.connectionTypes.html b/docs/dyn/dfareporting_v2_8.connectionTypes.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_5.connectionTypes.html
rename to docs/dyn/dfareporting_v2_8.connectionTypes.html
index 457b734..88a611e 100644
--- a/docs/dyn/dfareporting_v2_5.connectionTypes.html
+++ b/docs/dyn/dfareporting_v2_8.connectionTypes.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.connectionTypes.html">connectionTypes</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.connectionTypes.html">connectionTypes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.contentCategories.html b/docs/dyn/dfareporting_v2_8.contentCategories.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5.contentCategories.html
rename to docs/dyn/dfareporting_v2_8.contentCategories.html
index 6c6b002..229c2d9 100644
--- a/docs/dyn/dfareporting_v2_5.contentCategories.html
+++ b/docs/dyn/dfareporting_v2_8.contentCategories.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.contentCategories.html">contentCategories</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.contentCategories.html">contentCategories</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -167,7 +167,7 @@
       NAME - 
   ids: string, Select only content categories with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_8.conversions.html b/docs/dyn/dfareporting_v2_8.conversions.html
new file mode 100644
index 0000000..90d02e3
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_8.conversions.html
@@ -0,0 +1,262 @@
+<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="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.conversions.html">conversions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchinsert">batchinsert(profileId, body)</a></code></p>
+<p class="firstline">Inserts conversions.</p>
+<p class="toc_element">
+  <code><a href="#batchupdate">batchupdate(profileId, body)</a></code></p>
+<p class="firstline">Updates existing conversions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchinsert">batchinsert(profileId, body)</code>
+  <pre>Inserts conversions.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Insert Conversions Request.
+    "conversions": [ # The set of conversions to insert.
+      { # A Conversion represents when a user successfully performs a desired action after seeing an ad.
+        "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
+        "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
+        "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
+        "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
+        "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
+        "customVariables": [ # Custom floodlight variables.
+          { # A custom floodlight variable.
+            "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
+            "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
+            "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
+          },
+        ],
+        "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
+        "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
+        "value": 3.14, # The value of the conversion.
+        "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
+        "quantity": "A String", # The quantity of the conversion.
+        "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
+        "encryptedUserIdCandidates": [ # A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with NO_COOKIE_MATCH_FOUND error. When set, encryptionInfo should also be specified. This field may only be used when calling batchinsert; it is not supported by batchupdate. This field is mutually exclusive with encryptedUserId and mobileDeviceId. This or encryptedUserId or mobileDeviceId is a required field.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "dfareporting#conversionsBatchInsertRequest", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertRequest".
+    "encryptionInfo": { # A description of how user IDs are encrypted. # Describes how encryptedUserId or encryptedUserIdCandidates[] is encrypted. This is a required field if encryptedUserId or encryptedUserIdCandidates[] is used.
+      "kind": "dfareporting#encryptionInfo", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#encryptionInfo".
+      "encryptionEntityId": "A String", # The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.
+      "encryptionSource": "A String", # Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.
+      "encryptionEntityType": "A String", # The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Insert Conversions Response.
+    "status": [ # The insert status of each conversion. Statuses are returned in the same order that conversions are inserted.
+      { # The original conversion that was inserted or updated and whether there were any errors.
+        "conversion": { # A Conversion represents when a user successfully performs a desired action after seeing an ad. # The original conversion that was inserted or updated.
+          "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
+          "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
+          "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
+          "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
+          "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
+          "customVariables": [ # Custom floodlight variables.
+            { # A custom floodlight variable.
+              "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
+              "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
+              "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
+            },
+          ],
+          "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
+          "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
+          "value": 3.14, # The value of the conversion.
+          "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
+          "quantity": "A String", # The quantity of the conversion.
+          "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
+          "encryptedUserIdCandidates": [ # A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with NO_COOKIE_MATCH_FOUND error. When set, encryptionInfo should also be specified. This field may only be used when calling batchinsert; it is not supported by batchupdate. This field is mutually exclusive with encryptedUserId and mobileDeviceId. This or encryptedUserId or mobileDeviceId is a required field.
+            "A String",
+          ],
+        },
+        "errors": [ # A list of errors related to this conversion.
+          { # The error code and description for a conversion that failed to insert or update.
+            "kind": "dfareporting#conversionError", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionError".
+            "code": "A String", # The error code.
+            "message": "A String", # A description of the error.
+          },
+        ],
+        "kind": "dfareporting#conversionStatus", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionStatus".
+      },
+    ],
+    "hasFailures": True or False, # Indicates that some or all conversions failed to insert.
+    "kind": "dfareporting#conversionsBatchInsertResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchInsertResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="batchupdate">batchupdate(profileId, body)</code>
+  <pre>Updates existing conversions.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Update Conversions Request.
+    "conversions": [ # The set of conversions to update.
+      { # A Conversion represents when a user successfully performs a desired action after seeing an ad.
+        "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
+        "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
+        "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
+        "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
+        "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
+        "customVariables": [ # Custom floodlight variables.
+          { # A custom floodlight variable.
+            "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
+            "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
+            "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
+          },
+        ],
+        "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
+        "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
+        "value": 3.14, # The value of the conversion.
+        "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
+        "quantity": "A String", # The quantity of the conversion.
+        "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
+        "encryptedUserIdCandidates": [ # A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with NO_COOKIE_MATCH_FOUND error. When set, encryptionInfo should also be specified. This field may only be used when calling batchinsert; it is not supported by batchupdate. This field is mutually exclusive with encryptedUserId and mobileDeviceId. This or encryptedUserId or mobileDeviceId is a required field.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "dfareporting#conversionsBatchUpdateRequest", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchUpdateRequest".
+    "encryptionInfo": { # A description of how user IDs are encrypted. # Describes how encryptedUserId is encrypted. This is a required field if encryptedUserId is used.
+      "kind": "dfareporting#encryptionInfo", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#encryptionInfo".
+      "encryptionEntityId": "A String", # The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.
+      "encryptionSource": "A String", # Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.
+      "encryptionEntityType": "A String", # The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Update Conversions Response.
+    "status": [ # The update status of each conversion. Statuses are returned in the same order that conversions are updated.
+      { # The original conversion that was inserted or updated and whether there were any errors.
+        "conversion": { # A Conversion represents when a user successfully performs a desired action after seeing an ad. # The original conversion that was inserted or updated.
+          "ordinal": "A String", # The ordinal of the conversion. Use this field to control how conversions of the same user and day are de-duplicated. This is a required field.
+          "timestampMicros": "A String", # The timestamp of conversion, in Unix epoch micros. This is a required field.
+          "kind": "dfareporting#conversion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversion".
+          "childDirectedTreatment": True or False, # Whether the conversion was directed toward children.
+          "encryptedUserId": "A String", # The alphanumeric encrypted user ID. When set, encryptionInfo should also be specified. This field is mutually exclusive with encryptedUserIdCandidates[] and mobileDeviceId. This or encryptedUserIdCandidates[] or mobileDeviceId is a required field.
+          "customVariables": [ # Custom floodlight variables.
+            { # A custom floodlight variable.
+              "kind": "dfareporting#customFloodlightVariable", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#customFloodlightVariable".
+              "type": "A String", # The type of custom floodlight variable to supply a value for. These map to the "u[1-20]=" in the tags.
+              "value": "A String", # The value of the custom floodlight variable. The length of string must not exceed 50 characters.
+            },
+          ],
+          "floodlightConfigurationId": "A String", # Floodlight Configuration ID of this conversion. This is a required field.
+          "mobileDeviceId": "A String", # The mobile device ID. This field is mutually exclusive with encryptedUserId and encryptedUserIdCandidates[]. This or encryptedUserId or encryptedUserIdCandidates[] is a required field.
+          "value": 3.14, # The value of the conversion.
+          "limitAdTracking": True or False, # Whether Limit Ad Tracking is enabled. When set to true, the conversion will be used for reporting but not targeting. This will prevent remarketing.
+          "quantity": "A String", # The quantity of the conversion.
+          "floodlightActivityId": "A String", # Floodlight Activity ID of this conversion. This is a required field.
+          "encryptedUserIdCandidates": [ # A list of the alphanumeric encrypted user IDs. Any user ID with exposure prior to the conversion timestamp will be used in the inserted conversion. If no such user ID is found then the conversion will be rejected with NO_COOKIE_MATCH_FOUND error. When set, encryptionInfo should also be specified. This field may only be used when calling batchinsert; it is not supported by batchupdate. This field is mutually exclusive with encryptedUserId and mobileDeviceId. This or encryptedUserId or mobileDeviceId is a required field.
+            "A String",
+          ],
+        },
+        "errors": [ # A list of errors related to this conversion.
+          { # The error code and description for a conversion that failed to insert or update.
+            "kind": "dfareporting#conversionError", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionError".
+            "code": "A String", # The error code.
+            "message": "A String", # A description of the error.
+          },
+        ],
+        "kind": "dfareporting#conversionStatus", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionStatus".
+      },
+    ],
+    "hasFailures": True or False, # Indicates that some or all conversions failed to update.
+    "kind": "dfareporting#conversionsBatchUpdateResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#conversionsBatchUpdateResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_4.countries.html b/docs/dyn/dfareporting_v2_8.countries.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_4.countries.html
rename to docs/dyn/dfareporting_v2_8.countries.html
index 7475fa1..074df16 100644
--- a/docs/dyn/dfareporting_v2_4.countries.html
+++ b/docs/dyn/dfareporting_v2_8.countries.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.countries.html">countries</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.countries.html">countries</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, dartId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.creativeAssets.html b/docs/dyn/dfareporting_v2_8.creativeAssets.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_6.creativeAssets.html
rename to docs/dyn/dfareporting_v2_8.creativeAssets.html
index 9798c18..0a74b28 100644
--- a/docs/dyn/dfareporting_v2_6.creativeAssets.html
+++ b/docs/dyn/dfareporting_v2_8.creativeAssets.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.creativeAssets.html">creativeAssets</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.creativeAssets.html">creativeAssets</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#insert">insert(profileId, advertiserId, body=None, media_body=None, media_mime_type=None)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.creativeFieldValues.html b/docs/dyn/dfareporting_v2_8.creativeFieldValues.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_5.creativeFieldValues.html
rename to docs/dyn/dfareporting_v2_8.creativeFieldValues.html
index e4f28ac..4d2d892 100644
--- a/docs/dyn/dfareporting_v2_5.creativeFieldValues.html
+++ b/docs/dyn/dfareporting_v2_8.creativeFieldValues.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.creativeFieldValues.html">creativeFieldValues</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.creativeFieldValues.html">creativeFieldValues</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, creativeFieldId, id)</a></code></p>
@@ -168,7 +168,7 @@
   ids: string, Select only creative field values with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_4.creativeFields.html b/docs/dyn/dfareporting_v2_8.creativeFields.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_4.creativeFields.html
rename to docs/dyn/dfareporting_v2_8.creativeFields.html
index 3090c0b..c29b6dc 100644
--- a/docs/dyn/dfareporting_v2_4.creativeFields.html
+++ b/docs/dyn/dfareporting_v2_8.creativeFields.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.creativeFields.html">creativeFields</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.creativeFields.html">creativeFields</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -85,7 +85,7 @@
 <p class="firstline">Inserts a new creative field.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of creative fields, possibly filtered.</p>
+<p class="firstline">Retrieves a list of creative fields, possibly filtered. This method supports paging.</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>
@@ -185,7 +185,7 @@
 
 <div class="method">
     <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
-  <pre>Retrieves a list of creative fields, possibly filtered.
+  <pre>Retrieves a list of creative fields, possibly filtered. This method supports paging.
 
 Args:
   profileId: string, User profile ID associated with this request. (required)
@@ -198,7 +198,7 @@
   advertiserIds: string, Select only creative fields that belong to these advertisers. (repeated)
   ids: string, Select only creative fields with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5.creativeGroups.html b/docs/dyn/dfareporting_v2_8.creativeGroups.html
similarity index 90%
rename from docs/dyn/dfareporting_v2_5.creativeGroups.html
rename to docs/dyn/dfareporting_v2_8.creativeGroups.html
index d8586cf..868f2d0 100644
--- a/docs/dyn/dfareporting_v2_5.creativeGroups.html
+++ b/docs/dyn/dfareporting_v2_8.creativeGroups.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.creativeGroups.html">creativeGroups</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.creativeGroups.html">creativeGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -108,10 +108,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -139,10 +136,7 @@
     "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
     "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
     "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
     "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -164,10 +158,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -198,7 +189,7 @@
   groupNumber: integer, Select only creative groups that belong to this subgroup.
   maxResults: integer, Maximum number of results to return.
   ids: string, Select only creative groups with these IDs. (repeated)
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -213,10 +204,7 @@
           "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
           "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
           "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-              # Acceptable values are:
-              # - 1
-              # - 2
+          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
           "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
           "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
             "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -262,10 +250,7 @@
     "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
     "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
     "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
     "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -287,10 +272,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -318,10 +300,7 @@
     "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
     "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
     "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-        # Acceptable values are:
-        # - 1
-        # - 2
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
     "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
     "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -343,10 +322,7 @@
       "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
       "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
       "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
-      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
-          # Acceptable values are:
-          # - 1
-          # - 2
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to a subgroup in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion. Acceptable values are 1 to 2, inclusive.
       "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
       "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
diff --git a/docs/dyn/dfareporting_v2_6.creatives.html b/docs/dyn/dfareporting_v2_8.creatives.html
similarity index 91%
rename from docs/dyn/dfareporting_v2_6.creatives.html
rename to docs/dyn/dfareporting_v2_8.creatives.html
index 6719b2b..3d46879 100644
--- a/docs/dyn/dfareporting_v2_6.creatives.html
+++ b/docs/dyn/dfareporting_v2_8.creatives.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.creatives.html">creatives</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.creatives.html">creatives</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -135,11 +135,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -167,6 +167,10 @@
       },
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -191,11 +195,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -225,11 +229,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -240,6 +244,10 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
       ],
+      "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
       "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -260,13 +268,12 @@
         "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
         "id": "A String", # The ID associated with the value if available.
       },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -280,11 +287,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -293,26 +300,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -350,7 +357,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -369,11 +376,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -384,7 +391,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -395,11 +402,12 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
       "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
       "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
       "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -409,7 +417,7 @@
           "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
         },
       ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
       "active": True or False, # Whether the creative is active. Applicable to all creative types.
       "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
           #
@@ -421,6 +429,10 @@
           # - "DISPLAY_INTERSTITIAL"
         "A String",
       ],
+      "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+        "registry": "A String", # Registry used for the Ad ID value.
+        "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+      },
       "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
       "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
         "A String",
@@ -450,7 +462,7 @@
         ],
         "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
       },
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "A String",
       ],
@@ -502,11 +514,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -534,6 +546,10 @@
     },
     "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
     "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+    "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+    },
     "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
     "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
     "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -558,11 +574,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -592,11 +608,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -607,6 +623,10 @@
         "advertiserCustomEventName": "A String", # User-entered name for the event.
       },
     ],
+    "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+    },
     "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
     "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
     "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -627,13 +647,12 @@
       "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
       "id": "A String", # The ID associated with the value if available.
     },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
         # 
@@ -647,11 +666,11 @@
         "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -660,26 +679,26 @@
           "A String",
         ],
         "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
         "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
         "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
         "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
         "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
         "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -717,7 +736,7 @@
         ],
         "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
         "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
         "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
         "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
           "targetType": "A String", # Target type used by the event.
@@ -736,11 +755,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -751,7 +770,7 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
         "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
         "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
           "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -762,11 +781,12 @@
           "top": 42, # Offset distance from top side of an asset or a window.
           "left": 42, # Offset distance from left side of an asset or a window.
         },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
       },
     ],
     "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
     "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+    "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
     "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
     "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
     "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -776,7 +796,7 @@
         "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
       },
     ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
     "active": True or False, # Whether the creative is active. Applicable to all creative types.
     "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
         # 
@@ -788,6 +808,10 @@
         # - "DISPLAY_INTERSTITIAL"
       "A String",
     ],
+    "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+      "registry": "A String", # Registry used for the Ad ID value.
+      "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+    },
     "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
     "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "A String",
@@ -817,7 +841,7 @@
       ],
       "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
     },
-    "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "A String",
     ],
@@ -863,11 +887,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -895,6 +919,10 @@
       },
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -919,11 +947,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -953,11 +981,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -968,6 +996,10 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
       ],
+      "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
       "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -988,13 +1020,12 @@
         "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
         "id": "A String", # The ID associated with the value if available.
       },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -1008,11 +1039,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -1021,26 +1052,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -1078,7 +1109,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -1097,11 +1128,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1112,7 +1143,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -1123,11 +1154,12 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
       "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
       "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
       "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -1137,7 +1169,7 @@
           "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
         },
       ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
       "active": True or False, # Whether the creative is active. Applicable to all creative types.
       "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
           #
@@ -1149,6 +1181,10 @@
           # - "DISPLAY_INTERSTITIAL"
         "A String",
       ],
+      "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+        "registry": "A String", # Registry used for the Ad ID value.
+        "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+      },
       "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
       "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
         "A String",
@@ -1178,7 +1214,7 @@
         ],
         "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
       },
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "A String",
       ],
@@ -1201,7 +1237,7 @@
   sizeIds: string, Select only creatives with these size IDs. (repeated)
   archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -1282,11 +1318,11 @@
                   "left": 42, # Offset distance from left side of an asset or a window.
                 },
                 "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               },
               "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1314,6 +1350,10 @@
           },
           "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
           "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+          "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
           "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
           "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
           "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -1338,11 +1378,11 @@
                   "left": 42, # Offset distance from left side of an asset or a window.
                 },
                 "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               },
               "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1372,11 +1412,11 @@
                   "left": 42, # Offset distance from left side of an asset or a window.
                 },
                 "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                  "width": 42, # Width of this size.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                  "height": 42, # Height of this size.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                 },
               },
               "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1387,6 +1427,10 @@
               "advertiserCustomEventName": "A String", # User-entered name for the event.
             },
           ],
+          "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
           "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
           "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
           "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -1407,13 +1451,12 @@
             "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
             "id": "A String", # The ID associated with the value if available.
           },
-          "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
               #
@@ -1427,11 +1470,11 @@
               "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
               "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
               "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -1440,26 +1483,26 @@
                 "A String",
               ],
               "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
               "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
               "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
               "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
               "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
               "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
               "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
               "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
               "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -1497,7 +1540,7 @@
               ],
               "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
               "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-              "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+              "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
               "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
               "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
                 "targetType": "A String", # Target type used by the event.
@@ -1516,11 +1559,11 @@
                     "left": 42, # Offset distance from left side of an asset or a window.
                   },
                   "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                    "width": 42, # Width of this size.
+                    "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                     "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                     "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                     "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                    "height": 42, # Height of this size.
+                    "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
                   },
                 },
                 "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1531,7 +1574,7 @@
                 "advertiserCustomEventName": "A String", # User-entered name for the event.
               },
               "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
               "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
                 "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
                 "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -1542,11 +1585,12 @@
                 "top": 42, # Offset distance from top side of an asset or a window.
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
-              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
             },
           ],
           "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
           "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+          "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
           "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
           "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -1556,7 +1600,7 @@
               "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
             },
           ],
-          "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+          "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
           "active": True or False, # Whether the creative is active. Applicable to all creative types.
           "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
               #
@@ -1568,6 +1612,10 @@
               # - "DISPLAY_INTERSTITIAL"
             "A String",
           ],
+          "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+            "registry": "A String", # Registry used for the Ad ID value.
+            "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+          },
           "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
           "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
             "A String",
@@ -1597,7 +1645,7 @@
             ],
             "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
           },
-          "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+          "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
           "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
             "A String",
           ],
@@ -1666,11 +1714,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1698,6 +1746,10 @@
     },
     "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
     "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+    "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+    },
     "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
     "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
     "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -1722,11 +1774,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1756,11 +1808,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1771,6 +1823,10 @@
         "advertiserCustomEventName": "A String", # User-entered name for the event.
       },
     ],
+    "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+    },
     "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
     "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
     "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -1791,13 +1847,12 @@
       "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
       "id": "A String", # The ID associated with the value if available.
     },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
         # 
@@ -1811,11 +1866,11 @@
         "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -1824,26 +1879,26 @@
           "A String",
         ],
         "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
         "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
         "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
         "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
         "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
         "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -1881,7 +1936,7 @@
         ],
         "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
         "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
         "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
         "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
           "targetType": "A String", # Target type used by the event.
@@ -1900,11 +1955,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -1915,7 +1970,7 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
         "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
         "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
           "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -1926,11 +1981,12 @@
           "top": 42, # Offset distance from top side of an asset or a window.
           "left": 42, # Offset distance from left side of an asset or a window.
         },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
       },
     ],
     "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
     "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+    "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
     "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
     "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
     "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -1940,7 +1996,7 @@
         "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
       },
     ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
     "active": True or False, # Whether the creative is active. Applicable to all creative types.
     "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
         # 
@@ -1952,6 +2008,10 @@
         # - "DISPLAY_INTERSTITIAL"
       "A String",
     ],
+    "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+      "registry": "A String", # Registry used for the Ad ID value.
+      "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+    },
     "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
     "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "A String",
@@ -1981,7 +2041,7 @@
       ],
       "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
     },
-    "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "A String",
     ],
@@ -2027,11 +2087,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2059,6 +2119,10 @@
       },
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -2083,11 +2147,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2117,11 +2181,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2132,6 +2196,10 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
       ],
+      "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
       "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -2152,13 +2220,12 @@
         "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
         "id": "A String", # The ID associated with the value if available.
       },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -2172,11 +2239,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -2185,26 +2252,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -2242,7 +2309,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -2261,11 +2328,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2276,7 +2343,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -2287,11 +2354,12 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
       "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
       "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
       "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -2301,7 +2369,7 @@
           "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
         },
       ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
       "active": True or False, # Whether the creative is active. Applicable to all creative types.
       "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
           #
@@ -2313,6 +2381,10 @@
           # - "DISPLAY_INTERSTITIAL"
         "A String",
       ],
+      "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+        "registry": "A String", # Registry used for the Ad ID value.
+        "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+      },
       "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
       "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
         "A String",
@@ -2342,7 +2414,7 @@
         ],
         "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
       },
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "A String",
       ],
@@ -2394,11 +2466,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2426,6 +2498,10 @@
     },
     "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
     "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+    "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+    },
     "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
     "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
     "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -2450,11 +2526,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2484,11 +2560,11 @@
             "left": 42, # Offset distance from left side of an asset or a window.
           },
           "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
         },
         "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2499,6 +2575,10 @@
         "advertiserCustomEventName": "A String", # User-entered name for the event.
       },
     ],
+    "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+      "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+      "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+    },
     "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
     "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
     "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -2519,13 +2599,12 @@
       "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
       "id": "A String", # The ID associated with the value if available.
     },
-    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
         # 
@@ -2539,11 +2618,11 @@
         "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -2552,26 +2631,26 @@
           "A String",
         ],
         "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
         "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
         "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
         "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
         "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
         "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "width": 42, # Width of this size.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
           "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
           "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
           "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-          "height": 42, # Height of this size.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
         },
         "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
         "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -2609,7 +2688,7 @@
         ],
         "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
         "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
         "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
         "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
           "targetType": "A String", # Target type used by the event.
@@ -2628,11 +2707,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2643,7 +2722,7 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
         "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
         "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
           "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -2654,11 +2733,12 @@
           "top": 42, # Offset distance from top side of an asset or a window.
           "left": 42, # Offset distance from left side of an asset or a window.
         },
-        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
       },
     ],
     "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
     "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+    "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
     "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
     "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
     "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -2668,7 +2748,7 @@
         "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
       },
     ],
-    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
     "active": True or False, # Whether the creative is active. Applicable to all creative types.
     "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
         # 
@@ -2680,6 +2760,10 @@
         # - "DISPLAY_INTERSTITIAL"
       "A String",
     ],
+    "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+      "registry": "A String", # Registry used for the Ad ID value.
+      "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+    },
     "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
     "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "A String",
@@ -2709,7 +2793,7 @@
       ],
       "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
     },
-    "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
     "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "A String",
     ],
@@ -2755,11 +2839,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2787,6 +2871,10 @@
       },
       "dynamicAssetSelection": True or False, # Set this to true to enable the use of rules to target individual assets in this creative. When set to true creativeAssetSelection must be set. This also controls asset-level companions. When this is true, companion creatives should be assigned to creative assets. Learn more. Applicable to INSTREAM_VIDEO creatives.
       "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "progressOffset": { # Video Offset # Amount of time to play the video before counting a view. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
       "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
       "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
@@ -2811,11 +2899,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2845,11 +2933,11 @@
               "left": 42, # Offset distance from left side of an asset or a window.
             },
             "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-              "width": 42, # Width of this size.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
               "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
               "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
               "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-              "height": 42, # Height of this size.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
             },
           },
           "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -2860,6 +2948,10 @@
           "advertiserCustomEventName": "A String", # User-entered name for the event.
         },
       ],
+      "skipOffset": { # Video Offset # Amount of time to play the video before the skip button appears. Applicable to the following creative types: all INSTREAM_VIDEO.
+        "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+        "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+      },
       "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: DISPLAY when the primary asset type is not HTML_IMAGE.
       "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
       "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
@@ -2880,13 +2972,12 @@
         "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
         "id": "A String", # The ID associated with the value if available.
       },
-      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE, FLASH_INPAGE creatives, and for DISPLAY creatives with a primary asset of type HTML_IMAGE, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: DISPLAY, DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "type": "A String", # Type of this creative. This is a required field. Applicable to all creative types.
           #
@@ -2900,11 +2991,11 @@
           "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, all RICH_MEDIA, and all VPAID. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
           "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
@@ -2913,26 +3004,26 @@
             "A String",
           ],
           "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
-          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO.
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR_VIDEO. Value must be greater than or equal to 1.
           "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
           "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
           "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_DISPLAY_MULTI_FLOATING_INTERSTITIAL.
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE, creatives if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
           "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the asset. This is a read-only, auto-generated field.
@@ -2970,7 +3061,7 @@
           ],
           "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
           "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
-          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "zIndex": 42, # zIndex value of an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY. Acceptable values are -999999999 to 999999999, inclusive.
           "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
           "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
             "targetType": "A String", # Target type used by the event.
@@ -2989,11 +3080,11 @@
                 "left": 42, # Offset distance from left side of an asset or a window.
               },
               "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
-                "width": 42, # Width of this size.
+                "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
                 "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
                 "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
                 "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-                "height": 42, # Height of this size.
+                "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
               },
             },
             "advertiserCustomEventId": "A String", # Unique ID of this event used by DDM Reporting and Data Transfer. This is a read-only field.
@@ -3004,7 +3095,7 @@
             "advertiserCustomEventName": "A String", # User-entered name for the event.
           },
           "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
-          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height. Acceptable values are 0 to 9.99, inclusive.
           "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
             "type": "A String", # Type of asset to upload. This is a required field. FLASH and IMAGE are no longer supported for new uploads. All image assets should use HTML_IMAGE.
             "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
@@ -3015,11 +3106,12 @@
             "top": 42, # Offset distance from top side of an asset or a window.
             "left": 42, # Offset distance from left side of an asset or a window.
           },
-          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA. Value must be greater than or equal to 0.
         },
       ],
       "redirectUrl": "A String", # URL of hosted image or hosted video or another ad tag. For INSTREAM_VIDEO_REDIRECT creatives this is the in-stream video redirect URL. The standard for a VAST (Video Ad Serving Template) ad response allows for a redirect link to another VAST 2.0 or 3.0 call. This is a required field when applicable. Applicable to the following creative types: DISPLAY_REDIRECT, INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO_REDIRECT
       "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "autoAdvanceImages": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
       "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
       "convertFlashToHtml5": True or False, # Whether Flash assets associated with the creative need to be automatically converted to HTML5. This flag is enabled by default and users can choose to disable it if they don't want the system to generate and use HTML5 asset for this creative. Applicable to the following creative type: FLASH_INPAGE. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
       "clickTags": [ # Click tags of the creative. For DISPLAY, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For DISPLAY_IMAGE_GALLERY creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY, FLASH_INPAGE, HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
@@ -3029,7 +3121,7 @@
           "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
         },
       ],
-      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: all INSTREAM_VIDEO and all VPAID.
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to INSTREAM_VIDEO_REDIRECT creatives.
       "active": True or False, # Whether the creative is active. Applicable to all creative types.
       "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. DISPLAY and DISPLAY_INTERSTITIAL refer to rendering either on desktop or on mobile devices or in mobile apps for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. Only pre-existing creatives may have these compatibilities since new creatives will either be assigned DISPLAY or DISPLAY_INTERSTITIAL instead. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
           #
@@ -3041,6 +3133,10 @@
           # - "DISPLAY_INTERSTITIAL"
         "A String",
       ],
+      "universalAdId": { # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID. # A Universal Ad ID as per the VAST 4.0 spec. Applicable to the following creative types: INSTREAM_VIDEO and VPAID.
+        "registry": "A String", # Registry used for the Ad ID value.
+        "value": "A String", # ID value for this creative. Only alphanumeric characters and the following symbols are valid: "_/\-". Maximum length is 64 characters. Read only when registry is DCM.
+      },
       "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
       "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
         "A String",
@@ -3070,7 +3166,7 @@
         ],
         "defaultAssetId": "A String", # A creativeAssets[].id. This should refer to one of the parent assets in this creative, and will be served if none of the rules match. This is a required field.
       },
-      "auto_advance_images": True or False, # Whether images are automatically advanced for image gallery creatives. Applicable to the following creative types: DISPLAY_IMAGE_GALLERY.
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
       "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: HTML5_BANNER. Applicable to DISPLAY when the primary asset type is not HTML_IMAGE.
         "A String",
       ],
diff --git a/docs/dyn/dfareporting_v2_4.dimensionValues.html b/docs/dyn/dfareporting_v2_8.dimensionValues.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_4.dimensionValues.html
rename to docs/dyn/dfareporting_v2_8.dimensionValues.html
index f8d1faf..b37628d 100644
--- a/docs/dyn/dfareporting_v2_4.dimensionValues.html
+++ b/docs/dyn/dfareporting_v2_8.dimensionValues.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.dimensionValues.html">dimensionValues</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.dimensionValues.html">dimensionValues</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#query">query(profileId, body, pageToken=None, maxResults=None)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.directorySiteContacts.html b/docs/dyn/dfareporting_v2_8.directorySiteContacts.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_5.directorySiteContacts.html
rename to docs/dyn/dfareporting_v2_8.directorySiteContacts.html
index 9c3b906..55ccdea 100644
--- a/docs/dyn/dfareporting_v2_5.directorySiteContacts.html
+++ b/docs/dyn/dfareporting_v2_8.directorySiteContacts.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.directorySiteContacts.html">directorySiteContacts</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.directorySiteContacts.html">directorySiteContacts</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -124,7 +124,7 @@
       NAME - 
   ids: string, Select only directory site contacts with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5beta1.directorySites.html b/docs/dyn/dfareporting_v2_8.directorySites.html
similarity index 90%
rename from docs/dyn/dfareporting_v2_5beta1.directorySites.html
rename to docs/dyn/dfareporting_v2_8.directorySites.html
index 9d686de..0e1a287 100644
--- a/docs/dyn/dfareporting_v2_5beta1.directorySites.html
+++ b/docs/dyn/dfareporting_v2_8.directorySites.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.directorySites.html">directorySites</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.directorySites.html">directorySites</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -81,7 +81,7 @@
   <code><a href="#insert">insert(profileId, body)</a></code></p>
 <p class="firstline">Inserts a new directory site.</p>
 <p class="toc_element">
-  <code><a href="#list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</a></code></p>
+  <code><a href="#list">list(profileId, dfpNetworkCode=None, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, parentId=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, ids=None, sortField=None)</a></code></p>
 <p class="firstline">Retrieves a list of directory sites, possibly filtered. This method supports paging.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -100,24 +100,24 @@
 
     { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
       "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
+      "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+      "description": "A String", # Description of this directory site. This is a read-only field.
       "settings": { # Directory Site Settings # Directory site settings.
         "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
         "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
+        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
+        "dfpSettings": { # DFP Settings # Directory site DFP settings.
           "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
+          "dfpNetworkCode": "A String", # DFP network code for this directory site.
           "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
           "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
+          "dfpNetworkName": "A String", # DFP network name for this directory site.
         },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
         "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
         "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
+        "instreamVideoPlacementAccepted": True or False, # Whether this site accepts in-stream video ads.
       },
-      "currencyId": "A String", # Currency ID of this directory site.
+      "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
           # Possible values are:
           # - "1" for USD
           # - "2" for GBP
@@ -166,6 +166,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "inpageTagFormats": [ # Tag types for regular placements.
           #
           # Acceptable values are:
@@ -216,24 +217,24 @@
 
 { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
     "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-    "countryId": "A String", # Country ID of this directory site.
-    "description": "A String", # Description of this directory site.
+    "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+    "description": "A String", # Description of this directory site. This is a read-only field.
     "settings": { # Directory Site Settings # Directory site settings.
       "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
       "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-      "dfp_settings": { # DFP Settings # Directory site DFP settings.
+      "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
+      "dfpSettings": { # DFP Settings # Directory site DFP settings.
         "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-        "dfp_network_name": "A String", # DFP network name for this directory site.
+        "dfpNetworkCode": "A String", # DFP network code for this directory site.
         "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
         "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-        "dfp_network_code": "A String", # DFP network code for this directory site.
+        "dfpNetworkName": "A String", # DFP network name for this directory site.
       },
-      "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-      "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
       "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
       "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
+      "instreamVideoPlacementAccepted": True or False, # Whether this site accepts in-stream video ads.
     },
-    "currencyId": "A String", # Currency ID of this directory site.
+    "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
         # Possible values are:
         # - "1" for USD
         # - "2" for GBP
@@ -282,6 +283,7 @@
         # - "46" for AED
         # - "47" for BGN
         # - "48" for HRK
+        # - "49" for MXN
     "inpageTagFormats": [ # Tag types for regular placements.
         # 
         # Acceptable values are:
@@ -326,24 +328,24 @@
 
     { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
       "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-      "countryId": "A String", # Country ID of this directory site.
-      "description": "A String", # Description of this directory site.
+      "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+      "description": "A String", # Description of this directory site. This is a read-only field.
       "settings": { # Directory Site Settings # Directory site settings.
         "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
         "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-        "dfp_settings": { # DFP Settings # Directory site DFP settings.
+        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
+        "dfpSettings": { # DFP Settings # Directory site DFP settings.
           "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-          "dfp_network_name": "A String", # DFP network name for this directory site.
+          "dfpNetworkCode": "A String", # DFP network code for this directory site.
           "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
           "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-          "dfp_network_code": "A String", # DFP network code for this directory site.
+          "dfpNetworkName": "A String", # DFP network name for this directory site.
         },
-        "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-        "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
         "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
         "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
+        "instreamVideoPlacementAccepted": True or False, # Whether this site accepts in-stream video ads.
       },
-      "currencyId": "A String", # Currency ID of this directory site.
+      "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
           # Possible values are:
           # - "1" for USD
           # - "2" for GBP
@@ -392,6 +394,7 @@
           # - "46" for AED
           # - "47" for BGN
           # - "48" for HRK
+          # - "49" for MXN
       "inpageTagFormats": [ # Tag types for regular placements.
           #
           # Acceptable values are:
@@ -432,30 +435,30 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</code>
+    <code class="details" id="list">list(profileId, dfpNetworkCode=None, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, parentId=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, ids=None, sortField=None)</code>
   <pre>Retrieves a list of directory sites, possibly filtered. This method supports paging.
 
 Args:
   profileId: string, User profile ID associated with this request. (required)
+  dfpNetworkCode: string, Select only directory sites with this DFP network code.
   countryId: string, Select only directory sites with this country ID.
   acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  acceptsPublisherPaidPlacements: boolean, Select only directory sites that accept publisher paid placements. This field can be left blank.
+  parentId: string, Select only directory sites with this parent ID.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
-  parentId: string, Select only directory sites with this parent ID.
-  acceptsPublisherPaidPlacements: boolean, Select only directory sites that accept publisher paid placements. This field can be left blank.
   acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
   maxResults: integer, Maximum number of results to return.
   active: boolean, Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.
   searchString: string, Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, "directory site*2015" will return objects with names like "directory site June 2015", "directory site April 2015", or simply "directory site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site" will match objects with name "my directory site", "directory site 2015" or simply, "directory site".
+  ids: string, Select only directory sites with these IDs. (repeated)
   sortField: string, Field by which to sort the list.
     Allowed values
       ID - 
       NAME - 
-  ids: string, Select only directory sites with these IDs. (repeated)
-  dfp_network_code: string, Select only directory sites with this DFP network code.
 
 Returns:
   An object of the form:
@@ -466,24 +469,24 @@
     "directorySites": [ # Directory site collection.
       { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
           "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
-          "countryId": "A String", # Country ID of this directory site.
-          "description": "A String", # Description of this directory site.
+          "countryId": "A String", # Country ID of this directory site. This is a read-only field.
+          "description": "A String", # Description of this directory site. This is a read-only field.
           "settings": { # Directory Site Settings # Directory site settings.
             "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
             "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
-            "dfp_settings": { # DFP Settings # Directory site DFP settings.
+            "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
+            "dfpSettings": { # DFP Settings # Directory site DFP settings.
               "publisherPortalOnly": True or False, # Whether this directory site is available only via DoubleClick Publisher Portal.
-              "dfp_network_name": "A String", # DFP network name for this directory site.
+              "dfpNetworkCode": "A String", # DFP network code for this directory site.
               "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
               "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
-              "dfp_network_code": "A String", # DFP network code for this directory site.
+              "dfpNetworkName": "A String", # DFP network name for this directory site.
             },
-            "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification ins tags.
-            "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
             "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
             "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
+            "instreamVideoPlacementAccepted": True or False, # Whether this site accepts in-stream video ads.
           },
-          "currencyId": "A String", # Currency ID of this directory site.
+          "currencyId": "A String", # Currency ID of this directory site. This is a read-only field.
               # Possible values are:
               # - "1" for USD
               # - "2" for GBP
@@ -532,6 +535,7 @@
               # - "46" for AED
               # - "47" for BGN
               # - "48" for HRK
+              # - "49" for MXN
           "inpageTagFormats": [ # Tag types for regular placements.
               #
               # Acceptable values are:
diff --git a/docs/dyn/dfareporting_v2_6.dynamicTargetingKeys.html b/docs/dyn/dfareporting_v2_8.dynamicTargetingKeys.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_6.dynamicTargetingKeys.html
rename to docs/dyn/dfareporting_v2_8.dynamicTargetingKeys.html
index ffab043..b5865e8 100644
--- a/docs/dyn/dfareporting_v2_6.dynamicTargetingKeys.html
+++ b/docs/dyn/dfareporting_v2_8.dynamicTargetingKeys.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.dynamicTargetingKeys.html">dynamicTargetingKeys</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.dynamicTargetingKeys.html">dynamicTargetingKeys</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, objectId, name, objectType)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_4.eventTags.html b/docs/dyn/dfareporting_v2_8.eventTags.html
similarity index 99%
rename from docs/dyn/dfareporting_v2_4.eventTags.html
rename to docs/dyn/dfareporting_v2_8.eventTags.html
index 213c87a..74797c4 100644
--- a/docs/dyn/dfareporting_v2_4.eventTags.html
+++ b/docs/dyn/dfareporting_v2_8.eventTags.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.eventTags.html">eventTags</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.eventTags.html">eventTags</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -249,7 +249,7 @@
   campaignId: string, Select only event tags that belong to this campaign.
   advertiserId: string, Select only event tags that belong to this advertiser.
   adId: string, Select only event tags that belong to this ad.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_6.files.html b/docs/dyn/dfareporting_v2_8.files.html
similarity index 93%
rename from docs/dyn/dfareporting_v2_6.files.html
rename to docs/dyn/dfareporting_v2_8.files.html
index 7a847c8..2f94fb0 100644
--- a/docs/dyn/dfareporting_v2_6.files.html
+++ b/docs/dyn/dfareporting_v2_8.files.html
@@ -72,14 +72,14 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.files.html">files</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.files.html">files</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
+<p class="firstline">Retrieves a report file by its report ID and file ID. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#get_media">get_media(reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
+<p class="firstline">Retrieves a report file by its report ID and file ID. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
 <p class="firstline">Lists files for a user profile.</p>
@@ -89,7 +89,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
+  <pre>Retrieves a report file by its report ID and file ID. This method supports media download.
 
 Args:
   reportId: string, The ID of the report. (required)
@@ -122,7 +122,7 @@
 
 <div class="method">
     <code class="details" id="get_media">get_media(reportId, fileId)</code>
-  <pre>Retrieves a report file by its report ID and file ID.
+  <pre>Retrieves a report file by its report ID and file ID. This method supports media download.
 
 Args:
   reportId: string, The ID of the report. (required)
@@ -142,7 +142,7 @@
   profileId: string, The DFA profile ID. (required)
   pageToken: string, The value of the nextToken from the previous result page.
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
@@ -150,7 +150,7 @@
     Allowed values
       ID - Sort by file ID.
       LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
+  scope: string, The scope that defines which results are returned.
     Allowed values
       ALL - All files in account.
       MINE - My files.
diff --git a/docs/dyn/dfareporting_v2_5.floodlightActivities.html b/docs/dyn/dfareporting_v2_8.floodlightActivities.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5.floodlightActivities.html
rename to docs/dyn/dfareporting_v2_8.floodlightActivities.html
index 9ec116a..ba0636e 100644
--- a/docs/dyn/dfareporting_v2_5.floodlightActivities.html
+++ b/docs/dyn/dfareporting_v2_8.floodlightActivities.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.floodlightActivities.html">floodlightActivities</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.floodlightActivities.html">floodlightActivities</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -197,7 +197,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -308,7 +308,7 @@
     "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
     "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
     "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
     "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
     "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
     "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -413,7 +413,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -467,7 +467,7 @@
   floodlightActivityGroupTagString: string, Select only floodlight activities with the specified floodlight activity group tag string.
   floodlightActivityGroupIds: string, Select only floodlight activities with the specified floodlight activity group IDs. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -551,7 +551,7 @@
           "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
           "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
           "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
           "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
           "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
           "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -679,7 +679,7 @@
     "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
     "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
     "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
     "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
     "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
     "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -784,7 +784,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -895,7 +895,7 @@
     "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
     "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
     "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
     "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
     "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
     "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
@@ -1000,7 +1000,7 @@
       "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
       "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
       "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
-      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag. Applicable only when floodlightActivityGroupType is COUNTER and countingMethod is STANDARD_COUNTING or UNIQUE_COUNTING.
       "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
       "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
       "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
diff --git a/docs/dyn/dfareporting_v2_5beta1.floodlightActivityGroups.html b/docs/dyn/dfareporting_v2_8.floodlightActivityGroups.html
similarity index 99%
rename from docs/dyn/dfareporting_v2_5beta1.floodlightActivityGroups.html
rename to docs/dyn/dfareporting_v2_8.floodlightActivityGroups.html
index 9ceef2f..8fe8869 100644
--- a/docs/dyn/dfareporting_v2_5beta1.floodlightActivityGroups.html
+++ b/docs/dyn/dfareporting_v2_8.floodlightActivityGroups.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.floodlightActivityGroups.html">floodlightActivityGroups</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.floodlightActivityGroups.html">floodlightActivityGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -243,7 +243,7 @@
   floodlightConfigurationId: string, Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either advertiserId, or floodlightConfigurationId for a non-empty result.
   ids: string, Select only floodlight activity groups with the specified IDs. Must specify either advertiserId or floodlightConfigurationId for a non-empty result. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5.floodlightConfigurations.html b/docs/dyn/dfareporting_v2_8.floodlightConfigurations.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_5.floodlightConfigurations.html
rename to docs/dyn/dfareporting_v2_8.floodlightConfigurations.html
index 03f53de..d25a45a 100644
--- a/docs/dyn/dfareporting_v2_5.floodlightConfigurations.html
+++ b/docs/dyn/dfareporting_v2_8.floodlightConfigurations.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.floodlightConfigurations.html">floodlightConfigurations</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.floodlightConfigurations.html">floodlightConfigurations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -103,21 +103,14 @@
       "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
       "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
         "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
         "imageTagEnabled": True or False, # Whether image tags are enabled.
       },
       "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
       "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
         "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
         "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
@@ -178,21 +171,14 @@
           "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
           "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
           "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
           },
           "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
             "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
             "imageTagEnabled": True or False, # Whether image tags are enabled.
           },
           "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-          "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-              #
-              # Acceptable values are:
-              # - "ORD"
-              # - "NUM"
-            "A String",
-          ],
           "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
             "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
             "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
@@ -253,21 +239,14 @@
     "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
     "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
       "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
       "imageTagEnabled": True or False, # Whether image tags are enabled.
     },
     "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
     "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
       "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
       "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
@@ -318,21 +297,14 @@
       "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
       "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
         "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
         "imageTagEnabled": True or False, # Whether image tags are enabled.
       },
       "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
       "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
         "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
         "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
@@ -389,21 +361,14 @@
     "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
     "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
       "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
       "imageTagEnabled": True or False, # Whether image tags are enabled.
     },
     "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-        # 
-        # Acceptable values are:
-        # - "ORD"
-        # - "NUM"
-      "A String",
-    ],
     "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
       "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
       "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
@@ -454,21 +419,14 @@
       "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
       "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
         "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
         "imageTagEnabled": True or False, # Whether image tags are enabled.
       },
       "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
-      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
-          #
-          # Acceptable values are:
-          # - "ORD"
-          # - "NUM"
-        "A String",
-      ],
       "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
         "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
         "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
diff --git a/docs/dyn/dfareporting_v2_6.html b/docs/dyn/dfareporting_v2_8.html
similarity index 68%
rename from docs/dyn/dfareporting_v2_6.html
rename to docs/dyn/dfareporting_v2_8.html
index 88d6301..23217bf 100644
--- a/docs/dyn/dfareporting_v2_6.html
+++ b/docs/dyn/dfareporting_v2_8.html
@@ -72,304 +72,309 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.accountActiveAdSummaries.html">accountActiveAdSummaries()</a></code>
+  <code><a href="dfareporting_v2_8.accountActiveAdSummaries.html">accountActiveAdSummaries()</a></code>
 </p>
 <p class="firstline">Returns the accountActiveAdSummaries Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.accountPermissionGroups.html">accountPermissionGroups()</a></code>
+  <code><a href="dfareporting_v2_8.accountPermissionGroups.html">accountPermissionGroups()</a></code>
 </p>
 <p class="firstline">Returns the accountPermissionGroups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.accountPermissions.html">accountPermissions()</a></code>
+  <code><a href="dfareporting_v2_8.accountPermissions.html">accountPermissions()</a></code>
 </p>
 <p class="firstline">Returns the accountPermissions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.accountUserProfiles.html">accountUserProfiles()</a></code>
+  <code><a href="dfareporting_v2_8.accountUserProfiles.html">accountUserProfiles()</a></code>
 </p>
 <p class="firstline">Returns the accountUserProfiles Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.accounts.html">accounts()</a></code>
+  <code><a href="dfareporting_v2_8.accounts.html">accounts()</a></code>
 </p>
 <p class="firstline">Returns the accounts Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.ads.html">ads()</a></code>
+  <code><a href="dfareporting_v2_8.ads.html">ads()</a></code>
 </p>
 <p class="firstline">Returns the ads Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.advertiserGroups.html">advertiserGroups()</a></code>
+  <code><a href="dfareporting_v2_8.advertiserGroups.html">advertiserGroups()</a></code>
 </p>
 <p class="firstline">Returns the advertiserGroups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.advertisers.html">advertisers()</a></code>
+  <code><a href="dfareporting_v2_8.advertisers.html">advertisers()</a></code>
 </p>
 <p class="firstline">Returns the advertisers Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.browsers.html">browsers()</a></code>
+  <code><a href="dfareporting_v2_8.browsers.html">browsers()</a></code>
 </p>
 <p class="firstline">Returns the browsers Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.campaignCreativeAssociations.html">campaignCreativeAssociations()</a></code>
+  <code><a href="dfareporting_v2_8.campaignCreativeAssociations.html">campaignCreativeAssociations()</a></code>
 </p>
 <p class="firstline">Returns the campaignCreativeAssociations Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.campaigns.html">campaigns()</a></code>
+  <code><a href="dfareporting_v2_8.campaigns.html">campaigns()</a></code>
 </p>
 <p class="firstline">Returns the campaigns Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.changeLogs.html">changeLogs()</a></code>
+  <code><a href="dfareporting_v2_8.changeLogs.html">changeLogs()</a></code>
 </p>
 <p class="firstline">Returns the changeLogs Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.cities.html">cities()</a></code>
+  <code><a href="dfareporting_v2_8.cities.html">cities()</a></code>
 </p>
 <p class="firstline">Returns the cities Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.connectionTypes.html">connectionTypes()</a></code>
+  <code><a href="dfareporting_v2_8.connectionTypes.html">connectionTypes()</a></code>
 </p>
 <p class="firstline">Returns the connectionTypes Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.contentCategories.html">contentCategories()</a></code>
+  <code><a href="dfareporting_v2_8.contentCategories.html">contentCategories()</a></code>
 </p>
 <p class="firstline">Returns the contentCategories Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.conversions.html">conversions()</a></code>
+  <code><a href="dfareporting_v2_8.conversions.html">conversions()</a></code>
 </p>
 <p class="firstline">Returns the conversions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.countries.html">countries()</a></code>
+  <code><a href="dfareporting_v2_8.countries.html">countries()</a></code>
 </p>
 <p class="firstline">Returns the countries Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.creativeAssets.html">creativeAssets()</a></code>
+  <code><a href="dfareporting_v2_8.creativeAssets.html">creativeAssets()</a></code>
 </p>
 <p class="firstline">Returns the creativeAssets Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.creativeFieldValues.html">creativeFieldValues()</a></code>
+  <code><a href="dfareporting_v2_8.creativeFieldValues.html">creativeFieldValues()</a></code>
 </p>
 <p class="firstline">Returns the creativeFieldValues Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.creativeFields.html">creativeFields()</a></code>
+  <code><a href="dfareporting_v2_8.creativeFields.html">creativeFields()</a></code>
 </p>
 <p class="firstline">Returns the creativeFields Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.creativeGroups.html">creativeGroups()</a></code>
+  <code><a href="dfareporting_v2_8.creativeGroups.html">creativeGroups()</a></code>
 </p>
 <p class="firstline">Returns the creativeGroups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.creatives.html">creatives()</a></code>
+  <code><a href="dfareporting_v2_8.creatives.html">creatives()</a></code>
 </p>
 <p class="firstline">Returns the creatives Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.dimensionValues.html">dimensionValues()</a></code>
+  <code><a href="dfareporting_v2_8.dimensionValues.html">dimensionValues()</a></code>
 </p>
 <p class="firstline">Returns the dimensionValues Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.directorySiteContacts.html">directorySiteContacts()</a></code>
+  <code><a href="dfareporting_v2_8.directorySiteContacts.html">directorySiteContacts()</a></code>
 </p>
 <p class="firstline">Returns the directorySiteContacts Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.directorySites.html">directorySites()</a></code>
+  <code><a href="dfareporting_v2_8.directorySites.html">directorySites()</a></code>
 </p>
 <p class="firstline">Returns the directorySites Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.dynamicTargetingKeys.html">dynamicTargetingKeys()</a></code>
+  <code><a href="dfareporting_v2_8.dynamicTargetingKeys.html">dynamicTargetingKeys()</a></code>
 </p>
 <p class="firstline">Returns the dynamicTargetingKeys Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.eventTags.html">eventTags()</a></code>
+  <code><a href="dfareporting_v2_8.eventTags.html">eventTags()</a></code>
 </p>
 <p class="firstline">Returns the eventTags Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.files.html">files()</a></code>
+  <code><a href="dfareporting_v2_8.files.html">files()</a></code>
 </p>
 <p class="firstline">Returns the files Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.floodlightActivities.html">floodlightActivities()</a></code>
+  <code><a href="dfareporting_v2_8.floodlightActivities.html">floodlightActivities()</a></code>
 </p>
 <p class="firstline">Returns the floodlightActivities Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.floodlightActivityGroups.html">floodlightActivityGroups()</a></code>
+  <code><a href="dfareporting_v2_8.floodlightActivityGroups.html">floodlightActivityGroups()</a></code>
 </p>
 <p class="firstline">Returns the floodlightActivityGroups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.floodlightConfigurations.html">floodlightConfigurations()</a></code>
+  <code><a href="dfareporting_v2_8.floodlightConfigurations.html">floodlightConfigurations()</a></code>
 </p>
 <p class="firstline">Returns the floodlightConfigurations Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.inventoryItems.html">inventoryItems()</a></code>
+  <code><a href="dfareporting_v2_8.inventoryItems.html">inventoryItems()</a></code>
 </p>
 <p class="firstline">Returns the inventoryItems Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.landingPages.html">landingPages()</a></code>
+  <code><a href="dfareporting_v2_8.landingPages.html">landingPages()</a></code>
 </p>
 <p class="firstline">Returns the landingPages Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.languages.html">languages()</a></code>
+  <code><a href="dfareporting_v2_8.languages.html">languages()</a></code>
 </p>
 <p class="firstline">Returns the languages Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.metros.html">metros()</a></code>
+  <code><a href="dfareporting_v2_8.metros.html">metros()</a></code>
 </p>
 <p class="firstline">Returns the metros Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.mobileCarriers.html">mobileCarriers()</a></code>
+  <code><a href="dfareporting_v2_8.mobileCarriers.html">mobileCarriers()</a></code>
 </p>
 <p class="firstline">Returns the mobileCarriers Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.operatingSystemVersions.html">operatingSystemVersions()</a></code>
+  <code><a href="dfareporting_v2_8.operatingSystemVersions.html">operatingSystemVersions()</a></code>
 </p>
 <p class="firstline">Returns the operatingSystemVersions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.operatingSystems.html">operatingSystems()</a></code>
+  <code><a href="dfareporting_v2_8.operatingSystems.html">operatingSystems()</a></code>
 </p>
 <p class="firstline">Returns the operatingSystems Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.orderDocuments.html">orderDocuments()</a></code>
+  <code><a href="dfareporting_v2_8.orderDocuments.html">orderDocuments()</a></code>
 </p>
 <p class="firstline">Returns the orderDocuments Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.orders.html">orders()</a></code>
+  <code><a href="dfareporting_v2_8.orders.html">orders()</a></code>
 </p>
 <p class="firstline">Returns the orders Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.placementGroups.html">placementGroups()</a></code>
+  <code><a href="dfareporting_v2_8.placementGroups.html">placementGroups()</a></code>
 </p>
 <p class="firstline">Returns the placementGroups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.placementStrategies.html">placementStrategies()</a></code>
+  <code><a href="dfareporting_v2_8.placementStrategies.html">placementStrategies()</a></code>
 </p>
 <p class="firstline">Returns the placementStrategies Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.placements.html">placements()</a></code>
+  <code><a href="dfareporting_v2_8.placements.html">placements()</a></code>
 </p>
 <p class="firstline">Returns the placements Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.platformTypes.html">platformTypes()</a></code>
+  <code><a href="dfareporting_v2_8.platformTypes.html">platformTypes()</a></code>
 </p>
 <p class="firstline">Returns the platformTypes Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.postalCodes.html">postalCodes()</a></code>
+  <code><a href="dfareporting_v2_8.postalCodes.html">postalCodes()</a></code>
 </p>
 <p class="firstline">Returns the postalCodes Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.projects.html">projects()</a></code>
+  <code><a href="dfareporting_v2_8.projects.html">projects()</a></code>
 </p>
 <p class="firstline">Returns the projects Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.regions.html">regions()</a></code>
+  <code><a href="dfareporting_v2_8.regions.html">regions()</a></code>
 </p>
 <p class="firstline">Returns the regions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.remarketingListShares.html">remarketingListShares()</a></code>
+  <code><a href="dfareporting_v2_8.remarketingListShares.html">remarketingListShares()</a></code>
 </p>
 <p class="firstline">Returns the remarketingListShares Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.remarketingLists.html">remarketingLists()</a></code>
+  <code><a href="dfareporting_v2_8.remarketingLists.html">remarketingLists()</a></code>
 </p>
 <p class="firstline">Returns the remarketingLists Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.reports.html">reports()</a></code>
+  <code><a href="dfareporting_v2_8.reports.html">reports()</a></code>
 </p>
 <p class="firstline">Returns the reports Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.sites.html">sites()</a></code>
+  <code><a href="dfareporting_v2_8.sites.html">sites()</a></code>
 </p>
 <p class="firstline">Returns the sites Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.sizes.html">sizes()</a></code>
+  <code><a href="dfareporting_v2_8.sizes.html">sizes()</a></code>
 </p>
 <p class="firstline">Returns the sizes Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.subaccounts.html">subaccounts()</a></code>
+  <code><a href="dfareporting_v2_8.subaccounts.html">subaccounts()</a></code>
 </p>
 <p class="firstline">Returns the subaccounts Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.targetableRemarketingLists.html">targetableRemarketingLists()</a></code>
+  <code><a href="dfareporting_v2_8.targetableRemarketingLists.html">targetableRemarketingLists()</a></code>
 </p>
 <p class="firstline">Returns the targetableRemarketingLists Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.targetingTemplates.html">targetingTemplates()</a></code>
+  <code><a href="dfareporting_v2_8.targetingTemplates.html">targetingTemplates()</a></code>
 </p>
 <p class="firstline">Returns the targetingTemplates Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.userProfiles.html">userProfiles()</a></code>
+  <code><a href="dfareporting_v2_8.userProfiles.html">userProfiles()</a></code>
 </p>
 <p class="firstline">Returns the userProfiles Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.userRolePermissionGroups.html">userRolePermissionGroups()</a></code>
+  <code><a href="dfareporting_v2_8.userRolePermissionGroups.html">userRolePermissionGroups()</a></code>
 </p>
 <p class="firstline">Returns the userRolePermissionGroups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.userRolePermissions.html">userRolePermissions()</a></code>
+  <code><a href="dfareporting_v2_8.userRolePermissions.html">userRolePermissions()</a></code>
 </p>
 <p class="firstline">Returns the userRolePermissions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_6.userRoles.html">userRoles()</a></code>
+  <code><a href="dfareporting_v2_8.userRoles.html">userRoles()</a></code>
 </p>
 <p class="firstline">Returns the userRoles Resource.</p>
 
 <p class="toc_element">
+  <code><a href="dfareporting_v2_8.videoFormats.html">videoFormats()</a></code>
+</p>
+<p class="firstline">Returns the videoFormats Resource.</p>
+
+<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/dfareporting_v2_6.inventoryItems.html b/docs/dyn/dfareporting_v2_8.inventoryItems.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_6.inventoryItems.html
rename to docs/dyn/dfareporting_v2_8.inventoryItems.html
index 611241b..cb58f46 100644
--- a/docs/dyn/dfareporting_v2_6.inventoryItems.html
+++ b/docs/dyn/dfareporting_v2_8.inventoryItems.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.inventoryItems.html">inventoryItems</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.inventoryItems.html">inventoryItems</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, projectId, id)</a></code></p>
@@ -156,7 +156,7 @@
   projectId: string, Project ID for order documents. (required)
   pageToken: string, Value of the nextPageToken from the previous result page.
   inPlan: boolean, Select only inventory items that are in plan.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5beta1.landingPages.html b/docs/dyn/dfareporting_v2_8.landingPages.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5beta1.landingPages.html
rename to docs/dyn/dfareporting_v2_8.landingPages.html
index f6fab0c..b51f318 100644
--- a/docs/dyn/dfareporting_v2_5beta1.landingPages.html
+++ b/docs/dyn/dfareporting_v2_8.landingPages.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.landingPages.html">landingPages</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.landingPages.html">landingPages</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, campaignId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.languages.html b/docs/dyn/dfareporting_v2_8.languages.html
similarity index 94%
rename from docs/dyn/dfareporting_v2_6.languages.html
rename to docs/dyn/dfareporting_v2_8.languages.html
index 2a01f11..9b08b4b 100644
--- a/docs/dyn/dfareporting_v2_6.languages.html
+++ b/docs/dyn/dfareporting_v2_8.languages.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.languages.html">languages</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.languages.html">languages</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(profileId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.metros.html b/docs/dyn/dfareporting_v2_8.metros.html
similarity index 94%
rename from docs/dyn/dfareporting_v2_5.metros.html
rename to docs/dyn/dfareporting_v2_8.metros.html
index 6eb062d..9b8ca24 100644
--- a/docs/dyn/dfareporting_v2_5.metros.html
+++ b/docs/dyn/dfareporting_v2_8.metros.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.metros.html">metros</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.metros.html">metros</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(profileId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.mobileCarriers.html b/docs/dyn/dfareporting_v2_8.mobileCarriers.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_5.mobileCarriers.html
rename to docs/dyn/dfareporting_v2_8.mobileCarriers.html
index 91c4e6e..5fce325 100644
--- a/docs/dyn/dfareporting_v2_5.mobileCarriers.html
+++ b/docs/dyn/dfareporting_v2_8.mobileCarriers.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.mobileCarriers.html">mobileCarriers</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.mobileCarriers.html">mobileCarriers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.operatingSystemVersions.html b/docs/dyn/dfareporting_v2_8.operatingSystemVersions.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_6.operatingSystemVersions.html
rename to docs/dyn/dfareporting_v2_8.operatingSystemVersions.html
index c443500..26c3f0d 100644
--- a/docs/dyn/dfareporting_v2_6.operatingSystemVersions.html
+++ b/docs/dyn/dfareporting_v2_8.operatingSystemVersions.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.operatingSystemVersions.html">operatingSystemVersions</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.operatingSystemVersions.html">operatingSystemVersions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.operatingSystems.html b/docs/dyn/dfareporting_v2_8.operatingSystems.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_5.operatingSystems.html
rename to docs/dyn/dfareporting_v2_8.operatingSystems.html
index 1a88848..6bb1b54 100644
--- a/docs/dyn/dfareporting_v2_5.operatingSystems.html
+++ b/docs/dyn/dfareporting_v2_8.operatingSystems.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.operatingSystems.html">operatingSystems</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.operatingSystems.html">operatingSystems</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, dartId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.orderDocuments.html b/docs/dyn/dfareporting_v2_8.orderDocuments.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_5.orderDocuments.html
rename to docs/dyn/dfareporting_v2_8.orderDocuments.html
index 98246e2..1e99359 100644
--- a/docs/dyn/dfareporting_v2_5.orderDocuments.html
+++ b/docs/dyn/dfareporting_v2_8.orderDocuments.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.orderDocuments.html">orderDocuments</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.orderDocuments.html">orderDocuments</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, projectId, id)</a></code></p>
@@ -131,7 +131,7 @@
   profileId: string, User profile ID associated with this request. (required)
   projectId: string, Project ID for order documents. (required)
   pageToken: string, Value of the nextPageToken from the previous result page.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5.orders.html b/docs/dyn/dfareporting_v2_8.orders.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_5.orders.html
rename to docs/dyn/dfareporting_v2_8.orders.html
index 9a9eacd..545b0c0 100644
--- a/docs/dyn/dfareporting_v2_5.orders.html
+++ b/docs/dyn/dfareporting_v2_8.orders.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.orders.html">orders</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.orders.html">orders</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, projectId, id)</a></code></p>
@@ -151,7 +151,7 @@
       NAME - 
   ids: string, Select only orders with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_6.placementGroups.html b/docs/dyn/dfareporting_v2_8.placementGroups.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_6.placementGroups.html
rename to docs/dyn/dfareporting_v2_8.placementGroups.html
index 2aa4a29..9d682c6 100644
--- a/docs/dyn/dfareporting_v2_6.placementGroups.html
+++ b/docs/dyn/dfareporting_v2_8.placementGroups.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.placementGroups.html">placementGroups</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.placementGroups.html">placementGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -186,8 +186,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -291,8 +291,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -390,8 +390,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -427,7 +427,7 @@
   advertiserIds: string, Select only placement groups that belong to these advertisers. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
   maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -535,8 +535,8 @@
             "capCostOption": "A String", # Placement cap cost option.
             "pricingPeriods": [ # Pricing periods for this placement.
               { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+                "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+                "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
                 "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
                 "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
                 "pricingComment": "A String", # Comments for this pricing period.
@@ -657,8 +657,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -756,8 +756,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -861,8 +861,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -960,8 +960,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
diff --git a/docs/dyn/dfareporting_v2_5.placementStrategies.html b/docs/dyn/dfareporting_v2_8.placementStrategies.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5.placementStrategies.html
rename to docs/dyn/dfareporting_v2_8.placementStrategies.html
index 247cf73..d9ad4ec 100644
--- a/docs/dyn/dfareporting_v2_5.placementStrategies.html
+++ b/docs/dyn/dfareporting_v2_8.placementStrategies.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.placementStrategies.html">placementStrategies</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.placementStrategies.html">placementStrategies</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -167,7 +167,7 @@
       NAME - 
   ids: string, Select only placement strategies with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5.placements.html b/docs/dyn/dfareporting_v2_8.placements.html
similarity index 75%
rename from docs/dyn/dfareporting_v2_5.placements.html
rename to docs/dyn/dfareporting_v2_8.placements.html
index fe4ce83..ef7cddd 100644
--- a/docs/dyn/dfareporting_v2_5.placements.html
+++ b/docs/dyn/dfareporting_v2_8.placements.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.placements.html">placements</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.placements.html">placements</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</a></code></p>
@@ -111,6 +111,7 @@
       PLACEMENT_TAG_IFRAME_JAVASCRIPT_LEGACY - 
       PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
       PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3 - 
+      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4 - 
       PLACEMENT_TAG_INTERNAL_REDIRECT - 
       PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
       PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT_LEGACY - 
@@ -136,8 +137,8 @@
           { # Placement Tag Data
             "clickTag": "A String", # Tag string to record a click.
             "impressionTag": "A String", # Tag string for serving an ad.
-            "creativeId": "A String", # Creative associated with this placement tag.
-            "adId": "A String", # Ad associated with this placement tag.
+            "creativeId": "A String", # Creative associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.
+            "adId": "A String", # Ad associated with this placement tag. Applicable only when format is PLACEMENT_TAG_TRACKING.
             "format": "A String", # TagData tag format of this tag.
           },
         ],
@@ -160,6 +161,7 @@
 
     { # Contains properties of a placement.
       "comment": "A String", # Comments for this placement.
+      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
       "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
       "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -184,6 +186,41 @@
       "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
       "accountId": "A String", # Account ID of this placement. This field can be left blank.
       "archived": True or False, # Whether this placement is archived.
+      "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+        "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+          "skippable": True or False, # Whether the user can skip creatives served to this placement.
+          "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+          "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+          "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+        },
+        "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+        "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+          "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+          "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+          "imageOnly": True or False, # Whether to serve only static images as companions.
+          "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+            { # Represents the dimensions of ads, placements, creatives, or creative assets.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+            },
+          ],
+        },
+        "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+          "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+          "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+            42,
+          ],
+        },
+      },
       "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
       },
@@ -199,6 +236,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -212,6 +251,7 @@
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
       "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
       "externalId": "A String", # External ID for this placement.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -222,11 +262,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -266,8 +306,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -280,8 +320,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -291,6 +331,7 @@
         "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
         "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
       },
+      "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
     }</pre>
 </div>
 
@@ -305,6 +346,7 @@
 
 { # Contains properties of a placement.
     "comment": "A String", # Comments for this placement.
+    "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
     "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
     "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
     "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -329,6 +371,41 @@
     "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
     "accountId": "A String", # Account ID of this placement. This field can be left blank.
     "archived": True or False, # Whether this placement is archived.
+    "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+      "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+        "skippable": True or False, # Whether the user can skip creatives served to this placement.
+        "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+        "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+        },
+        "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+        },
+      },
+      "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+      "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+        "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+        "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+        "imageOnly": True or False, # Whether to serve only static images as companions.
+        "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+          { # Represents the dimensions of ads, placements, creatives, or creative assets.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+          },
+        ],
+      },
+      "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+        "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+        "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+          42,
+        ],
+      },
+    },
     "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
     },
@@ -344,6 +421,8 @@
         # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
         # - "PLACEMENT_TAG_CLICK_COMMANDS"
         # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
         # - "PLACEMENT_TAG_TRACKING"
         # - "PLACEMENT_TAG_TRACKING_IFRAME"
         # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -357,6 +436,7 @@
       "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
     },
     "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+    "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
     "externalId": "A String", # External ID for this placement.
     "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -367,11 +447,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
     "status": "A String", # Third-party placement status.
@@ -411,8 +491,8 @@
     "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
     "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -425,8 +505,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -436,6 +516,7 @@
       "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
       "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
     },
+    "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
   }
 
 
@@ -444,6 +525,7 @@
 
     { # Contains properties of a placement.
       "comment": "A String", # Comments for this placement.
+      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
       "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
       "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -468,6 +550,41 @@
       "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
       "accountId": "A String", # Account ID of this placement. This field can be left blank.
       "archived": True or False, # Whether this placement is archived.
+      "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+        "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+          "skippable": True or False, # Whether the user can skip creatives served to this placement.
+          "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+          "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+          "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+        },
+        "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+        "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+          "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+          "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+          "imageOnly": True or False, # Whether to serve only static images as companions.
+          "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+            { # Represents the dimensions of ads, placements, creatives, or creative assets.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+            },
+          ],
+        },
+        "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+          "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+          "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+            42,
+          ],
+        },
+      },
       "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
       },
@@ -483,6 +600,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -496,6 +615,7 @@
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
       "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
       "externalId": "A String", # External ID for this placement.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -506,11 +626,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -550,8 +670,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -564,8 +684,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -575,6 +695,7 @@
         "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
         "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
       },
+      "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
     }</pre>
 </div>
 
@@ -602,7 +723,7 @@
   sizeIds: string, Select only placements that are associated with these sizes. (repeated)
   pageToken: string, Value of the nextPageToken from the previous result page.
   maxStartDate: string, Select only placements or placement groups whose start date is on or before the specified maxStartDate. The date should be formatted as "yyyy-MM-dd".
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -638,6 +759,7 @@
     "placements": [ # Placement collection.
       { # Contains properties of a placement.
           "comment": "A String", # Comments for this placement.
+          "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
           "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
           "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
           "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -662,6 +784,41 @@
           "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
           "accountId": "A String", # Account ID of this placement. This field can be left blank.
           "archived": True or False, # Whether this placement is archived.
+          "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+            "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+              "skippable": True or False, # Whether the user can skip creatives served to this placement.
+              "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+              "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+                "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+                "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+              },
+              "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+                "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+                "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+              },
+            },
+            "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+            "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+              "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+              "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+              "imageOnly": True or False, # Whether to serve only static images as companions.
+              "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+                { # Represents the dimensions of ads, placements, creatives, or creative assets.
+                  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+                },
+              ],
+            },
+            "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+              "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+              "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+                42,
+              ],
+            },
+          },
           "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
             "time": "A String", # Timestamp of the last change in milliseconds since epoch.
           },
@@ -677,6 +834,8 @@
               # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
               # - "PLACEMENT_TAG_CLICK_COMMANDS"
               # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
               # - "PLACEMENT_TAG_TRACKING"
               # - "PLACEMENT_TAG_TRACKING_IFRAME"
               # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -690,6 +849,7 @@
             "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
           },
           "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+          "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
           "externalId": "A String", # External ID for this placement.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
             "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -700,11 +860,11 @@
             "id": "A String", # The ID associated with the value if available.
           },
           "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-            "width": 42, # Width of this size.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
             "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
             "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
             "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-            "height": 42, # Height of this size.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
           },
           "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
           "status": "A String", # Third-party placement status.
@@ -744,8 +904,8 @@
           "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
           "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
           "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
           },
           "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
             "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -758,8 +918,8 @@
             "capCostOption": "A String", # Placement cap cost option.
             "pricingPeriods": [ # Pricing periods for this placement.
               { # Pricing Period
-                "units": "A String", # Units of this pricing period.
-                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+                "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+                "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
                 "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
                 "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
                 "pricingComment": "A String", # Comments for this pricing period.
@@ -769,6 +929,7 @@
             "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
           },
+          "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
         },
     ],
   }</pre>
@@ -800,6 +961,7 @@
 
 { # Contains properties of a placement.
     "comment": "A String", # Comments for this placement.
+    "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
     "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
     "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
     "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -824,6 +986,41 @@
     "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
     "accountId": "A String", # Account ID of this placement. This field can be left blank.
     "archived": True or False, # Whether this placement is archived.
+    "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+      "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+        "skippable": True or False, # Whether the user can skip creatives served to this placement.
+        "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+        "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+        },
+        "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+        },
+      },
+      "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+      "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+        "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+        "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+        "imageOnly": True or False, # Whether to serve only static images as companions.
+        "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+          { # Represents the dimensions of ads, placements, creatives, or creative assets.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+          },
+        ],
+      },
+      "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+        "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+        "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+          42,
+        ],
+      },
+    },
     "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
     },
@@ -839,6 +1036,8 @@
         # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
         # - "PLACEMENT_TAG_CLICK_COMMANDS"
         # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
         # - "PLACEMENT_TAG_TRACKING"
         # - "PLACEMENT_TAG_TRACKING_IFRAME"
         # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -852,6 +1051,7 @@
       "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
     },
     "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+    "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
     "externalId": "A String", # External ID for this placement.
     "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -862,11 +1062,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
     "status": "A String", # Third-party placement status.
@@ -906,8 +1106,8 @@
     "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
     "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -920,8 +1120,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -931,6 +1131,7 @@
       "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
       "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
     },
+    "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
   }
 
 
@@ -939,6 +1140,7 @@
 
     { # Contains properties of a placement.
       "comment": "A String", # Comments for this placement.
+      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
       "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
       "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -963,6 +1165,41 @@
       "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
       "accountId": "A String", # Account ID of this placement. This field can be left blank.
       "archived": True or False, # Whether this placement is archived.
+      "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+        "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+          "skippable": True or False, # Whether the user can skip creatives served to this placement.
+          "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+          "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+          "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+        },
+        "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+        "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+          "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+          "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+          "imageOnly": True or False, # Whether to serve only static images as companions.
+          "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+            { # Represents the dimensions of ads, placements, creatives, or creative assets.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+            },
+          ],
+        },
+        "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+          "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+          "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+            42,
+          ],
+        },
+      },
       "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
       },
@@ -978,6 +1215,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -991,6 +1230,7 @@
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
       "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
       "externalId": "A String", # External ID for this placement.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1001,11 +1241,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -1045,8 +1285,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1059,8 +1299,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -1070,6 +1310,7 @@
         "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
         "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
       },
+      "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
     }</pre>
 </div>
 
@@ -1084,6 +1325,7 @@
 
 { # Contains properties of a placement.
     "comment": "A String", # Comments for this placement.
+    "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
     "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
     "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
     "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -1108,6 +1350,41 @@
     "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
     "accountId": "A String", # Account ID of this placement. This field can be left blank.
     "archived": True or False, # Whether this placement is archived.
+    "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+      "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+        "skippable": True or False, # Whether the user can skip creatives served to this placement.
+        "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+        "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+        },
+        "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+          "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+          "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+        },
+      },
+      "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+      "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+        "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+        "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+        "imageOnly": True or False, # Whether to serve only static images as companions.
+        "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+          { # Represents the dimensions of ads, placements, creatives, or creative assets.
+            "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+          },
+        ],
+      },
+      "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+        "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+        "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+          42,
+        ],
+      },
+    },
     "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
     },
@@ -1123,6 +1400,8 @@
         # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
         # - "PLACEMENT_TAG_CLICK_COMMANDS"
         # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
         # - "PLACEMENT_TAG_TRACKING"
         # - "PLACEMENT_TAG_TRACKING_IFRAME"
         # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -1136,6 +1415,7 @@
       "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
     },
     "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+    "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
     "externalId": "A String", # External ID for this placement.
     "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
       "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1146,11 +1426,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-      "width": 42, # Width of this size.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
       "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
       "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
       "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-      "height": 42, # Height of this size.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
     },
     "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
     "status": "A String", # Third-party placement status.
@@ -1190,8 +1470,8 @@
     "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
     "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
     "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
     },
     "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
       "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1204,8 +1484,8 @@
       "capCostOption": "A String", # Placement cap cost option.
       "pricingPeriods": [ # Pricing periods for this placement.
         { # Pricing Period
-          "units": "A String", # Units of this pricing period.
-          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
           "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
           "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
           "pricingComment": "A String", # Comments for this pricing period.
@@ -1215,6 +1495,7 @@
       "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
       "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
     },
+    "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
   }
 
 
@@ -1223,6 +1504,7 @@
 
     { # Contains properties of a placement.
       "comment": "A String", # Comments for this placement.
+      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives for this placement. The same setting videoActiveViewOptOut exists on the site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
       "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
       "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
@@ -1247,6 +1529,41 @@
       "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
       "accountId": "A String", # Account ID of this placement. This field can be left blank.
       "archived": True or False, # Whether this placement is archived.
+      "videoSettings": { # Video Settings # A collection of settings which affect video creatives served through this placement. Applicable to placements with IN_STREAM_VIDEO compatibility.
+        "skippableSettings": { # Skippable Settings # Settings for the skippability of video creatives served to this placement. If this object is provided, the creative-level skippable settings will be overridden.
+          "skippable": True or False, # Whether the user can skip creatives served to this placement.
+          "kind": "dfareporting#skippableSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#skippableSetting".
+          "skipOffset": { # Video Offset # Amount of time to play videos served to this placement before the skip button should appear. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+          "progressOffset": { # Video Offset # Amount of time to play videos served to this placement before counting a view. Applicable when skippable is true.
+            "offsetPercentage": 42, # Duration, as a percentage of video duration. Do not set when offsetSeconds is set. Acceptable values are 0 to 100, inclusive.
+            "offsetSeconds": 42, # Duration, in seconds. Do not set when offsetPercentage is set. Acceptable values are 0 to 86399, inclusive.
+          },
+        },
+        "kind": "dfareporting#videoSettings", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoSettings".
+        "companionSettings": { # Companion Settings # Settings for the companion creatives of video creatives served to this placement.
+          "kind": "dfareporting#companionSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#companionSetting".
+          "companionsDisabled": True or False, # Whether companions are disabled for this placement.
+          "imageOnly": True or False, # Whether to serve only static images as companions.
+          "enabledSizes": [ # Whitelist of companion sizes to be served to this placement. Set this list to null or empty to serve all companion sizes.
+            { # Represents the dimensions of ads, placements, creatives, or creative assets.
+              "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+            },
+          ],
+        },
+        "transcodeSettings": { # Transcode Settings # Settings for the transcodes of video creatives served to this placement. If this object is provided, the creative-level transcode settings will be overridden.
+          "kind": "dfareporting#transcodeSetting", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#transcodeSetting".
+          "enabledVideoFormats": [ # Whitelist of video formats to be served to this placement. Set this list to null or empty to serve all video formats.
+            42,
+          ],
+        },
+      },
       "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
       },
@@ -1262,6 +1579,8 @@
           # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
           # - "PLACEMENT_TAG_CLICK_COMMANDS"
           # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_3"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH_VAST_4"
           # - "PLACEMENT_TAG_TRACKING"
           # - "PLACEMENT_TAG_TRACKING_IFRAME"
           # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
@@ -1275,6 +1594,7 @@
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
       "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "adBlockingOptOut": True or False, # Whether this placement opts out of ad blocking. When true, ad blocking is disabled for this placement. When false, the campaign and site settings take effect.
       "externalId": "A String", # External ID for this placement.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
         "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
@@ -1285,11 +1605,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
       "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
       "status": "A String", # Third-party placement status.
@@ -1329,8 +1649,8 @@
       "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
       "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
         "time": "A String", # Timestamp of the last change in milliseconds since epoch.
@@ -1343,8 +1663,8 @@
         "capCostOption": "A String", # Placement cap cost option.
         "pricingPeriods": [ # Pricing periods for this placement.
           { # Pricing Period
-            "units": "A String", # Units of this pricing period.
-            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "units": "A String", # Units of this pricing period. Acceptable values are 0 to 10000000000, inclusive.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period in nanos (i.e., multipled by 1000000000). Acceptable values are 0 to 1000000000000000000, inclusive.
             "startDate": "A String", # Pricing period start date. This date must be later than, or the same day as, the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
             "endDate": "A String", # Pricing period end date. This date must be later than, or the same day as, the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
             "pricingComment": "A String", # Comments for this pricing period.
@@ -1354,6 +1674,7 @@
         "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
         "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
       },
+      "vpaidAdapterChoice": "A String", # VPAID adapter setting for this placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to this placement.
     }</pre>
 </div>
 
diff --git a/docs/dyn/dfareporting_v2_5.platformTypes.html b/docs/dyn/dfareporting_v2_8.platformTypes.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_5.platformTypes.html
rename to docs/dyn/dfareporting_v2_8.platformTypes.html
index 1c566f7..5165fba 100644
--- a/docs/dyn/dfareporting_v2_5.platformTypes.html
+++ b/docs/dyn/dfareporting_v2_8.platformTypes.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.platformTypes.html">platformTypes</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.platformTypes.html">platformTypes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.postalCodes.html b/docs/dyn/dfareporting_v2_8.postalCodes.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_5.postalCodes.html
rename to docs/dyn/dfareporting_v2_8.postalCodes.html
index b9d28df..564bc9a 100644
--- a/docs/dyn/dfareporting_v2_5.postalCodes.html
+++ b/docs/dyn/dfareporting_v2_8.postalCodes.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.postalCodes.html">postalCodes</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.postalCodes.html">postalCodes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, code)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.projects.html b/docs/dyn/dfareporting_v2_8.projects.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_6.projects.html
rename to docs/dyn/dfareporting_v2_8.projects.html
index a9ac1da..a6e5903 100644
--- a/docs/dyn/dfareporting_v2_6.projects.html
+++ b/docs/dyn/dfareporting_v2_8.projects.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.projects.html">projects</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -138,7 +138,7 @@
   advertiserIds: string, Select only projects with these advertiser IDs. (repeated)
   ids: string, Select only projects with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_5.regions.html b/docs/dyn/dfareporting_v2_8.regions.html
similarity index 94%
rename from docs/dyn/dfareporting_v2_5.regions.html
rename to docs/dyn/dfareporting_v2_8.regions.html
index d770c7a..b462598 100644
--- a/docs/dyn/dfareporting_v2_5.regions.html
+++ b/docs/dyn/dfareporting_v2_8.regions.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.regions.html">regions</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.regions.html">regions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#list">list(profileId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.remarketingListShares.html b/docs/dyn/dfareporting_v2_8.remarketingListShares.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_5.remarketingListShares.html
rename to docs/dyn/dfareporting_v2_8.remarketingListShares.html
index 60b7508..5ddf663 100644
--- a/docs/dyn/dfareporting_v2_5.remarketingListShares.html
+++ b/docs/dyn/dfareporting_v2_8.remarketingListShares.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.remarketingListShares.html">remarketingListShares</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.remarketingListShares.html">remarketingListShares</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, remarketingListId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_4.remarketingLists.html b/docs/dyn/dfareporting_v2_8.remarketingLists.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_4.remarketingLists.html
rename to docs/dyn/dfareporting_v2_8.remarketingLists.html
index cc478e5..ee3c394 100644
--- a/docs/dyn/dfareporting_v2_4.remarketingLists.html
+++ b/docs/dyn/dfareporting_v2_8.remarketingLists.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.remarketingLists.html">remarketingLists</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.remarketingLists.html">remarketingLists</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -82,7 +82,7 @@
 <p class="firstline">Inserts a new remarketing list.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of remarketing lists, possibly filtered.</p>
+<p class="firstline">Retrieves a list of remarketing lists, possibly filtered. This method supports paging.</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>
@@ -129,7 +129,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
@@ -181,7 +181,7 @@
     "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
     "description": "A String", # Remarketing list description.
     "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
     "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
     "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
     "listSource": "A String", # Product from which this remarketing list was originated.
@@ -227,7 +227,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
@@ -247,7 +247,7 @@
 
 <div class="method">
     <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, floodlightActivityId=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of remarketing lists, possibly filtered.
+  <pre>Retrieves a list of remarketing lists, possibly filtered. This method supports paging.
 
 Args:
   profileId: string, User profile ID associated with this request. (required)
@@ -261,7 +261,7 @@
   floodlightActivityId: string, Select only remarketing lists that have this floodlight activity ID.
   maxResults: integer, Maximum number of results to return.
   active: boolean, Select only active or only inactive remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -297,7 +297,7 @@
           "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
           "description": "A String", # Remarketing list description.
           "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+          "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
           "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
           "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
           "listSource": "A String", # Product from which this remarketing list was originated.
@@ -367,7 +367,7 @@
     "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
     "description": "A String", # Remarketing list description.
     "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
     "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
     "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
     "listSource": "A String", # Product from which this remarketing list was originated.
@@ -413,7 +413,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
@@ -465,7 +465,7 @@
     "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
     "description": "A String", # Remarketing list description.
     "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+    "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
     "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
     "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
     "listSource": "A String", # Product from which this remarketing list was originated.
@@ -511,7 +511,7 @@
       "subaccountId": "A String", # Subaccount ID of this remarketing list. This is a read-only, auto-generated field that is only returned in GET requests.
       "description": "A String", # Remarketing list description.
       "listSize": "A String", # Number of users currently in the list. This is a read-only field.
-      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression.
+      "lifeSpan": "A String", # Number of days that a user should remain in the remarketing list without an impression. Acceptable values are 1 to 540, inclusive.
       "name": "A String", # Name of the remarketing list. This is a required field. Must be no greater than 128 characters long.
       "advertiserId": "A String", # Dimension value for the advertiser ID that owns this remarketing list. This is a required field.
       "listSource": "A String", # Product from which this remarketing list was originated.
diff --git a/docs/dyn/dfareporting_v2_5beta1.reports.compatibleFields.html b/docs/dyn/dfareporting_v2_8.reports.compatibleFields.html
similarity index 99%
rename from docs/dyn/dfareporting_v2_5beta1.reports.compatibleFields.html
rename to docs/dyn/dfareporting_v2_8.reports.compatibleFields.html
index dbf0b73..f3cc63e 100644
--- a/docs/dyn/dfareporting_v2_5beta1.reports.compatibleFields.html
+++ b/docs/dyn/dfareporting_v2_8.reports.compatibleFields.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.reports.html">reports</a> . <a href="dfareporting_v2_5beta1.reports.compatibleFields.html">compatibleFields</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.reports.html">reports</a> . <a href="dfareporting_v2_8.reports.compatibleFields.html">compatibleFields</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#query">query(profileId, body)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.reports.files.html b/docs/dyn/dfareporting_v2_8.reports.files.html
similarity index 93%
rename from docs/dyn/dfareporting_v2_6.reports.files.html
rename to docs/dyn/dfareporting_v2_8.reports.files.html
index f84e1c5..0dd4efa 100644
--- a/docs/dyn/dfareporting_v2_6.reports.files.html
+++ b/docs/dyn/dfareporting_v2_8.reports.files.html
@@ -72,14 +72,14 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.reports.html">reports</a> . <a href="dfareporting_v2_6.reports.files.html">files</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.reports.html">reports</a> . <a href="dfareporting_v2_8.reports.files.html">files</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
+<p class="firstline">Retrieves a report file. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#get_media">get_media(profileId, reportId, fileId)</a></code></p>
-<p class="firstline">Retrieves a report file.</p>
+<p class="firstline">Retrieves a report file. This method supports media download.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</a></code></p>
 <p class="firstline">Lists files for a report.</p>
@@ -89,7 +89,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
+  <pre>Retrieves a report file. This method supports media download.
 
 Args:
   profileId: string, The DFA profile ID. (required)
@@ -123,7 +123,7 @@
 
 <div class="method">
     <code class="details" id="get_media">get_media(profileId, reportId, fileId)</code>
-  <pre>Retrieves a report file.
+  <pre>Retrieves a report file. This method supports media download.
 
 Args:
   profileId: string, The DFA profile ID. (required)
@@ -149,7 +149,7 @@
       ID - Sort by file ID.
       LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
diff --git a/docs/dyn/dfareporting_v2_5beta1.reports.html b/docs/dyn/dfareporting_v2_8.reports.html
similarity index 99%
rename from docs/dyn/dfareporting_v2_5beta1.reports.html
rename to docs/dyn/dfareporting_v2_8.reports.html
index 835adf5..9870d9c 100644
--- a/docs/dyn/dfareporting_v2_5beta1.reports.html
+++ b/docs/dyn/dfareporting_v2_8.reports.html
@@ -72,15 +72,15 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.reports.html">reports</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.reports.html">reports</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.reports.compatibleFields.html">compatibleFields()</a></code>
+  <code><a href="dfareporting_v2_8.reports.compatibleFields.html">compatibleFields()</a></code>
 </p>
 <p class="firstline">Returns the compatibleFields Resource.</p>
 
 <p class="toc_element">
-  <code><a href="dfareporting_v2_5beta1.reports.files.html">files()</a></code>
+  <code><a href="dfareporting_v2_8.reports.files.html">files()</a></code>
 </p>
 <p class="firstline">Returns the files Resource.</p>
 
@@ -1104,7 +1104,7 @@
   profileId: string, The DFA user profile ID. (required)
   pageToken: string, The value of the nextToken from the previous result page.
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - Ascending order.
       DESCENDING - Descending order.
@@ -1113,7 +1113,7 @@
       ID - Sort by report ID.
       LAST_MODIFIED_TIME - Sort by 'lastModifiedTime' field.
       NAME - Sort by name of reports.
-  scope: string, The scope that defines which results are returned, default is 'MINE'.
+  scope: string, The scope that defines which results are returned.
     Allowed values
       ALL - All reports in account.
       MINE - My reports.
diff --git a/docs/dyn/dfareporting_v2_5beta1.sites.html b/docs/dyn/dfareporting_v2_8.sites.html
similarity index 82%
rename from docs/dyn/dfareporting_v2_5beta1.sites.html
rename to docs/dyn/dfareporting_v2_8.sites.html
index 8a244ab..0d3d3c7 100644
--- a/docs/dyn/dfareporting_v2_5beta1.sites.html
+++ b/docs/dyn/dfareporting_v2_8.sites.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5beta1.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5beta1.sites.html">sites</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.sites.html">sites</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -117,11 +117,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -130,11 +130,12 @@
           "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
           "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
         },
+        "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+        "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
         "creativeSettings": { # Creative Settings # Site-wide creative settings.
           "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
           "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       },
       "approved": True or False, # Whether this site is approved.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -186,11 +187,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
       "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+      "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
       "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -199,11 +200,12 @@
         "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
+      "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+      "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
       "creativeSettings": { # Creative Settings # Site-wide creative settings.
         "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
       },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
     },
     "approved": True or False, # Whether this site is approved.
     "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -249,11 +251,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -262,11 +264,12 @@
           "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
           "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
         },
+        "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+        "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
         "creativeSettings": { # Creative Settings # Site-wide creative settings.
           "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
           "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       },
       "approved": True or False, # Whether this site is approved.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -307,7 +310,7 @@
   acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
   pageToken: string, Value of the nextPageToken from the previous result page.
   acceptsPublisherPaidPlacements: boolean, Select only sites that accept publisher paid placements.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -344,11 +347,11 @@
             "id": "A String", # The ID associated with the value if available.
           },
           "siteSettings": { # Site Settings # Site-wide settings.
-            "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
             "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+            "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
             "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
             },
             "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
             "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -357,11 +360,12 @@
               "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
               "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
             },
+            "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+            "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
             "creativeSettings": { # Creative Settings # Site-wide creative settings.
               "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
               "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
             },
-            "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
           },
           "approved": True or False, # Whether this site is approved.
           "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -430,11 +434,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
       "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+      "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
       "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -443,11 +447,12 @@
         "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
+      "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+      "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
       "creativeSettings": { # Creative Settings # Site-wide creative settings.
         "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
       },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
     },
     "approved": True or False, # Whether this site is approved.
     "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -493,11 +498,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -506,11 +511,12 @@
           "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
           "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
         },
+        "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+        "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
         "creativeSettings": { # Creative Settings # Site-wide creative settings.
           "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
           "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       },
       "approved": True or False, # Whether this site is approved.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -562,11 +568,11 @@
       "id": "A String", # The ID associated with the value if available.
     },
     "siteSettings": { # Site Settings # Site-wide settings.
-      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
       "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+      "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
       "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
       },
       "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
       "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -575,11 +581,12 @@
         "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
         "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
       },
+      "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+      "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
       "creativeSettings": { # Creative Settings # Site-wide creative settings.
         "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
       },
-      "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
     },
     "approved": True or False, # Whether this site is approved.
     "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
@@ -625,11 +632,11 @@
         "id": "A String", # The ID associated with the value if available.
       },
       "siteSettings": { # Site Settings # Site-wide settings.
-        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
         "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "videoActiveViewOptOutTemplate": True or False, # Whether Verification and ActiveView for in-stream video creatives are disabled by default for new placements created under this site. This value will be used to populate the placement.videoActiveViewOptOut field, when no value is specified for the new placement.
         "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
-          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
-          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used. Acceptable values are 0 to 90, inclusive.
         },
         "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
         "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
@@ -638,11 +645,12 @@
           "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
           "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
         },
+        "vpaidAdapterChoiceTemplate": "A String", # Default VPAID adapter setting for new placements created under this site. This value will be used to populate the placements.vpaidAdapterChoice field, when no value is specified for the new placement. Controls which VPAID format the measurement adapter will use for in-stream video creatives assigned to the placement. The publisher's specifications will typically determine this setting. For VPAID creatives, the adapter format will match the VPAID format (HTML5 VPAID creatives use the HTML5 adapter, and Flash VPAID creatives use the Flash adapter).
+        "adBlockingOptOut": True or False, # Whether this site opts out of ad blocking. When true, ad blocking is disabled for all placements under the site, regardless of the individual placement settings. When false, the campaign and placement settings take effect.
         "creativeSettings": { # Creative Settings # Site-wide creative settings.
           "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
           "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
         },
-        "videoActiveViewOptOut": True or False, # Whether Verification and ActiveView are disabled for in-stream video creatives on this site. The same setting videoActiveViewOptOut exists on the directory site level -- the opt out occurs if either of these settings are true. These settings are distinct from DirectorySites.settings.activeViewOptOut or Sites.siteSettings.activeViewOptOut which only apply to display ads. However, Accounts.activeViewOptOut opts out both video traffic, as well as display ads, from Verification and ActiveView.
       },
       "approved": True or False, # Whether this site is approved.
       "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
diff --git a/docs/dyn/dfareporting_v2_5.sizes.html b/docs/dyn/dfareporting_v2_8.sizes.html
similarity index 84%
rename from docs/dyn/dfareporting_v2_5.sizes.html
rename to docs/dyn/dfareporting_v2_8.sizes.html
index 8d731bf..4e420c1 100644
--- a/docs/dyn/dfareporting_v2_5.sizes.html
+++ b/docs/dyn/dfareporting_v2_8.sizes.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.sizes.html">sizes</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.sizes.html">sizes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -96,11 +96,11 @@
   An object of the form:
 
     { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
+    "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
     "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
     "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
     "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
+    "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
   }</pre>
 </div>
 
@@ -114,11 +114,11 @@
     The object takes the form of:
 
 { # Represents the dimensions of ads, placements, creatives, or creative assets.
-  "width": 42, # Width of this size.
+  "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
   "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
   "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
   "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-  "height": 42, # Height of this size.
+  "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
 }
 
 
@@ -126,11 +126,11 @@
   An object of the form:
 
     { # Represents the dimensions of ads, placements, creatives, or creative assets.
-    "width": 42, # Width of this size.
+    "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
     "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
     "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
     "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-    "height": 42, # Height of this size.
+    "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
   }</pre>
 </div>
 
@@ -152,11 +152,11 @@
     "kind": "dfareporting#sizesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sizesListResponse".
     "sizes": [ # Size collection.
       { # Represents the dimensions of ads, placements, creatives, or creative assets.
-        "width": 42, # Width of this size.
+        "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
         "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
         "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
         "id": "A String", # ID of this size. This is a read-only, auto-generated field.
-        "height": 42, # Height of this size.
+        "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
       },
     ],
   }</pre>
diff --git a/docs/dyn/dfareporting_v2_5.subaccounts.html b/docs/dyn/dfareporting_v2_8.subaccounts.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5.subaccounts.html
rename to docs/dyn/dfareporting_v2_8.subaccounts.html
index 4ffe489..739af73 100644
--- a/docs/dyn/dfareporting_v2_5.subaccounts.html
+++ b/docs/dyn/dfareporting_v2_8.subaccounts.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.subaccounts.html">subaccounts</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.subaccounts.html">subaccounts</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -163,7 +163,7 @@
       NAME - 
   ids: string, Select only subaccounts with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_4.targetableRemarketingLists.html b/docs/dyn/dfareporting_v2_8.targetableRemarketingLists.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_4.targetableRemarketingLists.html
rename to docs/dyn/dfareporting_v2_8.targetableRemarketingLists.html
index fa5b2a6..554f20a 100644
--- a/docs/dyn/dfareporting_v2_4.targetableRemarketingLists.html
+++ b/docs/dyn/dfareporting_v2_8.targetableRemarketingLists.html
@@ -72,14 +72,14 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_4.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_4.targetableRemarketingLists.html">targetableRemarketingLists</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.targetableRemarketingLists.html">targetableRemarketingLists</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
 <p class="firstline">Gets one remarketing list by ID.</p>
 <p class="toc_element">
   <code><a href="#list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</a></code></p>
-<p class="firstline">Retrieves a list of targetable remarketing lists, possibly filtered.</p>
+<p class="firstline">Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.</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>
@@ -120,7 +120,7 @@
 
 <div class="method">
     <code class="details" id="list">list(profileId, advertiserId, name=None, pageToken=None, sortField=None, maxResults=None, active=None, sortOrder=None)</code>
-  <pre>Retrieves a list of targetable remarketing lists, possibly filtered.
+  <pre>Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.
 
 Args:
   profileId: string, User profile ID associated with this request. (required)
@@ -133,7 +133,7 @@
       NAME - 
   maxResults: integer, Maximum number of results to return.
   active: boolean, Select only active or only inactive targetable remarketing lists.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_6.targetingTemplates.html b/docs/dyn/dfareporting_v2_8.targetingTemplates.html
similarity index 97%
rename from docs/dyn/dfareporting_v2_6.targetingTemplates.html
rename to docs/dyn/dfareporting_v2_8.targetingTemplates.html
index 862e8a0..149beb1 100644
--- a/docs/dyn/dfareporting_v2_6.targetingTemplates.html
+++ b/docs/dyn/dfareporting_v2_8.targetingTemplates.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.targetingTemplates.html">targetingTemplates</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.targetingTemplates.html">targetingTemplates</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
@@ -110,7 +110,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -286,7 +286,7 @@
     "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -456,7 +456,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -632,7 +632,7 @@
       NAME - 
   ids: string, Select only targeting templates with these IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
@@ -650,7 +650,7 @@
           "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
           "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
             "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+            "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
               42,
             ],
             "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -843,7 +843,7 @@
     "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1013,7 +1013,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1189,7 +1189,7 @@
     "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
     "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
       "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+      "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
         42,
       ],
       "daysOfWeek": [ # Days of the week when the ad will serve.
@@ -1359,7 +1359,7 @@
       "name": "A String", # Name of this targeting template. This field is required. It must be less than 256 characters long and unique within an advertiser.
       "dayPartTargeting": { # Day Part Targeting. # Time and day targeting criteria.
         "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
-        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        "hoursOfDay": [ # Hours of the day when the ad will serve, where 0 is midnight to 1 AM and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm. Acceptable values are 0 to 23, inclusive.
           42,
         ],
         "daysOfWeek": [ # Days of the week when the ad will serve.
diff --git a/docs/dyn/dfareporting_v2_6.userProfiles.html b/docs/dyn/dfareporting_v2_8.userProfiles.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_6.userProfiles.html
rename to docs/dyn/dfareporting_v2_8.userProfiles.html
index 9d99498..e35fe16 100644
--- a/docs/dyn/dfareporting_v2_6.userProfiles.html
+++ b/docs/dyn/dfareporting_v2_8.userProfiles.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.userProfiles.html">userProfiles</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.userProfiles.html">userProfiles</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.userRolePermissionGroups.html b/docs/dyn/dfareporting_v2_8.userRolePermissionGroups.html
similarity index 95%
rename from docs/dyn/dfareporting_v2_6.userRolePermissionGroups.html
rename to docs/dyn/dfareporting_v2_8.userRolePermissionGroups.html
index ace2e85..dfd164a 100644
--- a/docs/dyn/dfareporting_v2_6.userRolePermissionGroups.html
+++ b/docs/dyn/dfareporting_v2_8.userRolePermissionGroups.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.userRolePermissionGroups.html">userRolePermissionGroups</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.userRolePermissionGroups.html">userRolePermissionGroups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_6.userRolePermissions.html b/docs/dyn/dfareporting_v2_8.userRolePermissions.html
similarity index 96%
rename from docs/dyn/dfareporting_v2_6.userRolePermissions.html
rename to docs/dyn/dfareporting_v2_8.userRolePermissions.html
index 8f3f612..4e75730 100644
--- a/docs/dyn/dfareporting_v2_6.userRolePermissions.html
+++ b/docs/dyn/dfareporting_v2_8.userRolePermissions.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_6.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_6.userRolePermissions.html">userRolePermissions</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.userRolePermissions.html">userRolePermissions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(profileId, id)</a></code></p>
diff --git a/docs/dyn/dfareporting_v2_5.userRoles.html b/docs/dyn/dfareporting_v2_8.userRoles.html
similarity index 98%
rename from docs/dyn/dfareporting_v2_5.userRoles.html
rename to docs/dyn/dfareporting_v2_8.userRoles.html
index 70f20ea..767b0e4 100644
--- a/docs/dyn/dfareporting_v2_5.userRoles.html
+++ b/docs/dyn/dfareporting_v2_8.userRoles.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="dfareporting_v2_5.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_5.userRoles.html">userRoles</a></h1>
+<h1><a href="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.userRoles.html">userRoles</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(profileId, id)</a></code></p>
@@ -201,7 +201,7 @@
   ids: string, Select only user roles with the specified IDs. (repeated)
   maxResults: integer, Maximum number of results to return.
   accountUserRoleOnly: boolean, Select only account level user roles not associated with any specific subaccount.
-  sortOrder: string, Order of sorted results, default is ASCENDING.
+  sortOrder: string, Order of sorted results.
     Allowed values
       ASCENDING - 
       DESCENDING - 
diff --git a/docs/dyn/dfareporting_v2_8.videoFormats.html b/docs/dyn/dfareporting_v2_8.videoFormats.html
new file mode 100644
index 0000000..dd81193
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_8.videoFormats.html
@@ -0,0 +1,140 @@
+<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="dfareporting_v2_8.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_8.videoFormats.html">videoFormats</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one video format by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Lists available video formats.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one video format by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: integer, Video format ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains information about supported video formats.
+    "fileType": "A String", # File type of the video format.
+    "resolution": { # Represents the dimensions of ads, placements, creatives, or creative assets. # The resolution of this video format.
+      "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+    },
+    "id": 42, # ID of the video format.
+    "kind": "dfareporting#videoFormat", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoFormat".
+    "targetBitRate": 42, # The target bit rate of this video format.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Lists available video formats.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Video Format List Response
+    "kind": "dfareporting#videoFormatsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoFormatsListResponse".
+    "videoFormats": [ # Video format collection.
+      { # Contains information about supported video formats.
+        "fileType": "A String", # File type of the video format.
+        "resolution": { # Represents the dimensions of ads, placements, creatives, or creative assets. # The resolution of this video format.
+          "width": 42, # Width of this size. Acceptable values are 0 to 32767, inclusive.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size. Acceptable values are 0 to 32767, inclusive.
+        },
+        "id": 42, # ID of the video format.
+        "kind": "dfareporting#videoFormat", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#videoFormat".
+        "targetBitRate": 42, # The target bit rate of this video format.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dlp_v2beta1.content.html b/docs/dyn/dlp_v2beta1.content.html
index 5e52893..16265b4 100644
--- a/docs/dyn/dlp_v2beta1.content.html
+++ b/docs/dyn/dlp_v2beta1.content.html
@@ -95,10 +95,10 @@
         # considered "related" unless inspect_config.independent_inputs is true.
         # Up to 100 are allowed per request.
       { # Container structure for the content to inspect.
+        "data": "A String", # Content data to inspect or redact.
         "type": "A String", # Type of the content, as defined in Content-Type HTTP header.
             # Supported types are: all "text" types, octet streams, PNG images,
             # JPEG images.
-        "data": "A String", # Content data to inspect or redact.
         "value": "A String", # String data to inspect or redact.
       },
     ],
@@ -106,14 +106,17 @@
         # When used with redactContent only info_types and min_likelihood are currently
         # used.
       "minLikelihood": "A String", # Only return findings equal or above this threshold.
-      "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding will
-          # be included in the response; see Finding.quote.
+      "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is
+          # included in the response; see Finding.quote.
       "excludeTypes": True or False, # When true, exclude type information of the findings.
       "infoTypes": [ # Restrict what info_types to look for. The values must correspond to
           # InfoType values returned by ListInfoTypes or found in documentation.
           # Empty info_types runs all enabled detectors.
         { # Type of information detected by the API.
-          "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
+          "name": "A String", # Name of the information type. For built-in info types, this is provided by
+              # the API call ListInfoTypes. For user-defined info types, this is
+              # provided by the user. All user-defined info types must have unique names,
+              # and cannot conflict with built-in info type names.
         },
       ],
       "maxFindings": 42, # Limit the number of findings per content item.
@@ -129,7 +132,7 @@
   An object of the form:
 
     { # Results of inspecting a list of items.
-    "results": [ # Each content_item from the request will have a result in this list, in the
+    "results": [ # Each content_item from the request has a result in this list, in the
         # same order as the request.
       { # All the findings for a single scanned item.
         "findingsTruncated": True or False, # If true, then this item might have more findings than were returned,
@@ -140,9 +143,15 @@
             # smaller batches.
         "findings": [ # List of findings for an item.
           { # Container structure describing a single finding within a string or image.
+            "quote": "A String", # The specific string that may be potentially sensitive info.
+            "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
             "infoType": { # Type of information detected by the API. # The specific type of info the string might be.
-              "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
+              "name": "A String", # Name of the information type. For built-in info types, this is provided by
+                  # the API call ListInfoTypes. For user-defined info types, this is
+                  # provided by the user. All user-defined info types must have unique names,
+                  # and cannot conflict with built-in info type names.
             },
+            "createTime": "A String", # Timestamp when finding was detected.
             "location": { # Specifies the location of a finding within its source item. # Location of the info found.
               "fieldId": { # General identifier of a data field in a storage service. # Field id of the field containing the finding.
                 "columnName": "A String", # Column name describing the field.
@@ -161,10 +170,6 @@
                 "end": "A String", # Index of the last character of the range (exclusive).
               },
               "recordKey": { # Message for a unique key indicating a record that contains a finding. # Key of the finding.
-                "cloudStorageKey": { # Record key for a finding in a Cloud Storage file.
-                  "startOffset": "A String", # Byte offset of the referenced data in the file.
-                  "filePath": "A String", # Path to the file.
-                },
                 "datastoreKey": { # Record key for a finding in Cloud Datastore.
                   "entityKey": { # A unique identifier for a Datastore entity. # Datastore entity key.
                       # If a key's partition ID or any of its path kinds or names are
@@ -205,21 +210,20 @@
                         # A partition ID contains several dimensions:
                         # project ID and namespace ID.
                       "projectId": "A String", # The ID of the project to which the entities belong.
-                      "databaseId": "A String", # If not empty, the ID of the database to which the entities
-                          # belong.
                       "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                     },
                   },
                 },
+                "cloudStorageKey": { # Record key for a finding in a Cloud Storage file.
+                  "startOffset": "A String", # Byte offset of the referenced data in the file.
+                  "filePath": "A String", # Path to the file.
+                },
               },
               "byteRange": { # Generic half-open interval [start, end) # Zero-based byte offsets within a content item.
                 "start": "A String", # Index of the first character of the range (inclusive).
                 "end": "A String", # Index of the last character of the range (exclusive).
               },
             },
-            "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
-            "createTime": "A String", # Timestamp when finding was detected.
-            "quote": "A String", # The specific string that may be potentially sensitive info.
           },
         ],
       },
@@ -240,40 +244,46 @@
       # and replace it with a default or provided content.
     "items": [ # The list of items to inspect. Up to 100 are allowed per request.
       { # Container structure for the content to inspect.
+        "data": "A String", # Content data to inspect or redact.
         "type": "A String", # Type of the content, as defined in Content-Type HTTP header.
             # Supported types are: all "text" types, octet streams, PNG images,
             # JPEG images.
-        "data": "A String", # Content data to inspect or redact.
         "value": "A String", # String data to inspect or redact.
       },
     ],
-    "replaceConfigs": [ # The strings to replace findings with. Must specify at least one.
-      {
-        "replaceWith": "A String", # Content replacing sensitive information of given type. Max 256 chars.
-        "infoType": { # Type of information detected by the API. # Type of information to replace. Only one ReplaceConfig per info_type
-            # should be provided. If ReplaceConfig does not have an info_type, we'll
-            # match it against all info_types that are found but not specified in
-            # another ReplaceConfig.
-          "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
-        },
-      },
-    ],
     "inspectConfig": { # Configuration description of the scanning process. # Configuration for the inspector.
         # When used with redactContent only info_types and min_likelihood are currently
         # used.
       "minLikelihood": "A String", # Only return findings equal or above this threshold.
-      "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding will
-          # be included in the response; see Finding.quote.
+      "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is
+          # included in the response; see Finding.quote.
       "excludeTypes": True or False, # When true, exclude type information of the findings.
       "infoTypes": [ # Restrict what info_types to look for. The values must correspond to
           # InfoType values returned by ListInfoTypes or found in documentation.
           # Empty info_types runs all enabled detectors.
         { # Type of information detected by the API.
-          "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
+          "name": "A String", # Name of the information type. For built-in info types, this is provided by
+              # the API call ListInfoTypes. For user-defined info types, this is
+              # provided by the user. All user-defined info types must have unique names,
+              # and cannot conflict with built-in info type names.
         },
       ],
       "maxFindings": 42, # Limit the number of findings per content item.
     },
+    "replaceConfigs": [ # The strings to replace findings with. Must specify at least one.
+      {
+        "replaceWith": "A String", # Content replacing sensitive information of given type. Max 256 chars.
+        "infoType": { # Type of information detected by the API. # Type of information to replace. Only one ReplaceConfig per info_type
+            # should be provided. If ReplaceConfig does not have an info_type, the DLP
+            # API matches it against all info_types that are found but not specified in
+            # another ReplaceConfig.
+          "name": "A String", # Name of the information type. For built-in info types, this is provided by
+              # the API call ListInfoTypes. For user-defined info types, this is
+              # provided by the user. All user-defined info types must have unique names,
+              # and cannot conflict with built-in info type names.
+        },
+      },
+    ],
   }
 
   x__xgafv: string, V1 error format.
@@ -284,13 +294,13 @@
 Returns:
   An object of the form:
 
-    { # Results of deidentifying a list of items.
+    { # Results of redacting a list of items.
     "items": [ # The redacted content.
       { # Container structure for the content to inspect.
+        "data": "A String", # Content data to inspect or redact.
         "type": "A String", # Type of the content, as defined in Content-Type HTTP header.
             # Supported types are: all "text" types, octet streams, PNG images,
             # JPEG images.
-        "data": "A String", # Content data to inspect or redact.
         "value": "A String", # String data to inspect or redact.
       },
     ],
diff --git a/docs/dyn/dlp_v2beta1.inspect.operations.html b/docs/dyn/dlp_v2beta1.inspect.operations.html
index 3921a91..7556099 100644
--- a/docs/dyn/dlp_v2beta1.inspect.operations.html
+++ b/docs/dyn/dlp_v2beta1.inspect.operations.html
@@ -135,18 +135,39 @@
 
 { # Request for scheduling a scan of a data subset from a Google Platform data
       # repository.
+    "outputConfig": { # Cloud repository for storing output. # Optional location to store findings. The bucket must already exist and
+        # the Google APIs service account for DLP must have write permission to
+        # write to the given bucket.
+        # <p>Results are split over multiple csv files with each file name matching
+        # the pattern "[operation_id]_[count].csv", for example
+        # `3094877188788974909_1.csv`. The `operation_id` matches the
+        # identifier for the Operation, and the `count` is a counter used for
+        # tracking the number of files written. <p>The CSV file(s) contain the
+        # following columns regardless of storage type scanned: <li>id <li>info_type
+        # <li>likelihood <li>byte size of finding <li>quote <li>time_stamp<br/>
+        # <p>For Cloud Storage the next columns are: <li>file_path
+        # <li>start_offset<br/>
+        # <p>For Cloud Datastore the next columns are: <li>project_id
+        # <li>namespace_id <li>path <li>column_name <li>offset
+      "storagePath": { # A location in Cloud Storage. # The path to a Google Cloud Storage location to store output.
+        "path": "A String", # The url, in the format of `gs://bucket/<path>`.
+      },
+    },
     "inspectConfig": { # Configuration description of the scanning process. # Configuration for the inspector.
         # When used with redactContent only info_types and min_likelihood are currently
         # used.
       "minLikelihood": "A String", # Only return findings equal or above this threshold.
-      "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding will
-          # be included in the response; see Finding.quote.
+      "includeQuote": True or False, # When true, a contextual quote from the data that triggered a finding is
+          # included in the response; see Finding.quote.
       "excludeTypes": True or False, # When true, exclude type information of the findings.
       "infoTypes": [ # Restrict what info_types to look for. The values must correspond to
           # InfoType values returned by ListInfoTypes or found in documentation.
           # Empty info_types runs all enabled detectors.
         { # Type of information detected by the API.
-          "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
+          "name": "A String", # Name of the information type. For built-in info types, this is provided by
+              # the API call ListInfoTypes. For user-defined info types, this is
+              # provided by the user. All user-defined info types must have unique names,
+              # and cannot conflict with built-in info type names.
         },
       ],
       "maxFindings": 42, # Limit the number of findings per content item.
@@ -173,15 +194,13 @@
             # A partition ID contains several dimensions:
             # project ID and namespace ID.
           "projectId": "A String", # The ID of the project to which the entities belong.
-          "databaseId": "A String", # If not empty, the ID of the database to which the entities
-              # belong.
           "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
         },
       },
       "cloudStorageOptions": { # Options defining a file or a set of files (path ending with *) within # Google Cloud Storage options specification.
           # a Google Cloud Storage bucket.
         "fileSet": { # Set of files to scan.
-          "url": "A String", # The url, in the format gs://<bucket>/<path>. Trailing wildcard in the
+          "url": "A String", # The url, in the format `gs://<bucket>/<path>`. Trailing wildcard in the
               # path is allowed.
         },
       },
@@ -198,9 +217,16 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # This field will contain an `InspectOperationMetdata` object.
+    "metadata": { # This field will contain an `InspectOperationMetadata` object.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # This field will contain an `InspectOperationResult` object.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -218,7 +244,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -241,7 +267,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -264,13 +290,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # This field will contain an `InspectOperationResult` object.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
   }</pre>
 </div>
 
@@ -318,9 +337,16 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # This field will contain an `InspectOperationMetdata` object.
+    "metadata": { # This field will contain an `InspectOperationMetadata` object.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # This field will contain an `InspectOperationResult` object.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -338,7 +364,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -361,7 +387,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -384,13 +410,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # This field will contain an `InspectOperationResult` object.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
   }</pre>
 </div>
 
@@ -399,11 +418,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The list page size. The max allowed value is 256 and default is 100.
   filter: string, This parameter supports filtering by done, ie done=true or done=false.
   pageToken: string, The list page token.
@@ -420,9 +444,16 @@
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
-        "metadata": { # This field will contain an `InspectOperationMetdata` object.
+        "metadata": { # This field will contain an `InspectOperationMetadata` object.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # This field will contain an `InspectOperationResult` object.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -440,7 +471,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -463,7 +494,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -486,13 +517,6 @@
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # This field will contain an `InspectOperationResult` object.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/dlp_v2beta1.inspect.results.findings.html b/docs/dyn/dlp_v2beta1.inspect.results.findings.html
index fa160ec..8371470 100644
--- a/docs/dyn/dlp_v2beta1.inspect.results.findings.html
+++ b/docs/dyn/dlp_v2beta1.inspect.results.findings.html
@@ -75,20 +75,29 @@
 <h1><a href="dlp_v2beta1.html">DLP API</a> . <a href="dlp_v2beta1.inspect.html">inspect</a> . <a href="dlp_v2beta1.inspect.results.html">results</a> . <a href="dlp_v2beta1.inspect.results.findings.html">findings</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns list of results for given inspect operation result set id.</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="list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>Returns list of results for given inspect operation result set id.
 
 Args:
   name: string, Identifier of the results set returned as metadata of
 the longrunning operation created by a call to CreateInspectOperation.
 Should be in the format of `inspect/results/{id}. (required)
+  pageSize: integer, Maximum number of results to return.
+If 0, the implementation select a reasonable value.
+  filter: string, Restrict findings to items that match. Supports info_type and likelihood.
+<p>Examples:<br/>
+<li>info_type=EMAIL_ADDRESS
+<li>info_type=PHONE_NUMBER,EMAIL_ADDRESS
+<li>likelihood=VERY_LIKELY
+<li>likelihood=VERY_LIKELY,LIKELY
+<li>info_type=EMAIL_ADDRESS,likelihood=VERY_LIKELY,LIKELY
   pageToken: string, The value returned by the last `ListInspectFindingsResponse`; indicates
 that this is a continuation of a prior `ListInspectFindings` call, and that
 the system should return the next page of data.
@@ -96,8 +105,6 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Maximum number of results to return.
-If 0, the implementation will select a reasonable value.
 
 Returns:
   An object of the form:
@@ -114,9 +121,15 @@
           # smaller batches.
       "findings": [ # List of findings for an item.
         { # Container structure describing a single finding within a string or image.
+          "quote": "A String", # The specific string that may be potentially sensitive info.
+          "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
           "infoType": { # Type of information detected by the API. # The specific type of info the string might be.
-            "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
+            "name": "A String", # Name of the information type. For built-in info types, this is provided by
+                # the API call ListInfoTypes. For user-defined info types, this is
+                # provided by the user. All user-defined info types must have unique names,
+                # and cannot conflict with built-in info type names.
           },
+          "createTime": "A String", # Timestamp when finding was detected.
           "location": { # Specifies the location of a finding within its source item. # Location of the info found.
             "fieldId": { # General identifier of a data field in a storage service. # Field id of the field containing the finding.
               "columnName": "A String", # Column name describing the field.
@@ -135,10 +148,6 @@
               "end": "A String", # Index of the last character of the range (exclusive).
             },
             "recordKey": { # Message for a unique key indicating a record that contains a finding. # Key of the finding.
-              "cloudStorageKey": { # Record key for a finding in a Cloud Storage file.
-                "startOffset": "A String", # Byte offset of the referenced data in the file.
-                "filePath": "A String", # Path to the file.
-              },
               "datastoreKey": { # Record key for a finding in Cloud Datastore.
                 "entityKey": { # A unique identifier for a Datastore entity. # Datastore entity key.
                     # If a key's partition ID or any of its path kinds or names are
@@ -179,21 +188,20 @@
                       # A partition ID contains several dimensions:
                       # project ID and namespace ID.
                     "projectId": "A String", # The ID of the project to which the entities belong.
-                    "databaseId": "A String", # If not empty, the ID of the database to which the entities
-                        # belong.
                     "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
                   },
                 },
               },
+              "cloudStorageKey": { # Record key for a finding in a Cloud Storage file.
+                "startOffset": "A String", # Byte offset of the referenced data in the file.
+                "filePath": "A String", # Path to the file.
+              },
             },
             "byteRange": { # Generic half-open interval [start, end) # Zero-based byte offsets within a content item.
               "start": "A String", # Index of the first character of the range (inclusive).
               "end": "A String", # Index of the last character of the range (exclusive).
             },
           },
-          "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
-          "createTime": "A String", # Timestamp when finding was detected.
-          "quote": "A String", # The specific string that may be potentially sensitive info.
         },
       ],
     },
diff --git a/docs/dyn/drive_v2.about.html b/docs/dyn/drive_v2.about.html
index c175288..5acffec 100644
--- a/docs/dyn/drive_v2.about.html
+++ b/docs/dyn/drive_v2.about.html
@@ -109,6 +109,13 @@
     ],
     "quotaBytesUsedAggregate": "A String", # The number of quota bytes used by all Google apps (Drive, Picasa, etc.).
     "permissionId": "A String", # The current user's ID as visible in the permissions collection.
+    "teamDriveThemes": [ # A list of themes that are supported for Team Drives.
+      {
+        "colorRgb": "A String", # The color of this Team Drive theme as an RGB hex string.
+        "backgroundImageLink": "A String", # A link to this Team Drive theme's background image.
+        "id": "A String", # The ID of the theme.
+      },
+    ],
     "etag": "A String", # The ETag of the item.
     "largestChangeId": "A String", # The largest change id.
     "quotaBytesUsedInTrash": "A String", # The number of quota bytes used by trashed items.
diff --git a/docs/dyn/drive_v2.changes.html b/docs/dyn/drive_v2.changes.html
index c5a3692..ba28d86 100644
--- a/docs/dyn/drive_v2.changes.html
+++ b/docs/dyn/drive_v2.changes.html
@@ -105,28 +105,38 @@
     { # Representation of a change to a file or Team Drive.
     "teamDrive": { # Representation of a Team Drive. # The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been deleted.
       "kind": "drive#teamDrive", # This is always drive#teamDrive
-      "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+      "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+      "name": "A String", # The name of this Team Drive.
+      "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+      "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
       "capabilities": { # Capabilities the current user has on this Team Drive.
-        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-        "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-        "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+        "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+        "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+        "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
         "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
         "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
         "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-        "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+        "canDownload": True or False, # Whether the current user can download files in this Team Drive.
         "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-        "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-        "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+        "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+        "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+        "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
         "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
         "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-        "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+        "canEdit": True or False, # Whether the current user can edit files in this Team Drive
       },
-      "name": "A String", # The name of this Team Drive.
+      "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+        "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+        "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+        "id": "A String", # The ID of an image file in Drive to use for the background image.
+        "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+      },
+      "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
     },
     "kind": "drive#change", # This is always drive#change.
     "deleted": True or False, # Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.
     "file": { # The metadata for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
-      "hasThumbnail": True or False, # Whether this file has a thumbnail.
+      "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
       "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
       "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
       "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -193,29 +203,30 @@
         "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
         "emailAddress": "A String", # The email address of the user.
       },
-      "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+      "copyable": True or False, # Deprecated: use capabilities/canCopy.
       "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
       "markedViewedByMeDate": "A String", # Deprecated.
       "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
         "A String",
       ],
-      "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-        "canTrash": True or False, # Whether the file can be trashed by the current user.
-        "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-        "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-        "canDelete": True or False, # Whether the file can be deleted by the current user.
+      "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+        "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+        "canTrash": True or False, # Whether the current user can move this file to trash.
+        "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+        "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+        "canDelete": True or False, # Whether the current user can delete this file.
         "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-        "canRename": True or False, # Whether the file can be renamed by the current user.
+        "canRename": True or False, # Whether the current user can rename this file.
         "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+        "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
         "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-        "canDownload": True or False, # Whether the file can be downloaded by the current user.
-        "canComment": True or False, # Whether the current user can comment on the file.
+        "canDownload": True or False, # Whether the current user can download this file.
+        "canComment": True or False, # Whether the current user can comment on this file.
         "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-        "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+        "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
         "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-        "canEdit": True or False, # Whether the file can be edited by the current user.
-        "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+        "canEdit": True or False, # Whether the current user can edit this file.
+        "canUntrash": True or False, # Whether the current user can restore this file from trash.
       },
       "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
       "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -239,7 +250,7 @@
           "withLink": True or False, # Whether the link is required for this permission.
           "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
           "name": "A String", # The name for this permission.
-          "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
             {
               "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
               "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -255,6 +266,7 @@
               "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
             },
           ],
+          "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
           "kind": "drive#permission", # This is always drive#permission.
           "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
           "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -287,7 +299,7 @@
       "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
         "a_key": "A String",
       },
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+      "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
       "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
         "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
         "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -322,9 +334,9 @@
         "durationMillis": "A String", # The duration of the video in milliseconds.
         "height": 42, # The height of the video in pixels.
       },
-      "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+      "editable": True or False, # Deprecated: use capabilities/canEdit.
       "kind": "drive#file", # The type of file. This is always drive#file.
-      "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+      "canComment": True or False, # Deprecated: use capabilities/canComment.
       "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
       "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
       "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -360,7 +372,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -376,6 +388,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -406,7 +419,7 @@
       "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
         "A String",
       ],
-      "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+      "shareable": True or False, # Deprecated: use capabilities/canShare.
       "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
       "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
       "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -466,28 +479,38 @@
       { # Representation of a change to a file or Team Drive.
         "teamDrive": { # Representation of a Team Drive. # The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been deleted.
           "kind": "drive#teamDrive", # This is always drive#teamDrive
-          "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+          "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+          "name": "A String", # The name of this Team Drive.
+          "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+          "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
           "capabilities": { # Capabilities the current user has on this Team Drive.
-            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-            "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-            "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+            "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+            "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+            "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
             "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
             "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
             "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-            "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+            "canDownload": True or False, # Whether the current user can download files in this Team Drive.
             "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-            "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-            "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+            "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+            "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+            "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
             "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
             "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-            "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+            "canEdit": True or False, # Whether the current user can edit files in this Team Drive
           },
-          "name": "A String", # The name of this Team Drive.
+          "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+            "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+            "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+            "id": "A String", # The ID of an image file in Drive to use for the background image.
+            "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+          },
+          "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
         },
         "kind": "drive#change", # This is always drive#change.
         "deleted": True or False, # Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.
         "file": { # The metadata for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
-          "hasThumbnail": True or False, # Whether this file has a thumbnail.
+          "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
           "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
           "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
           "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -554,29 +577,30 @@
             "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
             "emailAddress": "A String", # The email address of the user.
           },
-          "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+          "copyable": True or False, # Deprecated: use capabilities/canCopy.
           "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
           "markedViewedByMeDate": "A String", # Deprecated.
           "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
             "A String",
           ],
-          "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-            "canTrash": True or False, # Whether the file can be trashed by the current user.
-            "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-            "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-            "canDelete": True or False, # Whether the file can be deleted by the current user.
+          "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+            "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+            "canTrash": True or False, # Whether the current user can move this file to trash.
+            "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+            "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+            "canDelete": True or False, # Whether the current user can delete this file.
             "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-            "canRename": True or False, # Whether the file can be renamed by the current user.
+            "canRename": True or False, # Whether the current user can rename this file.
             "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+            "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
             "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-            "canDownload": True or False, # Whether the file can be downloaded by the current user.
-            "canComment": True or False, # Whether the current user can comment on the file.
+            "canDownload": True or False, # Whether the current user can download this file.
+            "canComment": True or False, # Whether the current user can comment on this file.
             "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-            "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+            "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
             "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-            "canEdit": True or False, # Whether the file can be edited by the current user.
-            "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+            "canEdit": True or False, # Whether the current user can edit this file.
+            "canUntrash": True or False, # Whether the current user can restore this file from trash.
           },
           "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
           "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -600,7 +624,7 @@
               "withLink": True or False, # Whether the link is required for this permission.
               "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
               "name": "A String", # The name for this permission.
-              "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+              "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
                 {
                   "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
                   "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -616,6 +640,7 @@
                   "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
                 },
               ],
+              "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
               "kind": "drive#permission", # This is always drive#permission.
               "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
               "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -648,7 +673,7 @@
           "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
             "a_key": "A String",
           },
-          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+          "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
           "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
             "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
             "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -683,9 +708,9 @@
             "durationMillis": "A String", # The duration of the video in milliseconds.
             "height": 42, # The height of the video in pixels.
           },
-          "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+          "editable": True or False, # Deprecated: use capabilities/canEdit.
           "kind": "drive#file", # The type of file. This is always drive#file.
-          "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+          "canComment": True or False, # Deprecated: use capabilities/canComment.
           "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
           "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
           "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -721,7 +746,7 @@
             "withLink": True or False, # Whether the link is required for this permission.
             "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
             "name": "A String", # The name for this permission.
-            "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+            "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
               {
                 "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
                 "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -737,6 +762,7 @@
                 "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
               },
             ],
+            "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
             "kind": "drive#permission", # This is always drive#permission.
             "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
             "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -767,7 +793,7 @@
           "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
             "A String",
           ],
-          "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+          "shareable": True or False, # Deprecated: use capabilities/canShare.
           "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
           "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
           "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
diff --git a/docs/dyn/drive_v2.files.html b/docs/dyn/drive_v2.files.html
index 46686d3..b201612 100644
--- a/docs/dyn/drive_v2.files.html
+++ b/docs/dyn/drive_v2.files.html
@@ -139,7 +139,7 @@
     The object takes the form of:
 
 { # The metadata for a file.
-  "hasThumbnail": True or False, # Whether this file has a thumbnail.
+  "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
   "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -206,29 +206,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "copyable": True or False, # Deprecated: use capabilities/canCopy.
   "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
   "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the current user.
-    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-    "canDelete": True or False, # Whether the file can be deleted by the current user.
+  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the current user can move this file to trash.
+    "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+    "canDelete": True or False, # Whether the current user can delete this file.
     "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canRename": True or False, # Whether the current user can rename this file.
     "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
     "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the current user.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canDownload": True or False, # Whether the current user can download this file.
+    "canComment": True or False, # Whether the current user can comment on this file.
     "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
     "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-    "canEdit": True or False, # Whether the file can be edited by the current user.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canEdit": True or False, # Whether the current user can edit this file.
+    "canUntrash": True or False, # Whether the current user can restore this file from trash.
   },
   "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
   "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -252,7 +253,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -268,6 +269,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -300,7 +302,7 @@
   "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
     "a_key": "A String",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+  "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
   "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
     "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
     "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -335,9 +337,9 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+  "editable": True or False, # Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+  "canComment": True or False, # Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -373,7 +375,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -389,6 +391,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -419,7 +422,7 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+  "shareable": True or False, # Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -444,7 +447,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -511,29 +514,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -557,7 +561,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -573,6 +577,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -605,7 +610,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -640,9 +645,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -678,7 +683,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -694,6 +699,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -724,7 +730,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -811,7 +817,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -878,29 +884,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -924,7 +931,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -940,6 +947,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -972,7 +980,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -1007,9 +1015,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -1045,7 +1053,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -1061,6 +1069,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -1091,7 +1100,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -1131,7 +1140,7 @@
     The object takes the form of:
 
 { # The metadata for a file.
-  "hasThumbnail": True or False, # Whether this file has a thumbnail.
+  "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
   "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -1198,29 +1207,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "copyable": True or False, # Deprecated: use capabilities/canCopy.
   "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
   "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the current user.
-    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-    "canDelete": True or False, # Whether the file can be deleted by the current user.
+  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the current user can move this file to trash.
+    "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+    "canDelete": True or False, # Whether the current user can delete this file.
     "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canRename": True or False, # Whether the current user can rename this file.
     "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
     "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the current user.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canDownload": True or False, # Whether the current user can download this file.
+    "canComment": True or False, # Whether the current user can comment on this file.
     "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
     "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-    "canEdit": True or False, # Whether the file can be edited by the current user.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canEdit": True or False, # Whether the current user can edit this file.
+    "canUntrash": True or False, # Whether the current user can restore this file from trash.
   },
   "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
   "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -1244,7 +1254,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -1260,6 +1270,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -1292,7 +1303,7 @@
   "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
     "a_key": "A String",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+  "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
   "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
     "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
     "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -1327,9 +1338,9 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+  "editable": True or False, # Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+  "canComment": True or False, # Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -1365,7 +1376,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -1381,6 +1392,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -1411,7 +1423,7 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+  "shareable": True or False, # Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -1439,7 +1451,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -1506,29 +1518,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -1552,7 +1565,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -1568,6 +1581,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -1600,7 +1614,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -1635,9 +1649,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -1673,7 +1687,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -1689,6 +1703,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -1719,7 +1734,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -1746,7 +1761,7 @@
     Allowed values
       DEFAULT - The items that the user has accessed.
       DOMAIN - Items shared to the user's domain.
-  maxResults: integer, Maximum number of files to return.
+  maxResults: integer, The maximum number of files to return per page. Partial or empty result pages are possible even before the end of the files list has been reached.
   teamDriveId: string, ID of Team Drive to search.
   includeTeamDriveItems: boolean, Whether Team Drive items should be included in results.
   corpora: string, Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'default', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'default'; all other values must be used in isolation. Prefer 'default' or 'teamDrive' to 'allTeamDrives' for efficiency.
@@ -1761,7 +1776,7 @@
     "kind": "drive#fileList", # This is always drive#fileList.
     "items": [ # The list of files. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
       { # The metadata for a file.
-        "hasThumbnail": True or False, # Whether this file has a thumbnail.
+        "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
         "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
         "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
         "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -1828,29 +1843,30 @@
           "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
           "emailAddress": "A String", # The email address of the user.
         },
-        "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+        "copyable": True or False, # Deprecated: use capabilities/canCopy.
         "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
         "markedViewedByMeDate": "A String", # Deprecated.
         "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
           "A String",
         ],
-        "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-          "canTrash": True or False, # Whether the file can be trashed by the current user.
-          "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-          "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-          "canDelete": True or False, # Whether the file can be deleted by the current user.
+        "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+          "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+          "canTrash": True or False, # Whether the current user can move this file to trash.
+          "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+          "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+          "canDelete": True or False, # Whether the current user can delete this file.
           "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-          "canRename": True or False, # Whether the file can be renamed by the current user.
+          "canRename": True or False, # Whether the current user can rename this file.
           "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+          "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
           "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-          "canDownload": True or False, # Whether the file can be downloaded by the current user.
-          "canComment": True or False, # Whether the current user can comment on the file.
+          "canDownload": True or False, # Whether the current user can download this file.
+          "canComment": True or False, # Whether the current user can comment on this file.
           "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-          "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+          "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
           "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-          "canEdit": True or False, # Whether the file can be edited by the current user.
-          "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+          "canEdit": True or False, # Whether the current user can edit this file.
+          "canUntrash": True or False, # Whether the current user can restore this file from trash.
         },
         "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
         "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -1874,7 +1890,7 @@
             "withLink": True or False, # Whether the link is required for this permission.
             "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
             "name": "A String", # The name for this permission.
-            "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+            "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
               {
                 "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
                 "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -1890,6 +1906,7 @@
                 "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
               },
             ],
+            "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
             "kind": "drive#permission", # This is always drive#permission.
             "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
             "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -1922,7 +1939,7 @@
         "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
           "a_key": "A String",
         },
-        "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+        "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
         "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
           "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
           "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -1957,9 +1974,9 @@
           "durationMillis": "A String", # The duration of the video in milliseconds.
           "height": 42, # The height of the video in pixels.
         },
-        "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+        "editable": True or False, # Deprecated: use capabilities/canEdit.
         "kind": "drive#file", # The type of file. This is always drive#file.
-        "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+        "canComment": True or False, # Deprecated: use capabilities/canComment.
         "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
         "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
         "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -1995,7 +2012,7 @@
           "withLink": True or False, # Whether the link is required for this permission.
           "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
           "name": "A String", # The name for this permission.
-          "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+          "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
             {
               "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
               "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2011,6 +2028,7 @@
               "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
             },
           ],
+          "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
           "kind": "drive#permission", # This is always drive#permission.
           "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
           "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2041,7 +2059,7 @@
         "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
           "A String",
         ],
-        "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+        "shareable": True or False, # Deprecated: use capabilities/canShare.
         "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
         "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
         "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -2080,7 +2098,7 @@
     The object takes the form of:
 
 { # The metadata for a file.
-  "hasThumbnail": True or False, # Whether this file has a thumbnail.
+  "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
   "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -2147,29 +2165,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "copyable": True or False, # Deprecated: use capabilities/canCopy.
   "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
   "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the current user.
-    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-    "canDelete": True or False, # Whether the file can be deleted by the current user.
+  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the current user can move this file to trash.
+    "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+    "canDelete": True or False, # Whether the current user can delete this file.
     "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canRename": True or False, # Whether the current user can rename this file.
     "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
     "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the current user.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canDownload": True or False, # Whether the current user can download this file.
+    "canComment": True or False, # Whether the current user can comment on this file.
     "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
     "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-    "canEdit": True or False, # Whether the file can be edited by the current user.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canEdit": True or False, # Whether the current user can edit this file.
+    "canUntrash": True or False, # Whether the current user can restore this file from trash.
   },
   "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
   "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -2193,7 +2212,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2209,6 +2228,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2241,7 +2261,7 @@
   "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
     "a_key": "A String",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+  "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
   "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
     "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
     "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -2276,9 +2296,9 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+  "editable": True or False, # Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+  "canComment": True or False, # Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -2314,7 +2334,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2330,6 +2350,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2360,7 +2381,7 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+  "shareable": True or False, # Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -2395,7 +2416,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -2462,29 +2483,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -2508,7 +2530,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2524,6 +2546,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2556,7 +2579,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -2591,9 +2614,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -2629,7 +2652,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2645,6 +2668,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2675,7 +2699,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -2697,7 +2721,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -2764,29 +2788,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -2810,7 +2835,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2826,6 +2851,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2858,7 +2884,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -2893,9 +2919,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -2931,7 +2957,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -2947,6 +2973,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -2977,7 +3004,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -2999,7 +3026,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -3066,29 +3093,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -3112,7 +3140,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -3128,6 +3156,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -3160,7 +3189,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -3195,9 +3224,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -3233,7 +3262,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -3249,6 +3278,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -3279,7 +3309,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -3301,7 +3331,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -3368,29 +3398,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -3414,7 +3445,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -3430,6 +3461,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -3462,7 +3494,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -3497,9 +3529,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -3535,7 +3567,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -3551,6 +3583,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -3581,7 +3614,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -3601,7 +3634,7 @@
     The object takes the form of:
 
 { # The metadata for a file.
-  "hasThumbnail": True or False, # Whether this file has a thumbnail.
+  "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
   "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
   "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -3668,29 +3701,30 @@
     "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
     "emailAddress": "A String", # The email address of the user.
   },
-  "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+  "copyable": True or False, # Deprecated: use capabilities/canCopy.
   "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
   "markedViewedByMeDate": "A String", # Deprecated.
   "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
     "A String",
   ],
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the current user.
-    "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-    "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-    "canDelete": True or False, # Whether the file can be deleted by the current user.
+  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+    "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+    "canTrash": True or False, # Whether the current user can move this file to trash.
+    "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+    "canDelete": True or False, # Whether the current user can delete this file.
     "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the current user.
+    "canRename": True or False, # Whether the current user can rename this file.
     "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+    "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
     "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the current user.
-    "canComment": True or False, # Whether the current user can comment on the file.
+    "canDownload": True or False, # Whether the current user can download this file.
+    "canComment": True or False, # Whether the current user can comment on this file.
     "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+    "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
     "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-    "canEdit": True or False, # Whether the file can be edited by the current user.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canEdit": True or False, # Whether the current user can edit this file.
+    "canUntrash": True or False, # Whether the current user can restore this file from trash.
   },
   "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
   "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -3714,7 +3748,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -3730,6 +3764,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -3762,7 +3797,7 @@
   "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
     "a_key": "A String",
   },
-  "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+  "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
   "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
     "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
     "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -3797,9 +3832,9 @@
     "durationMillis": "A String", # The duration of the video in milliseconds.
     "height": 42, # The height of the video in pixels.
   },
-  "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+  "editable": True or False, # Deprecated: use capabilities/canEdit.
   "kind": "drive#file", # The type of file. This is always drive#file.
-  "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+  "canComment": True or False, # Deprecated: use capabilities/canComment.
   "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
   "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -3835,7 +3870,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -3851,6 +3886,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -3881,7 +3917,7 @@
   "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
-  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+  "shareable": True or False, # Deprecated: use capabilities/canShare.
   "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
   "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
   "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
@@ -3918,7 +3954,7 @@
   An object of the form:
 
     { # The metadata for a file.
-    "hasThumbnail": True or False, # Whether this file has a thumbnail.
+    "hasThumbnail": True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
     "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
     "trashedDate": "A String", # The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the requesting user.
@@ -3985,29 +4021,30 @@
       "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
       "emailAddress": "A String", # The email address of the user.
     },
-    "copyable": True or False, # Whether the file can be copied by the current user. Deprecated: use capabilities/canCopy.
+    "copyable": True or False, # Deprecated: use capabilities/canCopy.
     "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.
     "markedViewedByMeDate": "A String", # Deprecated.
     "ownerNames": [ # Name(s) of the owner(s) of this file. Not populated for Team Drive files.
       "A String",
     ],
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the current user.
-      "canCopy": True or False, # Whether the file can be copied by the current user. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
-      "canShare": True or False, # Whether the file's sharing settings can be modified by the current user.
-      "canDelete": True or False, # Whether the file can be deleted by the current user.
+    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
+      "canTrash": True or False, # Whether the current user can move this file to trash.
+      "canCopy": True or False, # Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
+      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
+      "canDelete": True or False, # Whether the current user can delete this file.
       "canMoveTeamDriveItem": True or False, # Whether the current user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the current user.
+      "canRename": True or False, # Whether the current user can rename this file.
       "canListChildren": True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
+      "canChangeRestrictedDownload": True or False, # Whether the current user can change the restricted download label of this file.
       "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on the file.
+      "canDownload": True or False, # Whether the current user can download this file.
+      "canComment": True or False, # Whether the current user can comment on this file.
       "canRemoveChildren": True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the current user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
+      "canReadTeamDrive": True or False, # Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.
       "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
-      "canEdit": True or False, # Whether the file can be edited by the current user.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canEdit": True or False, # Whether the current user can edit this file.
+      "canUntrash": True or False, # Whether the current user can restore this file from trash.
     },
     "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
     "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
@@ -4031,7 +4068,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -4047,6 +4084,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -4079,7 +4117,7 @@
     "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
       "a_key": "A String",
     },
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file. Deprecated: use capabilities/canReadRevisions.
+    "canReadRevisions": True or False, # Deprecated: use capabilities/canReadRevisions.
     "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
       "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
       "exposureTime": 3.14, # The length of the exposure, in seconds.
@@ -4114,9 +4152,9 @@
       "durationMillis": "A String", # The duration of the video in milliseconds.
       "height": 42, # The height of the video in pixels.
     },
-    "editable": True or False, # Whether the file can be edited by the current user. Deprecated: use capabilities/canEdit.
+    "editable": True or False, # Deprecated: use capabilities/canEdit.
     "kind": "drive#file", # The type of file. This is always drive#file.
-    "canComment": True or False, # Whether the current user can comment on the file. Deprecated: use capabilities/canComment.
+    "canComment": True or False, # Deprecated: use capabilities/canComment.
     "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
     "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
@@ -4152,7 +4190,7 @@
       "withLink": True or False, # Whether the link is required for this permission.
       "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
       "name": "A String", # The name for this permission.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+      "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
         {
           "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
           "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -4168,6 +4206,7 @@
           "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
         },
       ],
+      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
       "kind": "drive#permission", # This is always drive#permission.
       "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -4198,7 +4237,7 @@
     "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
-    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user. Deprecated: use capabilities/canShare.
+    "shareable": True or False, # Deprecated: use capabilities/canShare.
     "originalFilename": "A String", # The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.
     "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
     "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
diff --git a/docs/dyn/drive_v2.permissions.html b/docs/dyn/drive_v2.permissions.html
index 74709ef..a72ca7c 100644
--- a/docs/dyn/drive_v2.permissions.html
+++ b/docs/dyn/drive_v2.permissions.html
@@ -126,7 +126,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -142,6 +142,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -200,7 +201,7 @@
   "withLink": True or False, # Whether the link is required for this permission.
   "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
   "name": "A String", # The name for this permission.
-  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+  "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
     {
       "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
       "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -216,6 +217,7 @@
       "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
     },
   ],
+  "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
   "kind": "drive#permission", # This is always drive#permission.
   "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -255,7 +257,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -271,6 +273,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -320,7 +323,7 @@
         "withLink": True or False, # Whether the link is required for this permission.
         "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
         "name": "A String", # The name for this permission.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+        "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
           {
             "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
             "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -336,6 +339,7 @@
             "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
           },
         ],
+        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
         "kind": "drive#permission", # This is always drive#permission.
         "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -398,7 +402,7 @@
   "withLink": True or False, # Whether the link is required for this permission.
   "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
   "name": "A String", # The name for this permission.
-  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+  "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
     {
       "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
       "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -414,6 +418,7 @@
       "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
     },
   ],
+  "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
   "kind": "drive#permission", # This is always drive#permission.
   "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -453,7 +458,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -469,6 +474,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -512,7 +518,7 @@
   "withLink": True or False, # Whether the link is required for this permission.
   "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
   "name": "A String", # The name for this permission.
-  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+  "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
     {
       "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
       "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -528,6 +534,7 @@
       "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
     },
   ],
+  "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
   "kind": "drive#permission", # This is always drive#permission.
   "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
@@ -567,7 +574,7 @@
     "withLink": True or False, # Whether the link is required for this permission.
     "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
     "name": "A String", # The name for this permission.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
+    "teamDrivePermissionDetails": [ # Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
       {
         "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
         "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
@@ -583,6 +590,7 @@
         "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
       },
     ],
+    "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
     "kind": "drive#permission", # This is always drive#permission.
     "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified unless the permission type is anyone, in which case both id and value are ignored.
diff --git a/docs/dyn/drive_v2.teamdrives.html b/docs/dyn/drive_v2.teamdrives.html
index 4d3475a..0e5fd5a 100644
--- a/docs/dyn/drive_v2.teamdrives.html
+++ b/docs/dyn/drive_v2.teamdrives.html
@@ -114,23 +114,33 @@
 
     { # Representation of a Team Drive.
     "kind": "drive#teamDrive", # This is always drive#teamDrive
-    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+    "name": "A String", # The name of this Team Drive.
+    "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+    "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
     "capabilities": { # Capabilities the current user has on this Team Drive.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+      "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
       "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
       "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
       "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canDownload": True or False, # Whether the current user can download files in this Team Drive.
       "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+      "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
       "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
       "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+      "canEdit": True or False, # Whether the current user can edit files in this Team Drive
     },
-    "name": "A String", # The name of this Team Drive.
+    "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+      "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+      "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+      "id": "A String", # The ID of an image file in Drive to use for the background image.
+      "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+    },
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
   }</pre>
 </div>
 
@@ -145,23 +155,33 @@
 
 { # Representation of a Team Drive.
   "kind": "drive#teamDrive", # This is always drive#teamDrive
-  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+  "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+  "name": "A String", # The name of this Team Drive.
+  "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+  "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
   "capabilities": { # Capabilities the current user has on this Team Drive.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+    "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+    "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+    "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
     "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
     "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
     "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+    "canDownload": True or False, # Whether the current user can download files in this Team Drive.
     "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+    "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+    "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+    "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
     "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
     "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    "canEdit": True or False, # Whether the current user can edit files in this Team Drive
   },
-  "name": "A String", # The name of this Team Drive.
+  "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+    "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+    "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+    "id": "A String", # The ID of an image file in Drive to use for the background image.
+    "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+  },
+  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
 }
 
 
@@ -170,23 +190,33 @@
 
     { # Representation of a Team Drive.
     "kind": "drive#teamDrive", # This is always drive#teamDrive
-    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+    "name": "A String", # The name of this Team Drive.
+    "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+    "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
     "capabilities": { # Capabilities the current user has on this Team Drive.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+      "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
       "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
       "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
       "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canDownload": True or False, # Whether the current user can download files in this Team Drive.
       "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+      "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
       "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
       "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+      "canEdit": True or False, # Whether the current user can edit files in this Team Drive
     },
-    "name": "A String", # The name of this Team Drive.
+    "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+      "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+      "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+      "id": "A String", # The ID of an image file in Drive to use for the background image.
+      "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+    },
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
   }</pre>
 </div>
 
@@ -206,23 +236,33 @@
     "items": [ # The list of Team Drives.
       { # Representation of a Team Drive.
         "kind": "drive#teamDrive", # This is always drive#teamDrive
-        "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+        "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+        "name": "A String", # The name of this Team Drive.
+        "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+        "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
         "capabilities": { # Capabilities the current user has on this Team Drive.
-          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-          "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-          "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+          "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+          "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+          "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
           "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
           "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
           "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-          "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+          "canDownload": True or False, # Whether the current user can download files in this Team Drive.
           "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-          "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-          "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+          "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+          "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+          "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
           "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
           "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-          "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+          "canEdit": True or False, # Whether the current user can edit files in this Team Drive
         },
-        "name": "A String", # The name of this Team Drive.
+        "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+          "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+          "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+          "id": "A String", # The ID of an image file in Drive to use for the background image.
+          "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+        },
+        "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
       },
     ],
     "kind": "drive#teamDriveList", # This is always drive#teamDriveList
@@ -254,23 +294,33 @@
 
 { # Representation of a Team Drive.
   "kind": "drive#teamDrive", # This is always drive#teamDrive
-  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+  "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+  "name": "A String", # The name of this Team Drive.
+  "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+  "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
   "capabilities": { # Capabilities the current user has on this Team Drive.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+    "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+    "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+    "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
     "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
     "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
     "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+    "canDownload": True or False, # Whether the current user can download files in this Team Drive.
     "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+    "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+    "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+    "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
     "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
     "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+    "canEdit": True or False, # Whether the current user can edit files in this Team Drive
   },
-  "name": "A String", # The name of this Team Drive.
+  "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+    "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+    "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+    "id": "A String", # The ID of an image file in Drive to use for the background image.
+    "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+  },
+  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
 }
 
 
@@ -279,23 +329,33 @@
 
     { # Representation of a Team Drive.
     "kind": "drive#teamDrive", # This is always drive#teamDrive
-    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
+    "backgroundImageLink": "A String", # A short-lived link to this Team Drive's background image.
+    "name": "A String", # The name of this Team Drive.
+    "themeId": "A String", # The ID of the theme from which the background image and color will be set. The set of possible teamDriveThemes can be retrieved from a drive.about.get response. When not specified on a drive.teamdrives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.
+    "colorRgb": "A String", # The color of this Team Drive as an RGB hex string. It can only be set on a drive.teamdrives.update request that does not set themeId.
     "capabilities": { # Capabilities the current user has on this Team Drive.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
+      "canReadRevisions": True or False, # Whether the current user can read the revisions resource of files in this Team Drive.
+      "canCopy": True or False, # Whether the current user can copy files in this Team Drive.
+      "canRename": True or False, # Whether the current user can rename files or folders in this Team Drive.
       "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
       "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
       "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
+      "canDownload": True or False, # Whether the current user can download files in this Team Drive.
       "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
+      "canChangeTeamDriveBackground": True or False, # Whether the current user can change the background of this Team Drive.
+      "canDeleteTeamDrive": True or False, # Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.
+      "canRenameTeamDrive": True or False, # Whether the current user can rename this Team Drive.
       "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
       "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
+      "canEdit": True or False, # Whether the current user can edit files in this Team Drive
     },
-    "name": "A String", # The name of this Team Drive.
+    "backgroundImageFile": { # An image file and cropping parameters from which a background image for this Team Drive is set. This is a write only field; it can only be set on drive.teamdrives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.
+      "width": 3.14, # The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.
+      "yCoordinate": 3.14, # The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.
+      "id": "A String", # The ID of an image file in Drive to use for the background image.
+      "xCoordinate": 3.14, # The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.
+    },
+    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
   }</pre>
 </div>
 
diff --git a/docs/dyn/drive_v3.changes.html b/docs/dyn/drive_v3.changes.html
index 7ab2f43..0dcb58f 100644
--- a/docs/dyn/drive_v3.changes.html
+++ b/docs/dyn/drive_v3.changes.html
@@ -75,25 +75,23 @@
 <h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.changes.html">changes</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#getStartPageToken">getStartPageToken(supportsTeamDrives=None, teamDriveId=None)</a></code></p>
+  <code><a href="#getStartPageToken">getStartPageToken()</a></code></p>
 <p class="firstline">Gets the starting pageToken for listing future changes.</p>
 <p class="toc_element">
-  <code><a href="#list">list(pageToken, pageSize=None, includeTeamDriveItems=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, teamDriveId=None, includeCorpusRemovals=None, includeRemoved=None)</a></code></p>
-<p class="firstline">Lists the changes for a user or Team Drive.</p>
+  <code><a href="#list">list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)</a></code></p>
+<p class="firstline">Lists changes for a user.</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>
 <p class="toc_element">
-  <code><a href="#watch">watch(pageToken, body, pageSize=None, includeTeamDriveItems=None, includeRemoved=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, includeCorpusRemovals=None, teamDriveId=None)</a></code></p>
+  <code><a href="#watch">watch(pageToken, body, pageSize=None, restrictToMyDrive=None, spaces=None, includeRemoved=None)</a></code></p>
 <p class="firstline">Subscribes to changes for a user.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="getStartPageToken">getStartPageToken(supportsTeamDrives=None, teamDriveId=None)</code>
+    <code class="details" id="getStartPageToken">getStartPageToken()</code>
   <pre>Gets the starting pageToken for listing future changes.
 
 Args:
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
-  teamDriveId: string, The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.
 
 Returns:
   An object of the form:
@@ -105,61 +103,39 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(pageToken, pageSize=None, includeTeamDriveItems=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, teamDriveId=None, includeCorpusRemovals=None, includeRemoved=None)</code>
-  <pre>Lists the changes for a user or Team Drive.
+    <code class="details" id="list">list(pageToken, restrictToMyDrive=None, spaces=None, pageSize=None, includeRemoved=None)</code>
+  <pre>Lists changes for a user.
 
 Args:
   pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method. (required)
-  pageSize: integer, The maximum number of changes to return per page.
-  includeTeamDriveItems: boolean, Whether Team Drive files or changes should be included in results.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
   spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  teamDriveId: string, The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.
-  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
-  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
+  pageSize: integer, The maximum number of changes to return per page.
+  includeRemoved: boolean, Whether to include changes indicating that items have left the view of the changes list, for example by deletion or lost access.
 
 Returns:
   An object of the form:
 
     { # A list of changes for a user.
-    "nextPageToken": "A String", # The page token for the next page of changes. This will be absent if the end of the changes list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "nextPageToken": "A String", # The page token for the next page of changes. This will be absent if the end of the current changes list has been reached.
     "kind": "drive#changeList", # Identifies what kind of resource this is. Value: the fixed string "drive#changeList".
-    "changes": [ # The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
-      { # A change to a file or Team Drive.
-        "teamDrive": { # Representation of a Team Drive. # The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been removed.
-          "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-          "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-          "capabilities": { # Capabilities the current user has on this Team Drive.
-            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-            "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-            "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-            "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-            "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-            "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-            "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-            "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-            "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-            "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-            "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-            "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-            "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-          },
-          "name": "A String", # The name of this Team Drive.
-        },
+    "changes": [ # The page of changes.
+      { # A change to a file.
         "kind": "drive#change", # Identifies what kind of resource this is. Value: the fixed string "drive#change".
-        "file": { # The metadata for a file. # The updated state of the file. Present if the type is file and the file has not been removed from this list of changes.
+        "removed": True or False, # Whether the file has been removed from the view of the changes list, for example by deletion or lost access.
+        "time": "A String", # The time of this change (RFC 3339 date-time).
+        "file": { # The metadata for a file. # The updated state of the file. Present if the file has not been removed.
           "hasThumbnail": True or False, # Whether this file has a thumbnail.
           "mimeType": "A String", # The MIME type of the file.
               # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
               # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
           "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
           "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-          "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+          "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
           "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
           "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-          "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-          "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+          "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+          "ownedByMe": True or False, # Whether the user owns the file.
           "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
           "id": "A String", # The ID of the file.
           "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -190,25 +166,13 @@
               # Entries with null values are cleared in update and copy requests.
             "a_key": "A String",
           },
-          "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-            "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-            "canTrash": True or False, # Whether the file can be trashed by the user.
-            "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+          "capabilities": { # Capabilities the current user has on the file.
+            "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+            "canCopy": True or False, # Whether the user can copy the file.
             "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-            "canDelete": True or False, # Whether the file can be deleted by the user.
-            "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-            "canRename": True or False, # Whether the file can be renamed by the user.
-            "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-            "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-            "canDownload": True or False, # Whether the file can be downloaded by the user.
-            "canComment": True or False, # Whether the user can comment on the file.
-            "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-            "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-            "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
             "canEdit": True or False, # Whether the user can edit the file's content.
-            "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+            "canComment": True or False, # Whether the user can comment on the file.
           },
-          "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
           "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
           "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
           "parents": [ # The IDs of the parent folders which contain the file.
@@ -216,40 +180,21 @@
             "A String",
           ],
           "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-          "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-          "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+          "shared": True or False, # Whether the file has been shared.
+          "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
             { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
               "domain": "A String", # The domain to which this permission refers.
               "displayName": "A String", # A displayable name for users, groups or domains.
-              "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-                {
-                  "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-                  "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                      # - organizer
-                      # - writer
-                      # - commenter
-                      # - reader
-                  "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                      # - file
-                      # -
-                      # - member
-                  "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-                },
-              ],
               "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
               "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
               "emailAddress": "A String", # The email address of the user or group to which this permission refers.
               "photoLink": "A String", # A link to the user's profile photo, if available.
-              "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-                  # - organizer
+              "role": "A String", # The role granted by this permission. Valid values are:
                   # - owner
                   # - writer
                   # - commenter
                   # - reader
-              "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-                  # - They can only be set on user and group permissions
-                  # - The time must be in the future
-                  # - The time cannot be more than a year in the future
+              "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
               "type": "A String", # The type of the grantee. Valid values are:
                   # - user
                   # - group
@@ -267,7 +212,7 @@
               # Note that setting modifiedTime will also update modifiedByMeTime for the user.
           "viewedByMe": True or False, # Whether the file has been viewed by this user.
           "modifiedByMe": True or False, # Whether the file has been modified by this user.
-          "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+          "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
             { # Information about a Drive user.
               "me": True or False, # Whether this user is the requesting user.
               "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -279,7 +224,6 @@
           ],
           "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
           "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-          "teamDriveId": "A String", # ID of the Team Drive the file resides in.
           "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
               # Entries with null values are cleared in update and copy requests.
             "a_key": "A String",
@@ -314,16 +258,8 @@
             "cameraModel": "A String", # The model of the camera used to create the photo.
           },
           "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-          "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+          "name": "A String", # The name of the file. This is not necessarily unique within a folder.
           "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-          "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-            "me": True or False, # Whether this user is the requesting user.
-            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-            "displayName": "A String", # A plain text displayable name for this user.
-            "permissionId": "A String", # The user's ID as visible in Permission resources.
-            "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-            "photoLink": "A String", # A link to the user's profile photo, if available.
-          },
           "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
             "A String",
           ],
@@ -336,14 +272,9 @@
             },
           },
           "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-          "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
           "starred": True or False, # Whether the user has starred the file.
           "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
         },
-        "time": "A String", # The time of this change (RFC 3339 date-time).
-        "teamDriveId": "A String", # The ID of the Team Drive associated with this change.
-        "removed": True or False, # Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.
-        "type": "A String", # The type of the change. Possible values are file and teamDrive.
         "fileId": "A String", # The ID of the file which has changed.
       },
     ],
@@ -366,7 +297,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(pageToken, body, pageSize=None, includeTeamDriveItems=None, includeRemoved=None, supportsTeamDrives=None, restrictToMyDrive=None, spaces=None, includeCorpusRemovals=None, teamDriveId=None)</code>
+    <code class="details" id="watch">watch(pageToken, body, pageSize=None, restrictToMyDrive=None, spaces=None, includeRemoved=None)</code>
   <pre>Subscribes to changes for a user.
 
 Args:
@@ -390,13 +321,9 @@
   }
 
   pageSize: integer, The maximum number of changes to return per page.
-  includeTeamDriveItems: boolean, Whether Team Drive files or changes should be included in results.
-  includeRemoved: boolean, Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   restrictToMyDrive: boolean, Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.
   spaces: string, A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  includeCorpusRemovals: boolean, Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.
-  teamDriveId: string, The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.
+  includeRemoved: boolean, Whether to include changes indicating that items have left the view of the changes list, for example by deletion or lost access.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/drive_v3.comments.html b/docs/dyn/drive_v3.comments.html
index 9564dad..a39c587 100644
--- a/docs/dyn/drive_v3.comments.html
+++ b/docs/dyn/drive_v3.comments.html
@@ -283,9 +283,9 @@
   An object of the form:
 
     { # A list of comments on a file.
-    "nextPageToken": "A String", # The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "nextPageToken": "A String", # The page token for the next page of comments. This will be absent if the end of the comments list has been reached.
     "kind": "drive#commentList", # Identifies what kind of resource this is. Value: the fixed string "drive#commentList".
-    "comments": [ # The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+    "comments": [ # The page of comments.
       { # A comment on a file.
           "resolved": True or False, # Whether the comment has been resolved by one of its replies.
           "kind": "drive#comment", # Identifies what kind of resource this is. Value: the fixed string "drive#comment".
diff --git a/docs/dyn/drive_v3.files.html b/docs/dyn/drive_v3.files.html
index 8cd838f..16cb74e 100644
--- a/docs/dyn/drive_v3.files.html
+++ b/docs/dyn/drive_v3.files.html
@@ -75,14 +75,14 @@
 <h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.files.html">files</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#copy">copy(fileId, body, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</a></code></p>
+  <code><a href="#copy">copy(fileId, body, keepRevisionForever=None, ignoreDefaultVisibility=None, ocrLanguage=None)</a></code></p>
 <p class="firstline">Creates a copy of a file and applies any requested updates with patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</a></code></p>
+  <code><a href="#create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, ignoreDefaultVisibility=None, ocrLanguage=None)</a></code></p>
 <p class="firstline">Creates a new file.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(fileId, supportsTeamDrives=None)</a></code></p>
-<p class="firstline">Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.</p>
+  <code><a href="#delete">delete(fileId)</a></code></p>
+<p class="firstline">Permanently deletes a file owned by the user without moving it to the trash. If the target is a folder, all descendants owned by the user are also deleted.</p>
 <p class="toc_element">
   <code><a href="#emptyTrash">emptyTrash()</a></code></p>
 <p class="firstline">Permanently deletes all of the user's trashed files.</p>
@@ -96,29 +96,29 @@
   <code><a href="#generateIds">generateIds(count=None, space=None)</a></code></p>
 <p class="firstline">Generates a set of file IDs which can be provided in create requests.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#get">get(fileId, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Gets a file's metadata or content by ID.</p>
 <p class="toc_element">
-  <code><a href="#get_media">get_media(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#get_media">get_media(fileId, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Gets a file's metadata or content by ID.</p>
 <p class="toc_element">
-  <code><a href="#list">list(orderBy=None, q=None, includeTeamDriveItems=None, pageSize=None, pageToken=None, corpora=None, supportsTeamDrives=None, spaces=None, teamDriveId=None, corpus=None)</a></code></p>
+  <code><a href="#list">list(orderBy=None, q=None, pageSize=None, pageToken=None, spaces=None, corpus=None)</a></code></p>
 <p class="firstline">Lists or searches files.</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>
 <p class="toc_element">
-  <code><a href="#update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None)</a></code></p>
+  <code><a href="#update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, ocrLanguage=None)</a></code></p>
 <p class="firstline">Updates a file's metadata and/or content with patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#watch">watch(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#watch">watch(fileId, body, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Subscribes to changes to a file</p>
 <p class="toc_element">
-  <code><a href="#watch_media">watch_media(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</a></code></p>
+  <code><a href="#watch_media">watch_media(fileId, body, acknowledgeAbuse=None)</a></code></p>
 <p class="firstline">Subscribes to changes to a file</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="copy">copy(fileId, body, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</code>
+    <code class="details" id="copy">copy(fileId, body, keepRevisionForever=None, ignoreDefaultVisibility=None, ocrLanguage=None)</code>
   <pre>Creates a copy of a file and applies any requested updates with patch semantics.
 
 Args:
@@ -133,11 +133,11 @@
       # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
   "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-  "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+  "ownedByMe": True or False, # Whether the user owns the file.
   "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -168,25 +168,13 @@
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
   },
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the user.
-    "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+  "capabilities": { # Capabilities the current user has on the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canCopy": True or False, # Whether the user can copy the file.
     "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-    "canDelete": True or False, # Whether the file can be deleted by the user.
-    "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the user.
-    "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the user.
-    "canComment": True or False, # Whether the user can comment on the file.
-    "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-    "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
     "canEdit": True or False, # Whether the user can edit the file's content.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canComment": True or False, # Whether the user can comment on the file.
   },
-  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
   "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
   "parents": [ # The IDs of the parent folders which contain the file.
@@ -194,40 +182,21 @@
     "A String",
   ],
   "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+  "shared": True or False, # Whether the file has been shared.
+  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
       "domain": "A String", # The domain to which this permission refers.
       "displayName": "A String", # A displayable name for users, groups or domains.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-        {
-          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-              # - organizer
-              # - writer
-              # - commenter
-              # - reader
-          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-              # - file
-              # -
-              # - member
-          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-        },
-      ],
       "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
       "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
       "emailAddress": "A String", # The email address of the user or group to which this permission refers.
       "photoLink": "A String", # A link to the user's profile photo, if available.
-      "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-          # - organizer
+      "role": "A String", # The role granted by this permission. Valid values are:
           # - owner
           # - writer
           # - commenter
           # - reader
-      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-          # - They can only be set on user and group permissions
-          # - The time must be in the future
-          # - The time cannot be more than a year in the future
+      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
       "type": "A String", # The type of the grantee. Valid values are:
           # - user
           # - group
@@ -245,7 +214,7 @@
       # Note that setting modifiedTime will also update modifiedByMeTime for the user.
   "viewedByMe": True or False, # Whether the file has been viewed by this user.
   "modifiedByMe": True or False, # Whether the file has been modified by this user.
-  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
     { # Information about a Drive user.
       "me": True or False, # Whether this user is the requesting user.
       "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -257,7 +226,6 @@
   ],
   "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
   "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
@@ -292,16 +260,8 @@
     "cameraModel": "A String", # The model of the camera used to create the photo.
   },
   "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-  "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+  "name": "A String", # The name of the file. This is not necessarily unique within a folder.
   "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-    "me": True or False, # Whether this user is the requesting user.
-    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-    "displayName": "A String", # A plain text displayable name for this user.
-    "permissionId": "A String", # The user's ID as visible in Permission resources.
-    "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-    "photoLink": "A String", # A link to the user's profile photo, if available.
-  },
   "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
@@ -314,15 +274,13 @@
     },
   },
   "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "starred": True or False, # Whether the user has starred the file.
   "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
 }
 
   keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
-  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
   ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
+  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
 
 Returns:
   An object of the form:
@@ -334,11 +292,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+    "ownedByMe": True or False, # Whether the user owns the file.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -369,25 +327,13 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the user.
-      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "capabilities": { # Capabilities the current user has on the file.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+      "canCopy": True or False, # Whether the user can copy the file.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canDelete": True or False, # Whether the file can be deleted by the user.
-      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the user.
-      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the user.
-      "canComment": True or False, # Whether the user can comment on the file.
-      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
       "canEdit": True or False, # Whether the user can edit the file's content.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canComment": True or False, # Whether the user can comment on the file.
     },
-    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -395,40 +341,21 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+    "shared": True or False, # Whether the file has been shared.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-          {
-            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                # - organizer
-                # - writer
-                # - commenter
-                # - reader
-            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                # - file
-                # -
-                # - member
-            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-          },
-        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-            # - organizer
+        "role": "A String", # The role granted by this permission. Valid values are:
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-            # - They can only be set on user and group permissions
-            # - The time must be in the future
-            # - The time cannot be more than a year in the future
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -446,7 +373,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -458,7 +385,6 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -493,16 +419,8 @@
       "cameraModel": "A String", # The model of the camera used to create the photo.
     },
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-    "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+    "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-      "me": True or False, # Whether this user is the requesting user.
-      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-      "displayName": "A String", # A plain text displayable name for this user.
-      "permissionId": "A String", # The user's ID as visible in Permission resources.
-      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-      "photoLink": "A String", # A link to the user's profile photo, if available.
-    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -515,14 +433,13 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None)</code>
+    <code class="details" id="create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, ignoreDefaultVisibility=None, ocrLanguage=None)</code>
   <pre>Creates a new file.
 
 Args:
@@ -536,11 +453,11 @@
       # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
   "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-  "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+  "ownedByMe": True or False, # Whether the user owns the file.
   "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -571,25 +488,13 @@
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
   },
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the user.
-    "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+  "capabilities": { # Capabilities the current user has on the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canCopy": True or False, # Whether the user can copy the file.
     "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-    "canDelete": True or False, # Whether the file can be deleted by the user.
-    "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the user.
-    "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the user.
-    "canComment": True or False, # Whether the user can comment on the file.
-    "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-    "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
     "canEdit": True or False, # Whether the user can edit the file's content.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canComment": True or False, # Whether the user can comment on the file.
   },
-  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
   "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
   "parents": [ # The IDs of the parent folders which contain the file.
@@ -597,40 +502,21 @@
     "A String",
   ],
   "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+  "shared": True or False, # Whether the file has been shared.
+  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
       "domain": "A String", # The domain to which this permission refers.
       "displayName": "A String", # A displayable name for users, groups or domains.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-        {
-          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-              # - organizer
-              # - writer
-              # - commenter
-              # - reader
-          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-              # - file
-              # -
-              # - member
-          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-        },
-      ],
       "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
       "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
       "emailAddress": "A String", # The email address of the user or group to which this permission refers.
       "photoLink": "A String", # A link to the user's profile photo, if available.
-      "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-          # - organizer
+      "role": "A String", # The role granted by this permission. Valid values are:
           # - owner
           # - writer
           # - commenter
           # - reader
-      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-          # - They can only be set on user and group permissions
-          # - The time must be in the future
-          # - The time cannot be more than a year in the future
+      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
       "type": "A String", # The type of the grantee. Valid values are:
           # - user
           # - group
@@ -648,7 +534,7 @@
       # Note that setting modifiedTime will also update modifiedByMeTime for the user.
   "viewedByMe": True or False, # Whether the file has been viewed by this user.
   "modifiedByMe": True or False, # Whether the file has been modified by this user.
-  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
     { # Information about a Drive user.
       "me": True or False, # Whether this user is the requesting user.
       "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -660,7 +546,6 @@
   ],
   "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
   "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
@@ -695,16 +580,8 @@
     "cameraModel": "A String", # The model of the camera used to create the photo.
   },
   "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-  "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+  "name": "A String", # The name of the file. This is not necessarily unique within a folder.
   "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-    "me": True or False, # Whether this user is the requesting user.
-    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-    "displayName": "A String", # A plain text displayable name for this user.
-    "permissionId": "A String", # The user's ID as visible in Permission resources.
-    "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-    "photoLink": "A String", # A link to the user's profile photo, if available.
-  },
   "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
@@ -717,7 +594,6 @@
     },
   },
   "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "starred": True or False, # Whether the user has starred the file.
   "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
 }
@@ -726,9 +602,8 @@
   keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
   useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
-  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
   ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
+  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
 
 Returns:
   An object of the form:
@@ -740,11 +615,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+    "ownedByMe": True or False, # Whether the user owns the file.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -775,25 +650,13 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the user.
-      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "capabilities": { # Capabilities the current user has on the file.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+      "canCopy": True or False, # Whether the user can copy the file.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canDelete": True or False, # Whether the file can be deleted by the user.
-      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the user.
-      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the user.
-      "canComment": True or False, # Whether the user can comment on the file.
-      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
       "canEdit": True or False, # Whether the user can edit the file's content.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canComment": True or False, # Whether the user can comment on the file.
     },
-    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -801,40 +664,21 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+    "shared": True or False, # Whether the file has been shared.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-          {
-            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                # - organizer
-                # - writer
-                # - commenter
-                # - reader
-            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                # - file
-                # -
-                # - member
-            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-          },
-        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-            # - organizer
+        "role": "A String", # The role granted by this permission. Valid values are:
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-            # - They can only be set on user and group permissions
-            # - The time must be in the future
-            # - The time cannot be more than a year in the future
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -852,7 +696,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -864,7 +708,6 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -899,16 +742,8 @@
       "cameraModel": "A String", # The model of the camera used to create the photo.
     },
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-    "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+    "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-      "me": True or False, # Whether this user is the requesting user.
-      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-      "displayName": "A String", # A plain text displayable name for this user.
-      "permissionId": "A String", # The user's ID as visible in Permission resources.
-      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-      "photoLink": "A String", # A link to the user's profile photo, if available.
-    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -921,19 +756,17 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(fileId, supportsTeamDrives=None)</code>
-  <pre>Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.
+    <code class="details" id="delete">delete(fileId)</code>
+  <pre>Permanently deletes a file owned by the user without moving it to the trash. If the target is a folder, all descendants owned by the user are also deleted.
 
 Args:
   fileId: string, The ID of the file. (required)
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 </pre>
 </div>
 
@@ -986,12 +819,11 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
+    <code class="details" id="get">get(fileId, acknowledgeAbuse=None)</code>
   <pre>Gets a file's metadata or content by ID.
 
 Args:
   fileId: string, The ID of the file. (required)
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
@@ -1004,11 +836,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+    "ownedByMe": True or False, # Whether the user owns the file.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1039,25 +871,13 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the user.
-      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "capabilities": { # Capabilities the current user has on the file.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+      "canCopy": True or False, # Whether the user can copy the file.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canDelete": True or False, # Whether the file can be deleted by the user.
-      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the user.
-      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the user.
-      "canComment": True or False, # Whether the user can comment on the file.
-      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
       "canEdit": True or False, # Whether the user can edit the file's content.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canComment": True or False, # Whether the user can comment on the file.
     },
-    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -1065,40 +885,21 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+    "shared": True or False, # Whether the file has been shared.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-          {
-            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                # - organizer
-                # - writer
-                # - commenter
-                # - reader
-            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                # - file
-                # -
-                # - member
-            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-          },
-        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-            # - organizer
+        "role": "A String", # The role granted by this permission. Valid values are:
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-            # - They can only be set on user and group permissions
-            # - The time must be in the future
-            # - The time cannot be more than a year in the future
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -1116,7 +917,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1128,7 +929,6 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -1163,16 +963,8 @@
       "cameraModel": "A String", # The model of the camera used to create the photo.
     },
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-    "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+    "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-      "me": True or False, # Whether this user is the requesting user.
-      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-      "displayName": "A String", # A plain text displayable name for this user.
-      "permissionId": "A String", # The user's ID as visible in Permission resources.
-      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-      "photoLink": "A String", # A link to the user's profile photo, if available.
-    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -1185,19 +977,17 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get_media">get_media(fileId, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
+    <code class="details" id="get_media">get_media(fileId, acknowledgeAbuse=None)</code>
   <pre>Gets a file's metadata or content by ID.
 
 Args:
   fileId: string, The ID of the file. (required)
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
@@ -1207,20 +997,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(orderBy=None, q=None, includeTeamDriveItems=None, pageSize=None, pageToken=None, corpora=None, supportsTeamDrives=None, spaces=None, teamDriveId=None, corpus=None)</code>
+    <code class="details" id="list">list(orderBy=None, q=None, pageSize=None, pageToken=None, spaces=None, corpus=None)</code>
   <pre>Lists or searches files.
 
 Args:
   orderBy: string, A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.
   q: string, A query for filtering the file results. See the "Search for Files" guide for supported syntax.
-  includeTeamDriveItems: boolean, Whether Team Drive items should be included in results.
   pageSize: integer, The maximum number of files to return per page.
   pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
-  corpora: string, Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'user'; all other values must be used in isolation. Prefer 'user' or 'teamDrive' to 'allTeamDrives' for efficiency.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   spaces: string, A comma-separated list of spaces to query within the corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
-  teamDriveId: string, ID of Team Drive to search.
-  corpus: string, The source of files to list. Deprecated: use 'corpora' instead.
+  corpus: string, The source of files to list.
     Allowed values
       domain - Files shared to the user's domain.
       user - Files owned by or shared to the user.
@@ -1229,7 +1015,7 @@
   An object of the form:
 
     { # A list of files.
-    "files": [ # The list of files. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+    "files": [ # The page of files.
       { # The metadata for a file.
         "hasThumbnail": True or False, # Whether this file has a thumbnail.
         "mimeType": "A String", # The MIME type of the file.
@@ -1237,11 +1023,11 @@
             # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
         "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
         "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-        "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+        "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
         "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
         "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-        "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-        "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+        "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+        "ownedByMe": True or False, # Whether the user owns the file.
         "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
         "id": "A String", # The ID of the file.
         "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1272,25 +1058,13 @@
             # Entries with null values are cleared in update and copy requests.
           "a_key": "A String",
         },
-        "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-          "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-          "canTrash": True or False, # Whether the file can be trashed by the user.
-          "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+        "capabilities": { # Capabilities the current user has on the file.
+          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+          "canCopy": True or False, # Whether the user can copy the file.
           "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-          "canDelete": True or False, # Whether the file can be deleted by the user.
-          "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-          "canRename": True or False, # Whether the file can be renamed by the user.
-          "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-          "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-          "canDownload": True or False, # Whether the file can be downloaded by the user.
-          "canComment": True or False, # Whether the user can comment on the file.
-          "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-          "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-          "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
           "canEdit": True or False, # Whether the user can edit the file's content.
-          "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+          "canComment": True or False, # Whether the user can comment on the file.
         },
-        "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
         "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
         "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
         "parents": [ # The IDs of the parent folders which contain the file.
@@ -1298,40 +1072,21 @@
           "A String",
         ],
         "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-        "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-        "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+        "shared": True or False, # Whether the file has been shared.
+        "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
           { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
             "domain": "A String", # The domain to which this permission refers.
             "displayName": "A String", # A displayable name for users, groups or domains.
-            "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-              {
-                "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-                "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                    # - organizer
-                    # - writer
-                    # - commenter
-                    # - reader
-                "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                    # - file
-                    # -
-                    # - member
-                "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-              },
-            ],
             "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
             "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
             "emailAddress": "A String", # The email address of the user or group to which this permission refers.
             "photoLink": "A String", # A link to the user's profile photo, if available.
-            "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-                # - organizer
+            "role": "A String", # The role granted by this permission. Valid values are:
                 # - owner
                 # - writer
                 # - commenter
                 # - reader
-            "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-                # - They can only be set on user and group permissions
-                # - The time must be in the future
-                # - The time cannot be more than a year in the future
+            "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
             "type": "A String", # The type of the grantee. Valid values are:
                 # - user
                 # - group
@@ -1349,7 +1104,7 @@
             # Note that setting modifiedTime will also update modifiedByMeTime for the user.
         "viewedByMe": True or False, # Whether the file has been viewed by this user.
         "modifiedByMe": True or False, # Whether the file has been modified by this user.
-        "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+        "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
           { # Information about a Drive user.
             "me": True or False, # Whether this user is the requesting user.
             "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1361,7 +1116,6 @@
         ],
         "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
         "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-        "teamDriveId": "A String", # ID of the Team Drive the file resides in.
         "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
             # Entries with null values are cleared in update and copy requests.
           "a_key": "A String",
@@ -1396,16 +1150,8 @@
           "cameraModel": "A String", # The model of the camera used to create the photo.
         },
         "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-        "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+        "name": "A String", # The name of the file. This is not necessarily unique within a folder.
         "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-        "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-          "me": True or False, # Whether this user is the requesting user.
-          "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-          "displayName": "A String", # A plain text displayable name for this user.
-          "permissionId": "A String", # The user's ID as visible in Permission resources.
-          "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-          "photoLink": "A String", # A link to the user's profile photo, if available.
-        },
         "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
           "A String",
         ],
@@ -1418,14 +1164,12 @@
           },
         },
         "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-        "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
         "starred": True or False, # Whether the user has starred the file.
         "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
       },
     ],
-    "incompleteSearch": True or False, # Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple Team Drives with the "user,allTeamDrives" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as "user" or "teamDrive".
+    "nextPageToken": "A String", # The page token for the next page of files. This will be absent if the end of the files list has been reached.
     "kind": "drive#fileList", # Identifies what kind of resource this is. Value: the fixed string "drive#fileList".
-    "nextPageToken": "A String", # The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
   }</pre>
 </div>
 
@@ -1444,7 +1188,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None)</code>
+    <code class="details" id="update">update(fileId, body=None, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, ocrLanguage=None)</code>
   <pre>Updates a file's metadata and/or content with patch semantics.
 
 Args:
@@ -1459,11 +1203,11 @@
       # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
   "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
   "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+  "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
   "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
   "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-  "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+  "ownedByMe": True or False, # Whether the user owns the file.
   "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
   "id": "A String", # The ID of the file.
   "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1494,25 +1238,13 @@
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
   },
-  "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-    "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-    "canTrash": True or False, # Whether the file can be trashed by the user.
-    "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+  "capabilities": { # Capabilities the current user has on the file.
+    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+    "canCopy": True or False, # Whether the user can copy the file.
     "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-    "canDelete": True or False, # Whether the file can be deleted by the user.
-    "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-    "canRename": True or False, # Whether the file can be renamed by the user.
-    "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-    "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-    "canDownload": True or False, # Whether the file can be downloaded by the user.
-    "canComment": True or False, # Whether the user can comment on the file.
-    "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-    "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-    "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
     "canEdit": True or False, # Whether the user can edit the file's content.
-    "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+    "canComment": True or False, # Whether the user can comment on the file.
   },
-  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
   "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
   "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
   "parents": [ # The IDs of the parent folders which contain the file.
@@ -1520,40 +1252,21 @@
     "A String",
   ],
   "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-  "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+  "shared": True or False, # Whether the file has been shared.
+  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
       "domain": "A String", # The domain to which this permission refers.
       "displayName": "A String", # A displayable name for users, groups or domains.
-      "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-        {
-          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-          "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-              # - organizer
-              # - writer
-              # - commenter
-              # - reader
-          "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-              # - file
-              # -
-              # - member
-          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-        },
-      ],
       "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
       "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
       "emailAddress": "A String", # The email address of the user or group to which this permission refers.
       "photoLink": "A String", # A link to the user's profile photo, if available.
-      "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-          # - organizer
+      "role": "A String", # The role granted by this permission. Valid values are:
           # - owner
           # - writer
           # - commenter
           # - reader
-      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-          # - They can only be set on user and group permissions
-          # - The time must be in the future
-          # - The time cannot be more than a year in the future
+      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
       "type": "A String", # The type of the grantee. Valid values are:
           # - user
           # - group
@@ -1571,7 +1284,7 @@
       # Note that setting modifiedTime will also update modifiedByMeTime for the user.
   "viewedByMe": True or False, # Whether the file has been viewed by this user.
   "modifiedByMe": True or False, # Whether the file has been modified by this user.
-  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+  "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
     { # Information about a Drive user.
       "me": True or False, # Whether this user is the requesting user.
       "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1583,7 +1296,6 @@
   ],
   "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
   "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-  "teamDriveId": "A String", # ID of the Team Drive the file resides in.
   "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
       # Entries with null values are cleared in update and copy requests.
     "a_key": "A String",
@@ -1618,16 +1330,8 @@
     "cameraModel": "A String", # The model of the camera used to create the photo.
   },
   "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-  "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+  "name": "A String", # The name of the file. This is not necessarily unique within a folder.
   "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-    "me": True or False, # Whether this user is the requesting user.
-    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-    "displayName": "A String", # A plain text displayable name for this user.
-    "permissionId": "A String", # The user's ID as visible in Permission resources.
-    "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-    "photoLink": "A String", # A link to the user's profile photo, if available.
-  },
   "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
     "A String",
   ],
@@ -1640,7 +1344,6 @@
     },
   },
   "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
   "starred": True or False, # Whether the user has starred the file.
   "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
 }
@@ -1651,7 +1354,6 @@
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
   useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
   keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
 
 Returns:
@@ -1664,11 +1366,11 @@
         # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
     "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
     "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
-    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
+    "thumbnailVersion": "A String", # The thumbnail version for use in client-contructable thumbnail URLs or thumbnail cache invalidation.
     "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
     "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
-    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.
-    "ownedByMe": True or False, # Whether the user owns the file. Not populated for Team Drive files.
+    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
+    "ownedByMe": True or False, # Whether the user owns the file.
     "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
     "id": "A String", # The ID of the file.
     "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
@@ -1699,25 +1401,13 @@
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
     },
-    "capabilities": { # Capabilities the current user has on the file. Each capability corresponds to a fine-grained action that a user may take.
-      "canReadRevisions": True or False, # Whether the user has read access to the Revisions resource of the file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
-      "canTrash": True or False, # Whether the file can be trashed by the user.
-      "canCopy": True or False, # Whether the user can copy the file. For a Team Drive item, whether non-folder descendants of this item, or this item itself if it is not a folder, can be copied.
+    "capabilities": { # Capabilities the current user has on the file.
+      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
+      "canCopy": True or False, # Whether the user can copy the file.
       "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
-      "canDelete": True or False, # Whether the file can be deleted by the user.
-      "canMoveTeamDriveItem": True or False, # Whether the user can move this Team Drive item by changing its parent. Note that a request to change the parent for this item may still fail depending on the new parent that is being added. Only populated for Team Drive files.
-      "canRename": True or False, # Whether the file can be renamed by the user.
-      "canListChildren": True or False, # Whether the user can list the children of this folder. This is always false when the item is not a folder.
-      "canMoveItemIntoTeamDrive": True or False, # Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.
-      "canDownload": True or False, # Whether the file can be downloaded by the user.
-      "canComment": True or False, # Whether the user can comment on the file.
-      "canRemoveChildren": True or False, # Whether the user can remove children from this folder. This is always false when the item is not a folder.
-      "canReadTeamDrive": True or False, # Whether the user has read access to the Team Drive to which this file belongs. Only populated for Team Drive files.
-      "canAddChildren": True or False, # Whether the user can add children to this folder. This is always false when the item is not a folder.
       "canEdit": True or False, # Whether the user can edit the file's content.
-      "canUntrash": True or False, # Whether the file can be restored from the trash by the current user.
+      "canComment": True or False, # Whether the user can comment on the file.
     },
-    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.
     "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
     "version": "A String", # A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.
     "parents": [ # The IDs of the parent folders which contain the file.
@@ -1725,40 +1415,21 @@
       "A String",
     ],
     "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
-    "shared": True or False, # Whether the file has been shared. Not populated for Team Drive files.
-    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.
+    "shared": True or False, # Whether the file has been shared.
+    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-          {
-            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                # - organizer
-                # - writer
-                # - commenter
-                # - reader
-            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                # - file
-                # -
-                # - member
-            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-          },
-        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-            # - organizer
+        "role": "A String", # The role granted by this permission. Valid values are:
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-            # - They can only be set on user and group permissions
-            # - The time must be in the future
-            # - The time cannot be more than a year in the future
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -1776,7 +1447,7 @@
         # Note that setting modifiedTime will also update modifiedByMeTime for the user.
     "viewedByMe": True or False, # Whether the file has been viewed by this user.
     "modifiedByMe": True or False, # Whether the file has been modified by this user.
-    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.
+    "owners": [ # The owners of the file. Currently, only certain legacy files may have more than one owner.
       { # Information about a Drive user.
         "me": True or False, # Whether this user is the requesting user.
         "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
@@ -1788,7 +1459,6 @@
     ],
     "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
     "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
-    "teamDriveId": "A String", # ID of the Team Drive the file resides in.
     "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
         # Entries with null values are cleared in update and copy requests.
       "a_key": "A String",
@@ -1823,16 +1493,8 @@
       "cameraModel": "A String", # The model of the camera used to create the photo.
     },
     "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
-    "name": "A String", # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.
+    "name": "A String", # The name of the file. This is not necessarily unique within a folder.
     "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.
-    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files.
-      "me": True or False, # Whether this user is the requesting user.
-      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
-      "displayName": "A String", # A plain text displayable name for this user.
-      "permissionId": "A String", # The user's ID as visible in Permission resources.
-      "emailAddress": "A String", # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
-      "photoLink": "A String", # A link to the user's profile photo, if available.
-    },
     "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
       "A String",
     ],
@@ -1845,14 +1507,13 @@
       },
     },
     "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Drive.
-    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.
     "starred": True or False, # Whether the user has starred the file.
     "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
+    <code class="details" id="watch">watch(fileId, body, acknowledgeAbuse=None)</code>
   <pre>Subscribes to changes to a file
 
 Args:
@@ -1875,7 +1536,6 @@
     "id": "A String", # A UUID or similar unique string that identifies this channel.
   }
 
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
@@ -1898,7 +1558,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch_media">watch_media(fileId, body, supportsTeamDrives=None, acknowledgeAbuse=None)</code>
+    <code class="details" id="watch_media">watch_media(fileId, body, acknowledgeAbuse=None)</code>
   <pre>Subscribes to changes to a file
 
 Args:
@@ -1921,7 +1581,6 @@
     "id": "A String", # A UUID or similar unique string that identifies this channel.
   }
 
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
 
 Returns:
diff --git a/docs/dyn/drive_v3.html b/docs/dyn/drive_v3.html
index 603e5f6..d1cc6b0 100644
--- a/docs/dyn/drive_v3.html
+++ b/docs/dyn/drive_v3.html
@@ -115,11 +115,6 @@
 <p class="firstline">Returns the revisions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="drive_v3.teamdrives.html">teamdrives()</a></code>
-</p>
-<p class="firstline">Returns the teamdrives Resource.</p>
-
-<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/drive_v3.permissions.html b/docs/dyn/drive_v3.permissions.html
index 33341f9..d7ca2e1 100644
--- a/docs/dyn/drive_v3.permissions.html
+++ b/docs/dyn/drive_v3.permissions.html
@@ -75,65 +75,43 @@
 <h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.permissions.html">permissions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(fileId, body, sendNotificationEmail=None, supportsTeamDrives=None, transferOwnership=None, emailMessage=None)</a></code></p>
-<p class="firstline">Creates a permission for a file or Team Drive.</p>
+  <code><a href="#create">create(fileId, body, sendNotificationEmail=None, transferOwnership=None, emailMessage=None)</a></code></p>
+<p class="firstline">Creates a permission for a file.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(fileId, permissionId, supportsTeamDrives=None)</a></code></p>
+  <code><a href="#delete">delete(fileId, permissionId)</a></code></p>
 <p class="firstline">Deletes a permission.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, permissionId, supportsTeamDrives=None)</a></code></p>
+  <code><a href="#get">get(fileId, permissionId)</a></code></p>
 <p class="firstline">Gets a permission by ID.</p>
 <p class="toc_element">
-  <code><a href="#list">list(fileId, pageToken=None, supportsTeamDrives=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists a file's or Team Drive's permissions.</p>
+  <code><a href="#list">list(fileId)</a></code></p>
+<p class="firstline">Lists a file's permissions.</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>
-<p class="toc_element">
-  <code><a href="#update">update(fileId, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</a></code></p>
+  <code><a href="#update">update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</a></code></p>
 <p class="firstline">Updates a permission with patch semantics.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(fileId, body, sendNotificationEmail=None, supportsTeamDrives=None, transferOwnership=None, emailMessage=None)</code>
-  <pre>Creates a permission for a file or Team Drive.
+    <code class="details" id="create">create(fileId, body, sendNotificationEmail=None, transferOwnership=None, emailMessage=None)</code>
+  <pre>Creates a permission for a file.
 
 Args:
-  fileId: string, The ID of the file or Team Drive. (required)
+  fileId: string, The ID of the file. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
   "domain": "A String", # The domain to which this permission refers.
   "displayName": "A String", # A displayable name for users, groups or domains.
-  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-    {
-      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-          # - organizer
-          # - writer
-          # - commenter
-          # - reader
-      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-          # - file
-          # -
-          # - member
-      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-    },
-  ],
   "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
   "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
   "emailAddress": "A String", # The email address of the user or group to which this permission refers.
   "photoLink": "A String", # A link to the user's profile photo, if available.
-  "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-      # - organizer
+  "role": "A String", # The role granted by this permission. Valid values are:
       # - owner
       # - writer
       # - commenter
       # - reader
-  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-      # - They can only be set on user and group permissions
-      # - The time must be in the future
-      # - The time cannot be more than a year in the future
+  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
   "type": "A String", # The type of the grantee. Valid values are:
       # - user
       # - group
@@ -143,7 +121,6 @@
 }
 
   sendNotificationEmail: boolean, Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownership transfers.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
   emailMessage: string, A custom message to include in the notification email.
 
@@ -153,35 +130,16 @@
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
     "domain": "A String", # The domain to which this permission refers.
     "displayName": "A String", # A displayable name for users, groups or domains.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-      {
-        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-            # - organizer
-            # - writer
-            # - commenter
-            # - reader
-        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-            # - file
-            # -
-            # - member
-        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-      },
-    ],
     "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
     "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
     "emailAddress": "A String", # The email address of the user or group to which this permission refers.
     "photoLink": "A String", # A link to the user's profile photo, if available.
-    "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-        # - organizer
+    "role": "A String", # The role granted by this permission. Valid values are:
         # - owner
         # - writer
         # - commenter
         # - reader
-    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-        # - They can only be set on user and group permissions
-        # - The time must be in the future
-        # - The time cannot be more than a year in the future
+    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
     "type": "A String", # The type of the grantee. Valid values are:
         # - user
         # - group
@@ -192,24 +150,22 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(fileId, permissionId, supportsTeamDrives=None)</code>
+    <code class="details" id="delete">delete(fileId, permissionId)</code>
   <pre>Deletes a permission.
 
 Args:
-  fileId: string, The ID of the file or Team Drive. (required)
+  fileId: string, The ID of the file. (required)
   permissionId: string, The ID of the permission. (required)
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, permissionId, supportsTeamDrives=None)</code>
+    <code class="details" id="get">get(fileId, permissionId)</code>
   <pre>Gets a permission by ID.
 
 Args:
   fileId: string, The ID of the file. (required)
   permissionId: string, The ID of the permission. (required)
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
 
 Returns:
   An object of the form:
@@ -217,35 +173,16 @@
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
     "domain": "A String", # The domain to which this permission refers.
     "displayName": "A String", # A displayable name for users, groups or domains.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-      {
-        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-            # - organizer
-            # - writer
-            # - commenter
-            # - reader
-        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-            # - file
-            # -
-            # - member
-        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-      },
-    ],
     "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
     "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
     "emailAddress": "A String", # The email address of the user or group to which this permission refers.
     "photoLink": "A String", # A link to the user's profile photo, if available.
-    "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-        # - organizer
+    "role": "A String", # The role granted by this permission. Valid values are:
         # - owner
         # - writer
         # - commenter
         # - reader
-    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-        # - They can only be set on user and group permissions
-        # - The time must be in the future
-        # - The time cannot be more than a year in the future
+    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
     "type": "A String", # The type of the grantee. Valid values are:
         # - user
         # - group
@@ -256,54 +193,31 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(fileId, pageToken=None, supportsTeamDrives=None, pageSize=None)</code>
-  <pre>Lists a file's or Team Drive's permissions.
+    <code class="details" id="list">list(fileId)</code>
+  <pre>Lists a file's permissions.
 
 Args:
-  fileId: string, The ID of the file or Team Drive. (required)
-  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
-  pageSize: integer, The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.
+  fileId: string, The ID of the file. (required)
 
 Returns:
   An object of the form:
 
     { # A list of permissions for a file.
-    "nextPageToken": "A String", # The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
     "kind": "drive#permissionList", # Identifies what kind of resource this is. Value: the fixed string "drive#permissionList".
-    "permissions": [ # The list of permissions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+    "permissions": [ # The full list of permissions.
       { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
         "domain": "A String", # The domain to which this permission refers.
         "displayName": "A String", # A displayable name for users, groups or domains.
-        "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-          {
-            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-            "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-                # - organizer
-                # - writer
-                # - commenter
-                # - reader
-            "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-                # - file
-                # -
-                # - member
-            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-          },
-        ],
         "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
         "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
         "emailAddress": "A String", # The email address of the user or group to which this permission refers.
         "photoLink": "A String", # A link to the user's profile photo, if available.
-        "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-            # - organizer
+        "role": "A String", # The role granted by this permission. Valid values are:
             # - owner
             # - writer
             # - commenter
             # - reader
-        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-            # - They can only be set on user and group permissions
-            # - The time must be in the future
-            # - The time cannot be more than a year in the future
+        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
         "type": "A String", # The type of the grantee. Valid values are:
             # - user
             # - group
@@ -316,25 +230,11 @@
 </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>
-
-<div class="method">
-    <code class="details" id="update">update(fileId, permissionId, body, removeExpiration=None, supportsTeamDrives=None, transferOwnership=None)</code>
+    <code class="details" id="update">update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)</code>
   <pre>Updates a permission with patch semantics.
 
 Args:
-  fileId: string, The ID of the file or Team Drive. (required)
+  fileId: string, The ID of the file. (required)
   permissionId: string, The ID of the permission. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -342,35 +242,16 @@
 { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
   "domain": "A String", # The domain to which this permission refers.
   "displayName": "A String", # A displayable name for users, groups or domains.
-  "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-    {
-      "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-      "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-          # - organizer
-          # - writer
-          # - commenter
-          # - reader
-      "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-          # - file
-          # -
-          # - member
-      "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-    },
-  ],
   "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
   "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
   "emailAddress": "A String", # The email address of the user or group to which this permission refers.
   "photoLink": "A String", # A link to the user's profile photo, if available.
-  "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-      # - organizer
+  "role": "A String", # The role granted by this permission. Valid values are:
       # - owner
       # - writer
       # - commenter
       # - reader
-  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-      # - They can only be set on user and group permissions
-      # - The time must be in the future
-      # - The time cannot be more than a year in the future
+  "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
   "type": "A String", # The type of the grantee. Valid values are:
       # - user
       # - group
@@ -380,7 +261,6 @@
 }
 
   removeExpiration: boolean, Whether to remove the expiration date.
-  supportsTeamDrives: boolean, Whether the requesting application supports Team Drives.
   transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
 
 Returns:
@@ -389,35 +269,16 @@
     { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
     "domain": "A String", # The domain to which this permission refers.
     "displayName": "A String", # A displayable name for users, groups or domains.
-    "teamDrivePermissionDetails": [ # Details of whether the Permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.
-      {
-        "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.
-        "role": "A String", # The primary role for this user. While new values may be added in the future, the following are currently possible:
-            # - organizer
-            # - writer
-            # - commenter
-            # - reader
-        "teamDrivePermissionType": "A String", # The Team Drive permission type for this user. While new values may be added in future, the following are currently possible:
-            # - file
-            # -
-            # - member
-        "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
-      },
-    ],
     "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
     "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
     "emailAddress": "A String", # The email address of the user or group to which this permission refers.
     "photoLink": "A String", # A link to the user's profile photo, if available.
-    "role": "A String", # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
-        # - organizer
+    "role": "A String", # The role granted by this permission. Valid values are:
         # - owner
         # - writer
         # - commenter
         # - reader
-    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
-        # - They can only be set on user and group permissions
-        # - The time must be in the future
-        # - The time cannot be more than a year in the future
+    "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
     "type": "A String", # The type of the grantee. Valid values are:
         # - user
         # - group
diff --git a/docs/dyn/drive_v3.replies.html b/docs/dyn/drive_v3.replies.html
index c70344b..5f925fa 100644
--- a/docs/dyn/drive_v3.replies.html
+++ b/docs/dyn/drive_v3.replies.html
@@ -211,9 +211,9 @@
   An object of the form:
 
     { # A list of replies to a comment on a file.
-    "nextPageToken": "A String", # The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "nextPageToken": "A String", # The page token for the next page of replies. This will be absent if the end of the replies list has been reached.
     "kind": "drive#replyList", # Identifies what kind of resource this is. Value: the fixed string "drive#replyList".
-    "replies": [ # The list of replies. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+    "replies": [ # The page of replies.
       { # A reply to a comment on a file.
         "kind": "drive#reply", # Identifies what kind of resource this is. Value: the fixed string "drive#reply".
         "modifiedTime": "A String", # The last time the reply was modified (RFC 3339 date-time).
diff --git a/docs/dyn/drive_v3.revisions.html b/docs/dyn/drive_v3.revisions.html
index 932165c..2c86689 100644
--- a/docs/dyn/drive_v3.revisions.html
+++ b/docs/dyn/drive_v3.revisions.html
@@ -167,9 +167,9 @@
   An object of the form:
 
     { # A list of revisions of a file.
-    "nextPageToken": "A String", # The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
+    "nextPageToken": "A String", # The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached.
     "kind": "drive#revisionList", # Identifies what kind of resource this is. Value: the fixed string "drive#revisionList".
-    "revisions": [ # The list of revisions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
+    "revisions": [ # The full list of revisions.
       { # The metadata for a revision to a file.
         "mimeType": "A String", # The MIME type of the revision.
         "kind": "drive#revision", # Identifies what kind of resource this is. Value: the fixed string "drive#revision".
diff --git a/docs/dyn/drive_v3.teamdrives.html b/docs/dyn/drive_v3.teamdrives.html
deleted file mode 100644
index 67ee7db..0000000
--- a/docs/dyn/drive_v3.teamdrives.html
+++ /dev/null
@@ -1,302 +0,0 @@
-<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="drive_v3.html">Drive API</a> . <a href="drive_v3.teamdrives.html">teamdrives</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(requestId, body)</a></code></p>
-<p class="firstline">Creates a new Team Drive.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(teamDriveId)</a></code></p>
-<p class="firstline">Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.</p>
-<p class="toc_element">
-  <code><a href="#get">get(teamDriveId)</a></code></p>
-<p class="firstline">Gets a Team Drive's metadata by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(pageToken=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the user's Team Drives.</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>
-<p class="toc_element">
-  <code><a href="#update">update(teamDriveId, body)</a></code></p>
-<p class="firstline">Updates a Team Drive's metadata</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(requestId, body)</code>
-  <pre>Creates a new Team Drive.
-
-Args:
-  requestId: string, An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Representation of a Team Drive.
-  "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-  "capabilities": { # Capabilities the current user has on this Team Drive.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-    "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-    "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-    "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-    "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-    "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-    "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-  },
-  "name": "A String", # The name of this Team Drive.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # Representation of a Team Drive.
-    "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-    "capabilities": { # Capabilities the current user has on this Team Drive.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-    },
-    "name": "A String", # The name of this Team Drive.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(teamDriveId)</code>
-  <pre>Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.
-
-Args:
-  teamDriveId: string, The ID of the Team Drive (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(teamDriveId)</code>
-  <pre>Gets a Team Drive's metadata by ID.
-
-Args:
-  teamDriveId: string, The ID of the Team Drive (required)
-
-Returns:
-  An object of the form:
-
-    { # Representation of a Team Drive.
-    "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-    "capabilities": { # Capabilities the current user has on this Team Drive.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-    },
-    "name": "A String", # The name of this Team Drive.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(pageToken=None, pageSize=None)</code>
-  <pre>Lists the user's Team Drives.
-
-Args:
-  pageToken: string, Page token for Team Drives.
-  pageSize: integer, Maximum number of Team Drives to return.
-
-Returns:
-  An object of the form:
-
-    { # A list of Team Drives.
-    "nextPageToken": "A String", # The page token for the next page of Team Drives. This will be absent if the end of the Team Drives list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
-    "kind": "drive#teamDriveList", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDriveList".
-    "teamDrives": [ # The list of Team Drives. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
-      { # Representation of a Team Drive.
-        "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-        "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-        "capabilities": { # Capabilities the current user has on this Team Drive.
-          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-          "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-          "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-          "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-          "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-          "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-          "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-          "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-          "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-          "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-          "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-          "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-          "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-        },
-        "name": "A String", # The name of this Team Drive.
-      },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="update">update(teamDriveId, body)</code>
-  <pre>Updates a Team Drive's metadata
-
-Args:
-  teamDriveId: string, The ID of the Team Drive (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # Representation of a Team Drive.
-  "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-  "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-  "capabilities": { # Capabilities the current user has on this Team Drive.
-    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-    "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-    "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-    "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-    "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-    "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-    "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-    "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-    "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-    "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-    "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-    "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-    "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-  },
-  "name": "A String", # The name of this Team Drive.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # Representation of a Team Drive.
-    "kind": "drive#teamDrive", # Identifies what kind of resource this is. Value: the fixed string "drive#teamDrive".
-    "id": "A String", # The ID of this Team Drive which is also the ID of the top level folder for this Team Drive.
-    "capabilities": { # Capabilities the current user has on this Team Drive.
-      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of files in this Team Drive.
-      "canCopy": True or False, # Whether files in this Team Drive can be copied by the current user.
-      "canRename": True or False, # Whether files or folders in this Team Drive can be renamed by the current user.
-      "canListChildren": True or False, # Whether the current user can list the children of folders in this Team Drive.
-      "canShare": True or False, # Whether the current user can share files or folders in this Team Drive.
-      "canManageMembers": True or False, # Whether the current user can add members to this Team Drive or remove them or change their role.
-      "canDownload": True or False, # Whether files in this Team Drive can be downloaded by the current user.
-      "canComment": True or False, # Whether the current user can comment on files in this Team Drive.
-      "canDeleteTeamDrive": True or False, # Whether this Team Drive can be deleted by the current user.
-      "canRenameTeamDrive": True or False, # Whether this Team Drive can be renamed by the current user.
-      "canRemoveChildren": True or False, # Whether the current user can remove children from folders in this Team Drive.
-      "canAddChildren": True or False, # Whether the current user can add children to folders in this Team Drive.
-      "canEdit": True or False, # Whether files in this Team Drive can be edited by the current user.
-    },
-    "name": "A String", # The name of this Team Drive.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/firebasedynamiclinks_v1.html b/docs/dyn/firebasedynamiclinks_v1.html
index 94a4172..fb07801 100644
--- a/docs/dyn/firebasedynamiclinks_v1.html
+++ b/docs/dyn/firebasedynamiclinks_v1.html
@@ -80,6 +80,11 @@
 <p class="firstline">Returns the shortLinks Resource.</p>
 
 <p class="toc_element">
+  <code><a href="firebasedynamiclinks_v1.v1.html">v1()</a></code>
+</p>
+<p class="firstline">Returns the v1 Resource.</p>
+
+<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/firebasedynamiclinks_v1.shortLinks.html b/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
index e60a18f..7229da1 100644
--- a/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
+++ b/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
@@ -102,7 +102,7 @@
             # show an interstitial page.
       },
       "analyticsInfo": { # Tracking parameters supported by Dynamic Link. # Parameters used for tracking. See all tracking parameters in the
-          # [documentation](https://firebase.google.com/docs/dynamic-links/android#create-a-dynamic-link-programmatically).
+          # [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
         "googlePlayAnalytics": { # Parameters for Google Play Campaign Measurements. # Google Play Campaign Measurements.
             # [Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params)
           "utmMedium": "A String", # Campaign medium; used to identify a medium such as email or cost-per-click.
@@ -127,7 +127,7 @@
         },
       },
       "iosInfo": { # iOS related attributes to the Dynamic Link.. # iOS related information. See iOS related parameters in the
-          # [documentation](https://firebase.google.com/docs/dynamic-links/ios#create-a-dynamic-link-programmatically).
+          # [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
         "iosCustomScheme": "A String", # Custom (destination) scheme to use for iOS. By default, we’ll use the
             # bundle ID as the custom scheme. Developer can override this behavior using
             # this param.
@@ -138,9 +138,9 @@
         "iosIpadFallbackLink": "A String", # If specified, this overrides the ios_fallback_link value on iPads.
       },
       "androidInfo": { # Android related attributes to the Dynamic Link. # Android related information. See Android related parameters in the
-          # [documentation](https://firebase.google.com/docs/dynamic-links/android#create-a-dynamic-link-programmatically).
-        "androidPackageName": "A String", # Android package name of the app.
+          # [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
         "androidFallbackLink": "A String", # Link to open on Android if the app is not installed.
+        "androidPackageName": "A String", # Android package name of the app.
         "androidLink": "A String", # If specified, this overrides the ‘link’ parameter on Android.
         "androidMinPackageVersionCode": "A String", # Minimum version code for the Android app. If the installed app’s version
             # code is lower, then the user is taken to the Play Store.
@@ -155,11 +155,11 @@
       "link": "A String", # The link your app will open, You can specify any URL your app can handle.
           # This link must be a well-formatted URL, be properly URL-encoded, and use
           # the HTTP or HTTPS scheme. See 'link' parameters in the
-          # [documentation](https://firebase.google.com/docs/dynamic-links/android#create-a-dynamic-link-programmatically).
+          # [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
           #
           # Required.
       "dynamicLinkDomain": "A String", # Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl
-          # [Learn more](https://firebase.google.com/docs/dynamic-links/android#set-up-firebase-and-the-dynamic-links-sdk)
+          # [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive)
           # on how to set up Dynamic Link domain associated with your Firebase project.
           #
           # Required.
diff --git a/docs/dyn/firebasedynamiclinks_v1.v1.html b/docs/dyn/firebasedynamiclinks_v1.v1.html
new file mode 100644
index 0000000..7f1e8e9
--- /dev/null
+++ b/docs/dyn/firebasedynamiclinks_v1.v1.html
@@ -0,0 +1,109 @@
+<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="firebasedynamiclinks_v1.html">Firebase Dynamic Links API</a> . <a href="firebasedynamiclinks_v1.v1.html">v1</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#getLinkStats">getLinkStats(dynamicLink, durationDays=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Fetches analytics stats of a short Dynamic Link for a given</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="getLinkStats">getLinkStats(dynamicLink, durationDays=None, x__xgafv=None)</code>
+  <pre>Fetches analytics stats of a short Dynamic Link for a given
+duration. Metrics include number of clicks, redirects, installs,
+app first opens, and app reopens.
+
+Args:
+  dynamicLink: string, Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz (required)
+  durationDays: string, The span of time requested in days.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Analytics stats of a Dynamic Link for a given timeframe.
+    "linkEventStats": [ # Dynamic Link event stats.
+      { # Dynamic Link event stat.
+        "count": "A String", # The number of times this event occurred.
+        "platform": "A String", # Requested platform.
+        "event": "A String", # Link event.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/firebaserules_v1.projects.html b/docs/dyn/firebaserules_v1.projects.html
index 50c4f3e..a42f48d 100644
--- a/docs/dyn/firebaserules_v1.projects.html
+++ b/docs/dyn/firebaserules_v1.projects.html
@@ -136,6 +136,96 @@
         },
       ],
     },
+    "testSuite": { # `TestSuite` is a collection of `TestCase` instances that validate the logical # Inline `TestSuite` to run.
+        # correctness of a `Ruleset`. The `TestSuite` may be referenced in-line within
+        # a `TestRuleset` invocation or as part of a `Release` object as a pre-release
+        # check.
+      "testCases": [ # Collection of test cases associated with the `TestSuite`.
+        { # `TestCase` messages provide the request context and an expectation as to
+            # whether the given context will be allowed or denied. Test cases may specify
+            # the `request`, `resource`, and `function_mocks` to mock a function call to
+            # a service-provided function.
+            #
+            # The `request` object represents context present at request-time.
+            #
+            # The `resource` is the value of the target resource as it appears in
+            # persistent storage before the request is executed.
+          "functionMocks": [ # Optional function mocks for service-defined functions. If not set, any
+              # service defined function is expected to return an error, which may or may
+              # not influence the test outcome.
+            { # Mock function definition.
+                #
+                # Mocks must refer to a function declared by the target service. The type of
+                # the function args and result will be inferred at test time. If either the
+                # arg or result values are not compatible with function type declaration, the
+                # request will be considered invalid.
+                #
+                # More than one `FunctionMock` may be provided for a given function name so
+                # long as the `Arg` matchers are distinct. There may be only one function
+                # for a given overload where all `Arg` values are `Arg.any_value`.
+              "function": "A String", # The name of the function.
+                  #
+                  # The function name must match one provided by a service declaration.
+              "args": [ # The list of `Arg` values to match. The order in which the arguments are
+                  # provided is the order in which they must appear in the function
+                  # invocation.
+                { # Arg matchers for the mock function.
+                  "anyValue": { # A generic empty message that you can re-use to avoid defining duplicated # Argument matches any value provided.
+                      # 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 `{}`.
+                  },
+                  "exactValue": "", # Argument exactly matches value provided.
+                },
+              ],
+              "result": { # Possible result values from the function mock invocation. # The mock result of the function call.
+                "undefined": { # A generic empty message that you can re-use to avoid defining duplicated # The result is undefined, meaning the result could not be computed.
+                    # 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 `{}`.
+                },
+                "value": "", # The result is an actual value. The type of the value must match that
+                    # of the type declared by the service.
+              },
+            },
+          ],
+          "resource": "", # Optional resource value as it appears in persistent storage before the
+              # request is fulfilled.
+              #
+              # The resource type depends on the `request.path` value.
+          "request": "", # Request context.
+              #
+              # The exact format of the request context is service-dependent. See the
+              # appropriate service documentation for information about the supported
+              # fields and types on the request. Minimally, all services support the
+              # following fields and types:
+              #
+              # Request field  | Type
+              # ---------------|-----------------
+              # auth.uid       | `string`
+              # auth.token     | `map<string, string>`
+              # headers        | `map<string, string>`
+              # method         | `string`
+              # params         | `map<string, string>`
+              # path           | `string`
+              # time           | `google.protobuf.Timestamp`
+              #
+              # If the request value is not well-formed for the service, the request will
+              # be rejected as an invalid argument.
+          "expectation": "A String", # Test expectation.
+        },
+      ],
+    },
   }
 
   x__xgafv: string, V1 error format.
@@ -162,19 +252,6 @@
           "A String",
         ],
         "state": "A String", # State of the test.
-        "functionCalls": [ # The set of function calls made to service-defined methods.
-            #
-            # Function calls are included in the order in which they are encountered
-            # during evaluation, are provided for both mocked and unmocked functions,
-            # and included on the response regardless of the test `state`.
-          { # Represents a service-defined function call that was invoked during test
-              # execution.
-            "function": "A String", # Name of the function invoked.
-            "args": [ # The arguments that were provided to the function.
-              "",
-            ],
-          },
-        ],
         "errorPosition": { # Position in the `Source` content including its line, column number, and an # Position in the `Source` or `Ruleset` where the principle runtime error
             # occurs.
             #
@@ -188,6 +265,19 @@
           "line": 42, # Line number of the source fragment. 1-based.
           "fileName": "A String", # Name of the `File`.
         },
+        "functionCalls": [ # The set of function calls made to service-defined methods.
+            #
+            # Function calls are included in the order in which they are encountered
+            # during evaluation, are provided for both mocked and unmocked functions,
+            # and included on the response regardless of the test `state`.
+          { # Represents a service-defined function call that was invoked during test
+              # execution.
+            "function": "A String", # Name of the function invoked.
+            "args": [ # The arguments that were provided to the function.
+              "",
+            ],
+          },
+        ],
       },
     ],
     "issues": [ # Syntactic and semantic `Source` issues of varying severity. Issues of
@@ -199,8 +289,8 @@
           "line": 42, # Line number of the source fragment. 1-based.
           "fileName": "A String", # Name of the `File`.
         },
-        "severity": "A String", # The severity of the issue.
         "description": "A String", # Short error description.
+        "severity": "A String", # The severity of the issue.
       },
     ],
   }</pre>
diff --git a/docs/dyn/firebaserules_v1.projects.rulesets.html b/docs/dyn/firebaserules_v1.projects.rulesets.html
index 11a8b34..4c2b59c 100644
--- a/docs/dyn/firebaserules_v1.projects.rulesets.html
+++ b/docs/dyn/firebaserules_v1.projects.rulesets.html
@@ -117,11 +117,11 @@
         },
       ],
     },
-    "createTime": "A String", # Time the `Ruleset` was created.
-        # Output only.
     "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
         # Format: `projects/{project_id}/rulesets/{ruleset_id}`
         # Output only.
+    "createTime": "A String", # Time the `Ruleset` was created.
+        # Output only.
   }
 
   x__xgafv: string, V1 error format.
@@ -143,11 +143,11 @@
           },
         ],
       },
-      "createTime": "A String", # Time the `Ruleset` was created.
-          # Output only.
       "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
           # Format: `projects/{project_id}/rulesets/{ruleset_id}`
           # Output only.
+      "createTime": "A String", # Time the `Ruleset` was created.
+          # Output only.
     }</pre>
 </div>
 
@@ -208,11 +208,11 @@
           },
         ],
       },
-      "createTime": "A String", # Time the `Ruleset` was created.
-          # Output only.
       "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
           # Format: `projects/{project_id}/rulesets/{ruleset_id}`
           # Output only.
+      "createTime": "A String", # Time the `Ruleset` was created.
+          # Output only.
     }</pre>
 </div>
 
@@ -263,11 +263,11 @@
               },
             ],
           },
-          "createTime": "A String", # Time the `Ruleset` was created.
-              # Output only.
           "name": "A String", # Name of the `Ruleset`. The ruleset_id is auto generated by the service.
               # Format: `projects/{project_id}/rulesets/{ruleset_id}`
               # Output only.
+          "createTime": "A String", # Time the `Ruleset` was created.
+              # Output only.
         },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1.annotations.html b/docs/dyn/genomics_v1.annotations.html
index 8a88529..0cdb013 100644
--- a/docs/dyn/genomics_v1.annotations.html
+++ b/docs/dyn/genomics_v1.annotations.html
@@ -118,6 +118,13 @@
     The object takes the form of:
 
 {
+    "requestId": "A String", # A unique request ID which enables the server to detect duplicated requests.
+        # If provided, duplicated requests will result in the same response; if not
+        # provided, duplicated requests may result in duplicated data. For a given
+        # annotation set, callers should not reuse `request_id`s when writing
+        # different batches of annotations - behavior in this case is undefined.
+        # A common approach is to use a UUID. For batch jobs where worker crashes are
+        # a possibility, consider using some unique variant of a worker or run ID.
     "annotations": [ # The annotations to be created. At most 4096 can be specified in a single
         # request.
       { # An annotation describes a region of reference genome. The value of an
@@ -224,10 +231,10 @@
                   "id": "A String", # The id used by the source of this data.
                 },
               ],
-              "omimId": "A String", # The OMIM id for this condition.
-                  # Search for these IDs at http://omim.org/
               "conceptId": "A String", # The MedGen concept id associated with this gene.
                   # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+              "omimId": "A String", # The OMIM id for this condition.
+                  # Search for these IDs at http://omim.org/
               "names": [ # A set of names for the condition.
                 "A String",
               ],
@@ -248,13 +255,6 @@
         "id": "A String", # The server-generated annotation ID, unique across all annotations.
       },
     ],
-    "requestId": "A String", # A unique request ID which enables the server to detect duplicated requests.
-        # If provided, duplicated requests will result in the same response; if not
-        # provided, duplicated requests may result in duplicated data. For a given
-        # annotation set, callers should not reuse `request_id`s when writing
-        # different batches of annotations - behavior in this case is undefined.
-        # A common approach is to use a UUID. For batch jobs where worker crashes are
-        # a possibility, consider using some unique variant of a worker or run ID.
   }
 
   x__xgafv: string, V1 error format.
@@ -286,7 +286,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -309,7 +309,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -436,10 +436,10 @@
                     "id": "A String", # The id used by the source of this data.
                   },
                 ],
-                "omimId": "A String", # The OMIM id for this condition.
-                    # Search for these IDs at http://omim.org/
                 "conceptId": "A String", # The MedGen concept id associated with this gene.
                     # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+                "omimId": "A String", # The OMIM id for this condition.
+                    # Search for these IDs at http://omim.org/
                 "names": [ # A set of names for the condition.
                   "A String",
                 ],
@@ -597,10 +597,10 @@
             "id": "A String", # The id used by the source of this data.
           },
         ],
-        "omimId": "A String", # The OMIM id for this condition.
-            # Search for these IDs at http://omim.org/
         "conceptId": "A String", # The MedGen concept id associated with this gene.
             # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+        "omimId": "A String", # The OMIM id for this condition.
+            # Search for these IDs at http://omim.org/
         "names": [ # A set of names for the condition.
           "A String",
         ],
@@ -733,10 +733,10 @@
               "id": "A String", # The id used by the source of this data.
             },
           ],
-          "omimId": "A String", # The OMIM id for this condition.
-              # Search for these IDs at http://omim.org/
           "conceptId": "A String", # The MedGen concept id associated with this gene.
               # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition.
+              # Search for these IDs at http://omim.org/
           "names": [ # A set of names for the condition.
             "A String",
           ],
@@ -904,10 +904,10 @@
               "id": "A String", # The id used by the source of this data.
             },
           ],
-          "omimId": "A String", # The OMIM id for this condition.
-              # Search for these IDs at http://omim.org/
           "conceptId": "A String", # The MedGen concept id associated with this gene.
               # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition.
+              # Search for these IDs at http://omim.org/
           "names": [ # A set of names for the condition.
             "A String",
           ],
@@ -951,19 +951,19 @@
         # must be specified, Defaults to the length of the reference.
     "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
         # defaults to 256. The maximum value is 2048.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
-        # To get the next page of results, set this parameter to the value of
-        # `nextPageToken` from the previous response.
-    "annotationSetIds": [ # Required. The annotation sets to search within. The caller must have
-        # `READ` access to these annotation sets.
-        # All queried annotation sets must have the same type.
-      "A String",
-    ],
     "start": "A String", # The start position of the range on the reference, 0-based inclusive. If
         # specified,
         # referenceId or
         # referenceName
         # must be specified. Defaults to 0.
+    "annotationSetIds": [ # Required. The annotation sets to search within. The caller must have
+        # `READ` access to these annotation sets.
+        # All queried annotation sets must have the same type.
+      "A String",
+    ],
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
     "referenceName": "A String", # The name of the reference to query, within the reference set associated
         # with this query.
   }
@@ -1085,10 +1085,10 @@
                   "id": "A String", # The id used by the source of this data.
                 },
               ],
-              "omimId": "A String", # The OMIM id for this condition.
-                  # Search for these IDs at http://omim.org/
               "conceptId": "A String", # The MedGen concept id associated with this gene.
                   # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+              "omimId": "A String", # The OMIM id for this condition.
+                  # Search for these IDs at http://omim.org/
               "names": [ # A set of names for the condition.
                 "A String",
               ],
@@ -1240,10 +1240,10 @@
             "id": "A String", # The id used by the source of this data.
           },
         ],
-        "omimId": "A String", # The OMIM id for this condition.
-            # Search for these IDs at http://omim.org/
         "conceptId": "A String", # The MedGen concept id associated with this gene.
             # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+        "omimId": "A String", # The OMIM id for this condition.
+            # Search for these IDs at http://omim.org/
         "names": [ # A set of names for the condition.
           "A String",
         ],
@@ -1382,10 +1382,10 @@
               "id": "A String", # The id used by the source of this data.
             },
           ],
-          "omimId": "A String", # The OMIM id for this condition.
-              # Search for these IDs at http://omim.org/
           "conceptId": "A String", # The MedGen concept id associated with this gene.
               # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition.
+              # Search for these IDs at http://omim.org/
           "names": [ # A set of names for the condition.
             "A String",
           ],
diff --git a/docs/dyn/genomics_v1.annotationsets.html b/docs/dyn/genomics_v1.annotationsets.html
index 4628af6..d2ffe6e 100644
--- a/docs/dyn/genomics_v1.annotationsets.html
+++ b/docs/dyn/genomics_v1.annotationsets.html
@@ -111,6 +111,33 @@
     The object takes the form of:
 
 { # An annotation set is a logical grouping of annotations that share consistent
+    # type information and provenance. Examples of annotation sets include 'all
+    # genes from refseq', and 'all variant annotations from ClinVar'.
+  "info": { # A map of additional read alignment information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
+    "a_key": [
+      "",
+    ],
+  },
+  "name": "A String", # The display name for this annotation set.
+  "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+      # generated, if any.
+  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+      # set's annotations.
+  "type": "A String", # The type of annotations contained within this set.
+  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+  "datasetId": "A String", # The dataset to which this annotation set belongs.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations that share consistent
       # type information and provenance. Examples of annotation sets include 'all
       # genes from refseq', and 'all variant annotations from ClinVar'.
     "info": { # A map of additional read alignment information. This must be of the form
@@ -127,34 +154,7 @@
     "type": "A String", # The type of annotations contained within this set.
     "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
     "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent
-        # type information and provenance. Examples of annotation sets include 'all
-        # genes from refseq', and 'all variant annotations from ClinVar'.
-      "info": { # A map of additional read alignment information. This must be of the form
-          # map<string, string[]> (string key mapping to a list of string values).
-        "a_key": [
-          "",
-        ],
-      },
-      "name": "A String", # The display name for this annotation set.
-      "sourceUri": "A String", # The source URI describing the file from which this annotation set was
-          # generated, if any.
-      "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
-          # set's annotations.
-      "type": "A String", # The type of annotations contained within this set.
-      "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-      "datasetId": "A String", # The dataset to which this annotation set belongs.
-    }</pre>
+  }</pre>
 </div>
 
 <div class="method">
@@ -200,23 +200,23 @@
   An object of the form:
 
     { # An annotation set is a logical grouping of annotations that share consistent
-        # type information and provenance. Examples of annotation sets include 'all
-        # genes from refseq', and 'all variant annotations from ClinVar'.
-      "info": { # A map of additional read alignment information. This must be of the form
-          # map<string, string[]> (string key mapping to a list of string values).
-        "a_key": [
-          "",
-        ],
-      },
-      "name": "A String", # The display name for this annotation set.
-      "sourceUri": "A String", # The source URI describing the file from which this annotation set was
-          # generated, if any.
-      "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
-          # set's annotations.
-      "type": "A String", # The type of annotations contained within this set.
-      "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-      "datasetId": "A String", # The dataset to which this annotation set belongs.
-    }</pre>
+      # type information and provenance. Examples of annotation sets include 'all
+      # genes from refseq', and 'all variant annotations from ClinVar'.
+    "info": { # A map of additional read alignment information. This must be of the form
+        # map<string, string[]> (string key mapping to a list of string values).
+      "a_key": [
+        "",
+      ],
+    },
+    "name": "A String", # The display name for this annotation set.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+        # generated, if any.
+    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+        # set's annotations.
+    "type": "A String", # The type of annotations contained within this set.
+    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+    "datasetId": "A String", # The dataset to which this annotation set belongs.
+  }</pre>
 </div>
 
 <div class="method">
@@ -265,23 +265,23 @@
         # results. This field will be empty if there aren't any additional results.
     "annotationSets": [ # The matching annotation sets.
       { # An annotation set is a logical grouping of annotations that share consistent
-            # type information and provenance. Examples of annotation sets include 'all
-            # genes from refseq', and 'all variant annotations from ClinVar'.
-          "info": { # A map of additional read alignment information. This must be of the form
-              # map<string, string[]> (string key mapping to a list of string values).
-            "a_key": [
-              "",
-            ],
-          },
-          "name": "A String", # The display name for this annotation set.
-          "sourceUri": "A String", # The source URI describing the file from which this annotation set was
-              # generated, if any.
-          "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
-              # set's annotations.
-          "type": "A String", # The type of annotations contained within this set.
-          "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-          "datasetId": "A String", # The dataset to which this annotation set belongs.
+          # type information and provenance. Examples of annotation sets include 'all
+          # genes from refseq', and 'all variant annotations from ClinVar'.
+        "info": { # A map of additional read alignment information. This must be of the form
+            # map<string, string[]> (string key mapping to a list of string values).
+          "a_key": [
+            "",
+          ],
         },
+        "name": "A String", # The display name for this annotation set.
+        "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+            # generated, if any.
+        "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+            # set's annotations.
+        "type": "A String", # The type of annotations contained within this set.
+        "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+        "datasetId": "A String", # The dataset to which this annotation set belongs.
+      },
     ],
   }</pre>
 </div>
@@ -312,6 +312,38 @@
     The object takes the form of:
 
 { # An annotation set is a logical grouping of annotations that share consistent
+    # type information and provenance. Examples of annotation sets include 'all
+    # genes from refseq', and 'all variant annotations from ClinVar'.
+  "info": { # A map of additional read alignment information. This must be of the form
+      # map<string, string[]> (string key mapping to a list of string values).
+    "a_key": [
+      "",
+    ],
+  },
+  "name": "A String", # The display name for this annotation set.
+  "sourceUri": "A String", # The source URI describing the file from which this annotation set was
+      # generated, if any.
+  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
+      # set's annotations.
+  "type": "A String", # The type of annotations contained within this set.
+  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
+  "datasetId": "A String", # The dataset to which this annotation set belongs.
+}
+
+  updateMask: string, An optional mask specifying which fields to update. Mutable fields are
+name,
+source_uri, and
+info. If unspecified, all
+mutable fields will be updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations that share consistent
       # type information and provenance. Examples of annotation sets include 'all
       # genes from refseq', and 'all variant annotations from ClinVar'.
     "info": { # A map of additional read alignment information. This must be of the form
@@ -328,39 +360,7 @@
     "type": "A String", # The type of annotations contained within this set.
     "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
     "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }
-
-  updateMask: string, An optional mask specifying which fields to update. Mutable fields are
-name,
-source_uri, and
-info. If unspecified, all
-mutable fields will be updated.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent
-        # type information and provenance. Examples of annotation sets include 'all
-        # genes from refseq', and 'all variant annotations from ClinVar'.
-      "info": { # A map of additional read alignment information. This must be of the form
-          # map<string, string[]> (string key mapping to a list of string values).
-        "a_key": [
-          "",
-        ],
-      },
-      "name": "A String", # The display name for this annotation set.
-      "sourceUri": "A String", # The source URI describing the file from which this annotation set was
-          # generated, if any.
-      "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this
-          # set's annotations.
-      "type": "A String", # The type of annotations contained within this set.
-      "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-      "datasetId": "A String", # The dataset to which this annotation set belongs.
-    }</pre>
+  }</pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1.datasets.html b/docs/dyn/genomics_v1.datasets.html
index 7b35282..9779121 100644
--- a/docs/dyn/genomics_v1.datasets.html
+++ b/docs/dyn/genomics_v1.datasets.html
@@ -121,10 +121,10 @@
     # 
     # For more genomics resource definitions, see [Fundamentals of Google
     # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-  "id": "A String", # The server-generated dataset ID, unique across all datasets.
   "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+  "id": "A String", # The server-generated dataset ID, unique across all datasets.
   "name": "A String", # The dataset name.
+  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
 }
 
   x__xgafv: string, V1 error format.
@@ -139,10 +139,10 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
   }</pre>
 </div>
 
@@ -203,10 +203,10 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
   }</pre>
 </div>
 
@@ -271,7 +271,6 @@
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
@@ -296,6 +295,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -349,10 +349,10 @@
           #
           # For more genomics resource definitions, see [Fundamentals of Google
           # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-        "id": "A String", # The server-generated dataset ID, unique across all datasets.
         "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-        "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+        "id": "A String", # The server-generated dataset ID, unique across all datasets.
         "name": "A String", # The dataset name.
+        "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
       },
     ],
   }</pre>
@@ -391,10 +391,10 @@
     # 
     # For more genomics resource definitions, see [Fundamentals of Google
     # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-  "id": "A String", # The server-generated dataset ID, unique across all datasets.
   "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+  "id": "A String", # The server-generated dataset ID, unique across all datasets.
   "name": "A String", # The dataset name.
+  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
 }
 
   updateMask: string, An optional mask specifying which fields to update. At this time, the only
@@ -413,10 +413,10 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
   }</pre>
 </div>
 
@@ -474,7 +474,6 @@
         # For a description of IAM and its features, see the
         # [IAM developer's guide](https://cloud.google.com/iam).
       "bindings": [ # Associates a list of `members` to a `role`.
-          # Multiple `bindings` must not be specified for the same `role`.
           # `bindings` with no members will result in an error.
         { # Associates `members` with a `role`.
           "role": "A String", # Role that is assigned to `members`.
@@ -499,6 +498,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -560,7 +560,6 @@
       # For a description of IAM and its features, see the
       # [IAM developer's guide](https://cloud.google.com/iam).
     "bindings": [ # Associates a list of `members` to a `role`.
-        # Multiple `bindings` must not be specified for the same `role`.
         # `bindings` with no members will result in an error.
       { # Associates `members` with a `role`.
         "role": "A String", # Role that is assigned to `members`.
@@ -585,6 +584,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -684,10 +684,10 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
-    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "id": "A String", # The server-generated dataset ID, unique across all datasets.
     "name": "A String", # The dataset name.
+    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.operations.html b/docs/dyn/genomics_v1.operations.html
index ab6ddf1..6e7648a 100644
--- a/docs/dyn/genomics_v1.operations.html
+++ b/docs/dyn/genomics_v1.operations.html
@@ -157,7 +157,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -180,7 +180,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -218,7 +218,7 @@
   <pre>Lists operations that match the specified filter in the request.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The maximum number of results to return. If unspecified, defaults to
 256. The maximum value is 2048.
   filter: string, A string for filtering Operations.
@@ -249,6 +249,7 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
@@ -272,7 +273,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -295,7 +296,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -327,7 +328,6 @@
         "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. For example&#58; `operations/CJHU7Oi_ChDrveSpBRjfuL-qzoWAgEw`
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html b/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html
index badd82d..1f05cda 100644
--- a/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html
+++ b/docs/dyn/genomics_v1.readgroupsets.coveragebuckets.html
@@ -75,14 +75,14 @@
 <h1><a href="genomics_v1.html">Genomics API</a> . <a href="genomics_v1.readgroupsets.html">readgroupsets</a> . <a href="genomics_v1.readgroupsets.coveragebuckets.html">coveragebuckets</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(readGroupSetId, targetBucketWidth=None, pageSize=None, x__xgafv=None, end=None, start=None, referenceName=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(readGroupSetId, targetBucketWidth=None, x__xgafv=None, end=None, start=None, referenceName=None, pageToken=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists fixed width coverage buckets for a read group set, each of which</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="list">list(readGroupSetId, targetBucketWidth=None, pageSize=None, x__xgafv=None, end=None, start=None, referenceName=None, pageToken=None)</code>
+    <code class="details" id="list">list(readGroupSetId, targetBucketWidth=None, x__xgafv=None, end=None, start=None, referenceName=None, pageToken=None, pageSize=None)</code>
   <pre>Lists fixed width coverage buckets for a read group set, each of which
 correspond to a range of a reference sequence. Each bucket summarizes
 coverage information across its corresponding genomic range.
@@ -106,8 +106,6 @@
 of the target range, if specified. The smallest precomputed
 `bucketWidth` is currently 2048 base pairs; this is subject to
 change.
-  pageSize: integer, The maximum number of results to return in a single page. If unspecified,
-defaults to 1024. The maximum value is 2048.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -122,6 +120,8 @@
   pageToken: string, The continuation token, which is used to page through large result sets.
 To get the next page of results, set this parameter to the value of
 `nextPageToken` from the previous response.
+  pageSize: integer, The maximum number of results to return in a single page. If unspecified,
+defaults to 1024. The maximum value is 2048.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/genomics_v1.readgroupsets.html b/docs/dyn/genomics_v1.readgroupsets.html
index b011e26..199532e 100644
--- a/docs/dyn/genomics_v1.readgroupsets.html
+++ b/docs/dyn/genomics_v1.readgroupsets.html
@@ -152,16 +152,16 @@
     The object takes the form of:
 
 { # The read group set export request.
-    "exportUri": "A String", # Required. A Google Cloud Storage URI for the exported BAM file.
-        # The currently authenticated user must have write access to the new file.
-        # An error will be returned if the URI already contains data.
+    "projectId": "A String", # Required. The Google Cloud project ID that owns this
+        # export. The caller must have WRITE access to this project.
     "referenceNames": [ # The reference names to export. If this is not specified, all reference
         # sequences, including unmapped reads, are exported.
         # Use `*` to export only unmapped reads.
       "A String",
     ],
-    "projectId": "A String", # Required. The Google Cloud project ID that owns this
-        # export. The caller must have WRITE access to this project.
+    "exportUri": "A String", # Required. A Google Cloud Storage URI for the exported BAM file.
+        # The currently authenticated user must have write access to the new file.
+        # An error will be returned if the URI already contains data.
   }
 
   x__xgafv: string, V1 error format.
@@ -194,7 +194,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -217,7 +217,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -303,13 +303,13 @@
             # only the first read group in a returned set will have this field
             # populated.
           {
+            "prevProgramId": "A String", # The ID of the program run before this one.
             "commandLine": "A String", # The command line used to run this program.
             "version": "A String", # The version of the program run.
             "id": "A String", # The user specified locally unique ID of the program. Used along with
                 # `prevProgramId` to define an ordering between programs.
             "name": "A String", # The display name of the program. This is typically the colloquial name of
                 # the tool used, for example 'bwa' or 'picard'.
-            "prevProgramId": "A String", # The ID of the program run before this one.
           },
         ],
         "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
@@ -366,10 +366,8 @@
     The object takes the form of:
 
 { # The read group set import request.
-    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if
-        # any. The reference names of this reference set must be a superset of those
-        # found in the imported file headers. If no reference set id is provided, a
-        # best effort is made to associate with a matching reference set.
+    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read
+        # group sets.
     "sourceUris": [ # A list of URIs pointing at [BAM
         # files](https://samtools.github.io/hts-specs/SAMv1.pdf)
         # in Google Cloud Storage.
@@ -382,8 +380,10 @@
         # the import immediately after the files are created.
       "A String",
     ],
-    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read
-        # group sets.
+    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if
+        # any. The reference names of this reference set must be a superset of those
+        # found in the imported file headers. If no reference set id is provided, a
+        # best effort is made to associate with a matching reference set.
     "datasetId": "A String", # Required. The ID of the dataset these read group sets will belong to. The
         # caller must have WRITE permissions to this dataset.
   }
@@ -418,7 +418,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -441,7 +441,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -525,13 +525,13 @@
           # only the first read group in a returned set will have this field
           # populated.
         {
+          "prevProgramId": "A String", # The ID of the program run before this one.
           "commandLine": "A String", # The command line used to run this program.
           "version": "A String", # The version of the program run.
           "id": "A String", # The user specified locally unique ID of the program. Used along with
               # `prevProgramId` to define an ordering between programs.
           "name": "A String", # The display name of the program. This is typically the colloquial name of
               # the tool used, for example 'bwa' or 'picard'.
-          "prevProgramId": "A String", # The ID of the program run before this one.
         },
       ],
       "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
@@ -611,13 +611,13 @@
             # only the first read group in a returned set will have this field
             # populated.
           {
+            "prevProgramId": "A String", # The ID of the program run before this one.
             "commandLine": "A String", # The command line used to run this program.
             "version": "A String", # The version of the program run.
             "id": "A String", # The user specified locally unique ID of the program. Used along with
                 # `prevProgramId` to define an ordering between programs.
             "name": "A String", # The display name of the program. This is typically the colloquial name of
                 # the tool used, for example 'bwa' or 'picard'.
-            "prevProgramId": "A String", # The ID of the program run before this one.
           },
         ],
         "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
@@ -725,13 +725,13 @@
                 # only the first read group in a returned set will have this field
                 # populated.
               {
+                "prevProgramId": "A String", # The ID of the program run before this one.
                 "commandLine": "A String", # The command line used to run this program.
                 "version": "A String", # The version of the program run.
                 "id": "A String", # The user specified locally unique ID of the program. Used along with
                     # `prevProgramId` to define an ordering between programs.
                 "name": "A String", # The display name of the program. This is typically the colloquial name of
                     # the tool used, for example 'bwa' or 'picard'.
-                "prevProgramId": "A String", # The ID of the program run before this one.
               },
             ],
             "sampleId": "A String", # A client-supplied sample identifier for the reads in this read group.
diff --git a/docs/dyn/genomics_v1.reads.html b/docs/dyn/genomics_v1.reads.html
index e8c2fb7..2fbe447 100644
--- a/docs/dyn/genomics_v1.reads.html
+++ b/docs/dyn/genomics_v1.reads.html
@@ -122,11 +122,11 @@
     ],
     "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
         # defaults to 256. The maximum value is 2048.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If
+        # specified, `referenceName` must also be specified.
     "pageToken": "A String", # The continuation token, which is used to page through large result sets.
         # To get the next page of results, set this parameter to the value of
         # `nextPageToken` from the previous response.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If
-        # specified, `referenceName` must also be specified.
     "referenceName": "A String", # The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to
         # `*`, only unmapped reads are returned. If unspecified, all reads (mapped
         # and unmapped) are returned.
@@ -243,17 +243,6 @@
           ],
         },
         "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400).
-        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some # The mapping of the primary alignment of the
-            # `(readNumber+1)%numberReads` read in the fragment. It replaces
-            # mate position and mate strand in SAM.
-            # already known reference. For now, represents a genomic position as a
-            # reference name, a base number on that reference (0-based), and a
-            # determination of forward or reverse strand.
-          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward
-              # strand.
-          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
-        },
         "readGroupSetId": "A String", # The ID of the read group set this read belongs to. A read belongs to
             # exactly one read group set.
         "alignedQuality": [ # The quality of the read sequence contained in this alignment record
@@ -268,8 +257,8 @@
         "failedVendorQualityChecks": True or False, # Whether this read did not pass filters, such as platform or vendor quality
             # controls (SAM flag 0x200).
         "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
-        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This
-            # field replaces SAM flag 0x40 and 0x80.
+        "id": "A String", # The server-generated read ID, unique across all reads. This is different
+            # from the `fragmentName`.
         "properPlacement": True or False, # The orientation and the distance between reads from the fragment are
             # consistent with the sequencing protocol (SAM flag 0x2).
         "readGroupId": "A String", # The ID of the read group this read belongs to. A read belongs to exactly
@@ -289,6 +278,12 @@
             # represent the bases for its respective linear alignment.
         "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
         "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
+        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100.
+            # A secondary alignment represents an alternative to the primary alignment
+            # for this read. Aligners may return secondary alignments if a read can map
+            # ambiguously to multiple coordinates in the genome. By convention, each read
+            # has one and only one alignment where both `secondaryAlignment`
+            # and `supplementaryAlignment` are false.
         "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record,
             # **without CIGAR operations applied** (equivalent to SEQ in SAM).
             # `alignedSequence` and `alignedQuality` may be
@@ -296,8 +291,8 @@
             # alignment is part of a chimeric alignment, or if the read was trimmed. When
             # this occurs, the CIGAR for this read will begin/end with a hard clip
             # operator that will indicate the length of the excised sequence.
-        "id": "A String", # The server-generated read ID, unique across all reads. This is different
-            # from the `fragmentName`.
+        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This
+            # field replaces SAM flag 0x40 and 0x80.
         "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the # The linear alignment for this alignment record. This field is null for
             # unmapped reads.
             # mapped position and local alignment of the read to the reference.
@@ -327,12 +322,17 @@
               # Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to
               # the nearest integer.
         },
-        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100.
-            # A secondary alignment represents an alternative to the primary alignment
-            # for this read. Aligners may return secondary alignments if a read can map
-            # ambiguously to multiple coordinates in the genome. By convention, each read
-            # has one and only one alignment where both `secondaryAlignment`
-            # and `supplementaryAlignment` are false.
+        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some # The mapping of the primary alignment of the
+            # `(readNumber+1)%numberReads` read in the fragment. It replaces
+            # mate position and mate strand in SAM.
+            # already known reference. For now, represents a genomic position as a
+            # reference name, a base number on that reference (0-based), and a
+            # determination of forward or reverse strand.
+          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
+          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward
+              # strand.
+          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
+        },
       },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1.references.bases.html b/docs/dyn/genomics_v1.references.bases.html
index 1821ccd..18fb4be 100644
--- a/docs/dyn/genomics_v1.references.bases.html
+++ b/docs/dyn/genomics_v1.references.bases.html
@@ -115,10 +115,10 @@
     "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
         # Provide this value in a subsequent request to return the next page of
         # results. This field will be empty if there aren't any additional results.
-    "sequence": "A String", # A substring of the bases that make up this reference.
     "offset": "A String", # The offset position (0-based) of the given `sequence` from the
         # start of this `Reference`. This value will differ for each page
         # in a paginated request.
+    "sequence": "A String", # A substring of the bases that make up this reference.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.referencesets.html b/docs/dyn/genomics_v1.referencesets.html
index 3caae53..1921094 100644
--- a/docs/dyn/genomics_v1.referencesets.html
+++ b/docs/dyn/genomics_v1.referencesets.html
@@ -124,17 +124,17 @@
         # with a version number, for example `NC_000001.11`.
       "A String",
     ],
-    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)
-        # indicating the species which this reference set is intended to model. Note
-        # that contained references may specify a different `ncbiTaxonId`, as
-        # assemblies may contain reference sequences which do not belong to the
-        # modeled species, for example EBV in a human reference genome.
-    "id": "A String", # The server-generated reference set ID, unique across all reference sets.
     "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The
         # checksum is computed by sorting all lower case hexidecimal string
         # `reference.md5checksum` (for all reference in this set) in
         # ascending lexicographic order, concatenating, and taking the MD5 of that
         # value. The resulting value is represented in lower case hexadecimal format.
+    "id": "A String", # The server-generated reference set ID, unique across all reference sets.
+    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)
+        # indicating the species which this reference set is intended to model. Note
+        # that contained references may specify a different `ncbiTaxonId`, as
+        # assemblies may contain reference sequences which do not belong to the
+        # modeled species, for example EBV in a human reference genome.
   }</pre>
 </div>
 
@@ -158,8 +158,9 @@
         # md5checksum matches exactly.
       "A String",
     ],
-    "assemblyId": "A String", # If present, return reference sets for which a substring of their
-        # `assemblyId` matches this string (case insensitive).
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
+        # To get the next page of results, set this parameter to the value of
+        # `nextPageToken` from the previous response.
     "accessions": [ # If present, return reference sets for which a prefix of any of
         # sourceAccessions
         # match any of these strings. Accession numbers typically have a main number
@@ -168,9 +169,8 @@
     ],
     "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
         # defaults to 1024. The maximum value is 4096.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets.
-        # To get the next page of results, set this parameter to the value of
-        # `nextPageToken` from the previous response.
+    "assemblyId": "A String", # If present, return reference sets for which a substring of their
+        # `assemblyId` matches this string (case insensitive).
   }
 
   x__xgafv: string, V1 error format.
@@ -205,17 +205,17 @@
             # with a version number, for example `NC_000001.11`.
           "A String",
         ],
-        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)
-            # indicating the species which this reference set is intended to model. Note
-            # that contained references may specify a different `ncbiTaxonId`, as
-            # assemblies may contain reference sequences which do not belong to the
-            # modeled species, for example EBV in a human reference genome.
-        "id": "A String", # The server-generated reference set ID, unique across all reference sets.
         "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The
             # checksum is computed by sorting all lower case hexidecimal string
             # `reference.md5checksum` (for all reference in this set) in
             # ascending lexicographic order, concatenating, and taking the MD5 of that
             # value. The resulting value is represented in lower case hexadecimal format.
+        "id": "A String", # The server-generated reference set ID, unique across all reference sets.
+        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human)
+            # indicating the species which this reference set is intended to model. Note
+            # that contained references may specify a different `ncbiTaxonId`, as
+            # assemblies may contain reference sequences which do not belong to the
+            # modeled species, for example EBV in a human reference genome.
       },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1.variants.html b/docs/dyn/genomics_v1.variants.html
index 566c83f..5724154 100644
--- a/docs/dyn/genomics_v1.variants.html
+++ b/docs/dyn/genomics_v1.variants.html
@@ -178,8 +178,7 @@
     },
   ],
   "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-  "referenceBases": "A String", # The reference bases for this variant. They start at the given
-      # position.
+  "id": "A String", # The server-generated variant ID, unique across all variants.
   "filter": [ # A list of filters (normally quality filters) this variant has failed.
       # `PASS` indicates this variant has passed all filters.
     "A String",
@@ -196,7 +195,8 @@
       # (such as `chr20` or `X`)
   "quality": 3.14, # A measure of how likely this variant is to be real.
       # A higher value is better.
-  "id": "A String", # The server-generated variant ID, unique across all variants.
+  "referenceBases": "A String", # The reference bases for this variant. They start at the given
+      # position.
 }
 
   x__xgafv: string, V1 error format.
@@ -274,8 +274,7 @@
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given
-        # position.
+    "id": "A String", # The server-generated variant ID, unique across all variants.
     "filter": [ # A list of filters (normally quality filters) this variant has failed.
         # `PASS` indicates this variant has passed all filters.
       "A String",
@@ -292,7 +291,8 @@
         # (such as `chr20` or `X`)
     "quality": 3.14, # A measure of how likely this variant is to be real.
         # A higher value is better.
-    "id": "A String", # The server-generated variant ID, unique across all variants.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given
+        # position.
   }</pre>
 </div>
 
@@ -411,8 +411,7 @@
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given
-        # position.
+    "id": "A String", # The server-generated variant ID, unique across all variants.
     "filter": [ # A list of filters (normally quality filters) this variant has failed.
         # `PASS` indicates this variant has passed all filters.
       "A String",
@@ -429,7 +428,8 @@
         # (such as `chr20` or `X`)
     "quality": 3.14, # A measure of how likely this variant is to be real.
         # A higher value is better.
-    "id": "A String", # The server-generated variant ID, unique across all variants.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given
+        # position.
   }</pre>
 </div>
 
@@ -460,14 +460,8 @@
 
 { # The variant data import request.
     "variantSetId": "A String", # Required. The variant set to which variant data should be imported.
-    "normalizeReferenceNames": True or False, # Convert reference names to the canonical representation.
-        # hg19 haploytypes (those reference names containing "_hap")
-        # are not modified in any way.
-        # All other reference names are modified according to the following rules:
-        # The reference name is capitalized.
-        # The "chr" prefix is dropped for all autosomes and sex chromsomes.
-        # For example "chr17" becomes "17" and "chrX" becomes "X".
-        # All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
+    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to
+        # to `VCF`.
     "sourceUris": [ # A list of URIs referencing variant files in Google Cloud Storage. URIs can
         # include wildcards [as described
         # here](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
@@ -479,8 +473,14 @@
         # generated by the resulting import job.
       "a_key": "A String",
     },
-    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to
-        # to `VCF`.
+    "normalizeReferenceNames": True or False, # Convert reference names to the canonical representation.
+        # hg19 haploytypes (those reference names containing "_hap")
+        # are not modified in any way.
+        # All other reference names are modified according to the following rules:
+        # The reference name is capitalized.
+        # The "chr" prefix is dropped for all autosomes and sex chromsomes.
+        # For example "chr17" becomes "17" and "chrX" becomes "X".
+        # All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
   }
 
   x__xgafv: string, V1 error format.
@@ -513,7 +513,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -536,7 +536,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -737,8 +737,7 @@
           },
         ],
         "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given
-            # position.
+        "id": "A String", # The server-generated variant ID, unique across all variants.
         "filter": [ # A list of filters (normally quality filters) this variant has failed.
             # `PASS` indicates this variant has passed all filters.
           "A String",
@@ -755,7 +754,8 @@
             # (such as `chr20` or `X`)
         "quality": 3.14, # A measure of how likely this variant is to be real.
             # A higher value is better.
-        "id": "A String", # The server-generated variant ID, unique across all variants.
+        "referenceBases": "A String", # The reference bases for this variant. They start at the given
+            # position.
       },
     ],
     "infoMergeConfig": { # A mapping between info field keys and the InfoMergeOperations to
@@ -867,8 +867,7 @@
     },
   ],
   "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-  "referenceBases": "A String", # The reference bases for this variant. They start at the given
-      # position.
+  "id": "A String", # The server-generated variant ID, unique across all variants.
   "filter": [ # A list of filters (normally quality filters) this variant has failed.
       # `PASS` indicates this variant has passed all filters.
     "A String",
@@ -885,7 +884,8 @@
       # (such as `chr20` or `X`)
   "quality": 3.14, # A measure of how likely this variant is to be real.
       # A higher value is better.
-  "id": "A String", # The server-generated variant ID, unique across all variants.
+  "referenceBases": "A String", # The reference bases for this variant. They start at the given
+      # position.
 }
 
   x__xgafv: string, V1 error format.
@@ -967,8 +967,7 @@
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given
-        # position.
+    "id": "A String", # The server-generated variant ID, unique across all variants.
     "filter": [ # A list of filters (normally quality filters) this variant has failed.
         # `PASS` indicates this variant has passed all filters.
       "A String",
@@ -985,7 +984,8 @@
         # (such as `chr20` or `X`)
     "quality": 3.14, # A measure of how likely this variant is to be real.
         # A higher value is better.
-    "id": "A String", # The server-generated variant ID, unique across all variants.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given
+        # position.
   }</pre>
 </div>
 
@@ -1018,16 +1018,16 @@
     "pageToken": "A String", # The continuation token, which is used to page through large result sets.
         # To get the next page of results, set this parameter to the value of
         # `nextPageToken` from the previous response.
-    "callSetIds": [ # Only return variant calls which belong to call sets with these ids.
-        # Leaving this blank returns all variant calls. If a variant has no
-        # calls belonging to any of these call sets, it won't be returned at all.
+    "variantSetIds": [ # At most one variant set ID must be provided. Only variants from this
+        # variant set will be returned. If omitted, a call set id must be included in
+        # the request.
       "A String",
     ],
     "variantName": "A String", # Only return variants which have exactly this name.
     "referenceName": "A String", # Required. Only return variants in this reference sequence.
-    "variantSetIds": [ # At most one variant set ID must be provided. Only variants from this
-        # variant set will be returned. If omitted, a call set id must be included in
-        # the request.
+    "callSetIds": [ # Only return variant calls which belong to call sets with these ids.
+        # Leaving this blank returns all variant calls. If a variant has no
+        # calls belonging to any of these call sets, it won't be returned at all.
       "A String",
     ],
   }
@@ -1112,8 +1112,7 @@
           },
         ],
         "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given
-            # position.
+        "id": "A String", # The server-generated variant ID, unique across all variants.
         "filter": [ # A list of filters (normally quality filters) this variant has failed.
             # `PASS` indicates this variant has passed all filters.
           "A String",
@@ -1130,7 +1129,8 @@
             # (such as `chr20` or `X`)
         "quality": 3.14, # A measure of how likely this variant is to be real.
             # A higher value is better.
-        "id": "A String", # The server-generated variant ID, unique across all variants.
+        "referenceBases": "A String", # The reference bases for this variant. They start at the given
+            # position.
       },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1.variantsets.html b/docs/dyn/genomics_v1.variantsets.html
index 4354c92..b5a7047 100644
--- a/docs/dyn/genomics_v1.variantsets.html
+++ b/docs/dyn/genomics_v1.variantsets.html
@@ -273,18 +273,18 @@
     The object takes the form of:
 
 { # The variant data export request.
-    "projectId": "A String", # Required. The Google Cloud project ID that owns the destination
-        # BigQuery dataset. The caller must have WRITE access to this project.  This
-        # project will also own the resulting export job.
+    "bigqueryDataset": "A String", # Required. The BigQuery dataset to export data to. This dataset must already
+        # exist. Note that this is distinct from the Genomics concept of "dataset".
     "bigqueryTable": "A String", # Required. The BigQuery table to export data to.
         # If the table doesn't exist, it will be created. If it already exists, it
         # will be overwritten.
-    "bigqueryDataset": "A String", # Required. The BigQuery dataset to export data to. This dataset must already
-        # exist. Note that this is distinct from the Genomics concept of "dataset".
     "callSetIds": [ # If provided, only variant call information from the specified call sets
         # will be exported. By default all variant calls are exported.
       "A String",
     ],
+    "projectId": "A String", # Required. The Google Cloud project ID that owns the destination
+        # BigQuery dataset. The caller must have WRITE access to this project.  This
+        # project will also own the resulting export job.
     "format": "A String", # The format for the exported data.
   }
 
@@ -318,7 +318,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -341,7 +341,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
diff --git a/docs/dyn/genomics_v1alpha2.operations.html b/docs/dyn/genomics_v1alpha2.operations.html
index 98d2f66..25da44e 100644
--- a/docs/dyn/genomics_v1alpha2.operations.html
+++ b/docs/dyn/genomics_v1alpha2.operations.html
@@ -157,7 +157,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -180,7 +180,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -218,7 +218,7 @@
   <pre>Lists operations that match the specified filter in the request.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The maximum number of results to return. If unspecified, defaults to
 256. The maximum value is 2048.
   filter: string, A string for filtering Operations.
@@ -272,7 +272,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -295,7 +295,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
diff --git a/docs/dyn/genomics_v1alpha2.pipelines.html b/docs/dyn/genomics_v1alpha2.pipelines.html
index 75c9eab..ceced27 100644
--- a/docs/dyn/genomics_v1alpha2.pipelines.html
+++ b/docs/dyn/genomics_v1alpha2.pipelines.html
@@ -222,6 +222,9 @@
       "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
           # If `localCopy` is present, then this must be a Google Cloud Storage path
           # beginning with `gs://`.
+      "description": "A String", # Human-readable description.
+      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+          # as the key to the input and output maps in RunPipeline.
       "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
           # `LocalCopy` indicates where on the VM the file should be. The value
           # given to this parameter (either at runtime or using `defaultValue`)
@@ -234,9 +237,6 @@
             # Resources field, or "boot", which represents the Docker
             # instance's boot disk and has a mount point of `/`.
       },
-      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-          # as the key to the input and output maps in RunPipeline.
-      "description": "A String", # Human-readable description.
     },
   ],
   "inputParameters": [ # Input parameters of the pipeline.
@@ -334,6 +334,9 @@
       "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
           # If `localCopy` is present, then this must be a Google Cloud Storage path
           # beginning with `gs://`.
+      "description": "A String", # Human-readable description.
+      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+          # as the key to the input and output maps in RunPipeline.
       "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
           # `LocalCopy` indicates where on the VM the file should be. The value
           # given to this parameter (either at runtime or using `defaultValue`)
@@ -346,9 +349,6 @@
             # Resources field, or "boot", which represents the Docker
             # instance's boot disk and has a mount point of `/`.
       },
-      "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-          # as the key to the input and output maps in RunPipeline.
-      "description": "A String", # Human-readable description.
     },
   ],
   "docker": { # The Docker execuctor specification. # Specifies the docker run information.
@@ -388,18 +388,19 @@
         # if false at create time.
     "disks": [ # Disks to attach.
       { # A Google Compute Engine disk resource specification.
-        "name": "A String", # Required. The name of the disk that can be used in the pipeline
-            # parameters. Must be 1 - 63 characters.
-            # The name "boot" is reserved for system use.
-        "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
-            # This field is not applicable for local SSD.
         "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
             # of the pipeline run, regardless of what this field is set to.
+        "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+            # This field is not applicable for local SSD.
         "source": "A String", # The full or partial URL of the persistent disk to attach. See
             # https://cloud.google.com/compute/docs/reference/latest/instances#resource
             # and
             # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
             # for more details.
+        "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See
+            # https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances
+            # for more details.
+            # Can only be set at create time.
         "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
             # Specifies the path in the docker container where files on
             # this disk should be located. For example, if `mountPoint`
@@ -407,6 +408,9 @@
             # `inputs/file.txt`, the docker container can access the data at
             # `/mnt/disk/inputs/file.txt`.
         "type": "A String", # Required. The type of the disk to create.
+        "name": "A String", # Required. The name of the disk that can be used in the pipeline
+            # parameters. Must be 1 - 63 characters.
+            # The name "boot" is reserved for system use.
       },
     ],
     "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
@@ -537,6 +541,9 @@
         "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
             # If `localCopy` is present, then this must be a Google Cloud Storage path
             # beginning with `gs://`.
+        "description": "A String", # Human-readable description.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
             # `LocalCopy` indicates where on the VM the file should be. The value
             # given to this parameter (either at runtime or using `defaultValue`)
@@ -549,9 +556,6 @@
               # Resources field, or "boot", which represents the Docker
               # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-            # as the key to the input and output maps in RunPipeline.
-        "description": "A String", # Human-readable description.
       },
     ],
     "inputParameters": [ # Input parameters of the pipeline.
@@ -649,6 +653,9 @@
         "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
             # If `localCopy` is present, then this must be a Google Cloud Storage path
             # beginning with `gs://`.
+        "description": "A String", # Human-readable description.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
             # `LocalCopy` indicates where on the VM the file should be. The value
             # given to this parameter (either at runtime or using `defaultValue`)
@@ -661,9 +668,6 @@
               # Resources field, or "boot", which represents the Docker
               # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-            # as the key to the input and output maps in RunPipeline.
-        "description": "A String", # Human-readable description.
       },
     ],
     "docker": { # The Docker execuctor specification. # Specifies the docker run information.
@@ -703,18 +707,19 @@
           # if false at create time.
       "disks": [ # Disks to attach.
         { # A Google Compute Engine disk resource specification.
-          "name": "A String", # Required. The name of the disk that can be used in the pipeline
-              # parameters. Must be 1 - 63 characters.
-              # The name "boot" is reserved for system use.
-          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
-              # This field is not applicable for local SSD.
           "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
               # of the pipeline run, regardless of what this field is set to.
+          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+              # This field is not applicable for local SSD.
           "source": "A String", # The full or partial URL of the persistent disk to attach. See
               # https://cloud.google.com/compute/docs/reference/latest/instances#resource
               # and
               # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
               # for more details.
+          "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See
+              # https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances
+              # for more details.
+              # Can only be set at create time.
           "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
               # Specifies the path in the docker container where files on
               # this disk should be located. For example, if `mountPoint`
@@ -722,6 +727,9 @@
               # `inputs/file.txt`, the docker container can access the data at
               # `/mnt/disk/inputs/file.txt`.
           "type": "A String", # Required. The type of the disk to create.
+          "name": "A String", # Required. The name of the disk that can be used in the pipeline
+              # parameters. Must be 1 - 63 characters.
+              # The name "boot" is reserved for system use.
         },
       ],
       "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
@@ -891,6 +899,9 @@
         "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
             # If `localCopy` is present, then this must be a Google Cloud Storage path
             # beginning with `gs://`.
+        "description": "A String", # Human-readable description.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
             # `LocalCopy` indicates where on the VM the file should be. The value
             # given to this parameter (either at runtime or using `defaultValue`)
@@ -903,9 +914,6 @@
               # Resources field, or "boot", which represents the Docker
               # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-            # as the key to the input and output maps in RunPipeline.
-        "description": "A String", # Human-readable description.
       },
     ],
     "inputParameters": [ # Input parameters of the pipeline.
@@ -1003,6 +1011,9 @@
         "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
             # If `localCopy` is present, then this must be a Google Cloud Storage path
             # beginning with `gs://`.
+        "description": "A String", # Human-readable description.
+        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+            # as the key to the input and output maps in RunPipeline.
         "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
             # `LocalCopy` indicates where on the VM the file should be. The value
             # given to this parameter (either at runtime or using `defaultValue`)
@@ -1015,9 +1026,6 @@
               # Resources field, or "boot", which represents the Docker
               # instance's boot disk and has a mount point of `/`.
         },
-        "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-            # as the key to the input and output maps in RunPipeline.
-        "description": "A String", # Human-readable description.
       },
     ],
     "docker": { # The Docker execuctor specification. # Specifies the docker run information.
@@ -1057,18 +1065,19 @@
           # if false at create time.
       "disks": [ # Disks to attach.
         { # A Google Compute Engine disk resource specification.
-          "name": "A String", # Required. The name of the disk that can be used in the pipeline
-              # parameters. Must be 1 - 63 characters.
-              # The name "boot" is reserved for system use.
-          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
-              # This field is not applicable for local SSD.
           "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
               # of the pipeline run, regardless of what this field is set to.
+          "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+              # This field is not applicable for local SSD.
           "source": "A String", # The full or partial URL of the persistent disk to attach. See
               # https://cloud.google.com/compute/docs/reference/latest/instances#resource
               # and
               # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
               # for more details.
+          "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See
+              # https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances
+              # for more details.
+              # Can only be set at create time.
           "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
               # Specifies the path in the docker container where files on
               # this disk should be located. For example, if `mountPoint`
@@ -1076,6 +1085,9 @@
               # `inputs/file.txt`, the docker container can access the data at
               # `/mnt/disk/inputs/file.txt`.
           "type": "A String", # Required. The type of the disk to create.
+          "name": "A String", # Required. The name of the disk that can be used in the pipeline
+              # parameters. Must be 1 - 63 characters.
+              # The name "boot" is reserved for system use.
         },
       ],
       "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
@@ -1276,6 +1288,9 @@
             "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
                 # If `localCopy` is present, then this must be a Google Cloud Storage path
                 # beginning with `gs://`.
+            "description": "A String", # Human-readable description.
+            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+                # as the key to the input and output maps in RunPipeline.
             "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
                 # `LocalCopy` indicates where on the VM the file should be. The value
                 # given to this parameter (either at runtime or using `defaultValue`)
@@ -1288,9 +1303,6 @@
                   # Resources field, or "boot", which represents the Docker
                   # instance's boot disk and has a mount point of `/`.
             },
-            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-                # as the key to the input and output maps in RunPipeline.
-            "description": "A String", # Human-readable description.
           },
         ],
         "inputParameters": [ # Input parameters of the pipeline.
@@ -1388,6 +1400,9 @@
             "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
                 # If `localCopy` is present, then this must be a Google Cloud Storage path
                 # beginning with `gs://`.
+            "description": "A String", # Human-readable description.
+            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+                # as the key to the input and output maps in RunPipeline.
             "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
                 # `LocalCopy` indicates where on the VM the file should be. The value
                 # given to this parameter (either at runtime or using `defaultValue`)
@@ -1400,9 +1415,6 @@
                   # Resources field, or "boot", which represents the Docker
                   # instance's boot disk and has a mount point of `/`.
             },
-            "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-                # as the key to the input and output maps in RunPipeline.
-            "description": "A String", # Human-readable description.
           },
         ],
         "docker": { # The Docker execuctor specification. # Specifies the docker run information.
@@ -1442,18 +1454,19 @@
               # if false at create time.
           "disks": [ # Disks to attach.
             { # A Google Compute Engine disk resource specification.
-              "name": "A String", # Required. The name of the disk that can be used in the pipeline
-                  # parameters. Must be 1 - 63 characters.
-                  # The name "boot" is reserved for system use.
-              "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
-                  # This field is not applicable for local SSD.
               "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
                   # of the pipeline run, regardless of what this field is set to.
+              "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+                  # This field is not applicable for local SSD.
               "source": "A String", # The full or partial URL of the persistent disk to attach. See
                   # https://cloud.google.com/compute/docs/reference/latest/instances#resource
                   # and
                   # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
                   # for more details.
+              "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See
+                  # https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances
+                  # for more details.
+                  # Can only be set at create time.
               "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
                   # Specifies the path in the docker container where files on
                   # this disk should be located. For example, if `mountPoint`
@@ -1461,6 +1474,9 @@
                   # `inputs/file.txt`, the docker container can access the data at
                   # `/mnt/disk/inputs/file.txt`.
               "type": "A String", # Required. The type of the disk to create.
+              "name": "A String", # Required. The name of the disk that can be used in the pipeline
+                  # parameters. Must be 1 - 63 characters.
+                  # The name "boot" is reserved for system use.
             },
           ],
           "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
@@ -1592,18 +1608,19 @@
             # if false at create time.
         "disks": [ # Disks to attach.
           { # A Google Compute Engine disk resource specification.
-            "name": "A String", # Required. The name of the disk that can be used in the pipeline
-                # parameters. Must be 1 - 63 characters.
-                # The name "boot" is reserved for system use.
-            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
-                # This field is not applicable for local SSD.
             "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
                 # of the pipeline run, regardless of what this field is set to.
+            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+                # This field is not applicable for local SSD.
             "source": "A String", # The full or partial URL of the persistent disk to attach. See
                 # https://cloud.google.com/compute/docs/reference/latest/instances#resource
                 # and
                 # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
                 # for more details.
+            "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See
+                # https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances
+                # for more details.
+                # Can only be set at create time.
             "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
                 # Specifies the path in the docker container where files on
                 # this disk should be located. For example, if `mountPoint`
@@ -1611,6 +1628,9 @@
                 # `inputs/file.txt`, the docker container can access the data at
                 # `/mnt/disk/inputs/file.txt`.
             "type": "A String", # Required. The type of the disk to create.
+            "name": "A String", # Required. The name of the disk that can be used in the pipeline
+                # parameters. Must be 1 - 63 characters.
+                # The name "boot" is reserved for system use.
           },
         ],
         "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
@@ -1731,6 +1751,9 @@
           "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
               # If `localCopy` is present, then this must be a Google Cloud Storage path
               # beginning with `gs://`.
+          "description": "A String", # Human-readable description.
+          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+              # as the key to the input and output maps in RunPipeline.
           "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
               # `LocalCopy` indicates where on the VM the file should be. The value
               # given to this parameter (either at runtime or using `defaultValue`)
@@ -1743,9 +1766,6 @@
                 # Resources field, or "boot", which represents the Docker
                 # instance's boot disk and has a mount point of `/`.
           },
-          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-              # as the key to the input and output maps in RunPipeline.
-          "description": "A String", # Human-readable description.
         },
       ],
       "inputParameters": [ # Input parameters of the pipeline.
@@ -1843,6 +1863,9 @@
           "defaultValue": "A String", # The default value for this parameter. Can be overridden at runtime.
               # If `localCopy` is present, then this must be a Google Cloud Storage path
               # beginning with `gs://`.
+          "description": "A String", # Human-readable description.
+          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
+              # as the key to the input and output maps in RunPipeline.
           "localCopy": { # LocalCopy defines how a remote file should be copied to and from the VM. # If present, this parameter is marked for copying to and from the VM.
               # `LocalCopy` indicates where on the VM the file should be. The value
               # given to this parameter (either at runtime or using `defaultValue`)
@@ -1855,9 +1878,6 @@
                 # Resources field, or "boot", which represents the Docker
                 # instance's boot disk and has a mount point of `/`.
           },
-          "name": "A String", # Required. Name of the parameter - the pipeline runner uses this string
-              # as the key to the input and output maps in RunPipeline.
-          "description": "A String", # Human-readable description.
         },
       ],
       "docker": { # The Docker execuctor specification. # Specifies the docker run information.
@@ -1897,18 +1917,19 @@
             # if false at create time.
         "disks": [ # Disks to attach.
           { # A Google Compute Engine disk resource specification.
-            "name": "A String", # Required. The name of the disk that can be used in the pipeline
-                # parameters. Must be 1 - 63 characters.
-                # The name "boot" is reserved for system use.
-            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
-                # This field is not applicable for local SSD.
             "autoDelete": True or False, # Deprecated. Disks created by the Pipelines API will be deleted at the end
                 # of the pipeline run, regardless of what this field is set to.
+            "sizeGb": 42, # The size of the disk. Defaults to 500 (GB).
+                # This field is not applicable for local SSD.
             "source": "A String", # The full or partial URL of the persistent disk to attach. See
                 # https://cloud.google.com/compute/docs/reference/latest/instances#resource
                 # and
                 # https://cloud.google.com/compute/docs/disks/persistent-disks#snapshots
                 # for more details.
+            "readOnly": True or False, # Specifies how a sourced-base persistent disk will be mounted. See
+                # https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances
+                # for more details.
+                # Can only be set at create time.
             "mountPoint": "A String", # Required at create time and cannot be overridden at run time.
                 # Specifies the path in the docker container where files on
                 # this disk should be located. For example, if `mountPoint`
@@ -1916,6 +1937,9 @@
                 # `inputs/file.txt`, the docker container can access the data at
                 # `/mnt/disk/inputs/file.txt`.
             "type": "A String", # Required. The type of the disk to create.
+            "name": "A String", # Required. The name of the disk that can be used in the pipeline
+                # parameters. Must be 1 - 63 characters.
+                # The name "boot" is reserved for system use.
           },
         ],
         "bootDiskSizeGb": 42, # The size of the boot disk. Defaults to 10 (GB).
@@ -1960,7 +1984,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -1983,7 +2007,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
diff --git a/docs/dyn/genomics_v1beta2.annotationSets.html b/docs/dyn/genomics_v1beta2.annotationSets.html
deleted file mode 100644
index c6d4d5d..0000000
--- a/docs/dyn/genomics_v1beta2.annotationSets.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.annotationSets.html">annotationSets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates a new annotation set. Caller must have WRITE permission for the associated dataset.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(annotationSetId)</a></code></p>
-<p class="firstline">Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.</p>
-<p class="toc_element">
-  <code><a href="#get">get(annotationSetId)</a></code></p>
-<p class="firstline">Gets an annotation set. Caller must have READ permission for the associated dataset.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(annotationSetId, body)</a></code></p>
-<p class="firstline">Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Searches for annotation sets that match the given criteria. Annotation sets are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotation sets in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried datasets.</p>
-<p class="toc_element">
-  <code><a href="#update">update(annotationSetId, body)</a></code></p>
-<p class="firstline">Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates a new annotation set. Caller must have WRITE permission for the associated dataset.
-
-The following fields must be provided when creating an annotation set:  
-- datasetId 
-- referenceSetId  
-All other fields may be optionally specified, unless documented as being server-generated (for example, the id field).
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The display name for this annotation set.
-  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-  "type": "A String", # The type of annotations contained within this set.
-  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-  "datasetId": "A String", # The dataset to which this annotation set belongs.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "type": "A String", # The type of annotations contained within this set.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-    "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(annotationSetId)</code>
-  <pre>Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.
-
-Args:
-  annotationSetId: string, The ID of the annotation set to be deleted. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(annotationSetId)</code>
-  <pre>Gets an annotation set. Caller must have READ permission for the associated dataset.
-
-Args:
-  annotationSetId: string, The ID of the annotation set to be retrieved. (required)
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "type": "A String", # The type of annotations contained within this set.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-    "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(annotationSetId, body)</code>
-  <pre>Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.
-
-Args:
-  annotationSetId: string, The ID of the annotation set to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The display name for this annotation set.
-  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-  "type": "A String", # The type of annotations contained within this set.
-  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-  "datasetId": "A String", # The dataset to which this annotation set belongs.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "type": "A String", # The type of annotations contained within this set.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-    "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Searches for annotation sets that match the given criteria. Annotation sets are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotation sets in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried datasets.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "name": "A String", # Only return annotations sets for which a substring of the name matches this string (case insensitive).
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 128. The maximum value is 1024.
-    "datasetIds": [ # The dataset IDs to search within. Caller must have READ access to these datasets.
-      "A String",
-    ],
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "referenceSetId": "A String", # If specified, only annotation sets associated with the given reference set are returned.
-    "types": [ # If specified, only annotation sets that have any of these types are returned.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "annotationSets": [ # The matching annotation sets.
-      { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "name": "A String", # The display name for this annotation set.
-        "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-        "type": "A String", # The type of annotations contained within this set.
-        "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-        "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-        "datasetId": "A String", # The dataset to which this annotation set belongs.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(annotationSetId, body)</code>
-  <pre>Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.
-
-Args:
-  annotationSetId: string, The ID of the annotation set to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The display name for this annotation set.
-  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-  "type": "A String", # The type of annotations contained within this set.
-  "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-  "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-  "datasetId": "A String", # The dataset to which this annotation set belongs.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # An annotation set is a logical grouping of annotations that share consistent type information and provenance. Examples of annotation sets include 'all genes from refseq', and 'all variant annotations from ClinVar'.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name for this annotation set.
-    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
-    "type": "A String", # The type of annotations contained within this set.
-    "referenceSetId": "A String", # The ID of the reference set that defines the coordinate space for this set's annotations.
-    "id": "A String", # The server-generated annotation set ID, unique across all annotation sets.
-    "datasetId": "A String", # The dataset to which this annotation set belongs.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.annotations.html b/docs/dyn/genomics_v1beta2.annotations.html
deleted file mode 100644
index ed08ec6..0000000
--- a/docs/dyn/genomics_v1beta2.annotations.html
+++ /dev/null
@@ -1,984 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.annotations.html">annotations</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#batchCreate">batchCreate(body)</a></code></p>
-<p class="firstline">Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together.</p>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates a new annotation. Caller must have WRITE permission for the associated annotation set.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(annotationId)</a></code></p>
-<p class="firstline">Deletes an annotation. Caller must have WRITE permission for the associated annotation set.</p>
-<p class="toc_element">
-  <code><a href="#get">get(annotationId)</a></code></p>
-<p class="firstline">Gets an annotation. Caller must have READ permission for the associated annotation set.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(annotationId, body)</a></code></p>
-<p class="firstline">Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Searches for annotations that match the given criteria. Results are ordered by genomic coordinate (by reference sequence, then position). Annotations with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotations in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried annotation sets.</p>
-<p class="toc_element">
-  <code><a href="#update">update(annotationId, body)</a></code></p>
-<p class="firstline">Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="batchCreate">batchCreate(body)</code>
-  <pre>Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together.
-
-
-If the request has a systemic issue, such as an attempt to write to an inaccessible annotation set, the entire RPC will fail accordingly. For lesser data issues, when possible an error will be isolated to the corresponding batch entry in the response; the remaining well formed annotations will be created normally.
-
-
-For details on the requirements for each individual annotation resource, see annotations.create.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "annotations": [ # The annotations to be created. At most 4096 can be specified in a single request.
-      { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "name": "A String", # The display name of this annotation.
-        "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-        "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-          "effect": "A String", # Effect of the variant on the coding sequence.
-          "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-            "A String",
-          ],
-          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-          "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-          "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-            {
-              "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-              "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-              "externalIds": [ # The set of external IDs for this condition.
-                {
-                  "sourceName": "A String", # The name of the source of this data.
-                  "id": "A String", # The id used by the source of this data.
-                },
-              ],
-              "names": [ # A set of names for the condition.
-                "A String",
-              ],
-            },
-          ],
-          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-        },
-        "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-        "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-          "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-          "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-          "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-          "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-          "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-        },
-        "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-              #
-              # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-            "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-            "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-          },
-          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-          "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-              #
-              #
-              # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-              #
-              #
-              # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-              #
-              #
-              # Exons are ordered by start position and may not overlap.
-            {
-              "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-              "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-                  #
-                  # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-                  #
-                  # The JSON representation for `Int32Value` is JSON number.
-                "value": 42, # The int32 value.
-              },
-              "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-            },
-          ],
-        },
-        "id": "A String", # The server-generated annotation ID, unique across all annotations.
-      },
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "entries": [ # The resulting per-annotation entries, ordered consistently with the original request.
-      {
-        "status": { # The resulting status for this annotation operation.
-          "message": "A String", # Error message for this status, if any.
-          "code": 42, # The HTTP status code for this operation.
-        },
-        "annotation": { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT. # The annotation, if any.
-          "info": { # A string which maps to an array of values.
-            "a_key": [ # A string which maps to an array of values.
-              "A String",
-            ],
-          },
-          "name": "A String", # The display name of this annotation.
-          "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-          "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-            "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-            "effect": "A String", # Effect of the variant on the coding sequence.
-            "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-              "A String",
-            ],
-            "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-            "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-            "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-              {
-                "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-                "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-                "externalIds": [ # The set of external IDs for this condition.
-                  {
-                    "sourceName": "A String", # The name of the source of this data.
-                    "id": "A String", # The id used by the source of this data.
-                  },
-                ],
-                "names": [ # A set of names for the condition.
-                  "A String",
-                ],
-              },
-            ],
-            "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-          },
-          "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-          "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-            "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-            "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-            "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-            "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-            "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-          },
-          "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-            "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-                #
-                # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-              "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-              "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-            },
-            "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-            "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-                #
-                #
-                # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-                #
-                #
-                # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-                #
-                #
-                # Exons are ordered by start position and may not overlap.
-              {
-                "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-                "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-                    #
-                    # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-                    #
-                    # The JSON representation for `Int32Value` is JSON number.
-                  "value": 42, # The int32 value.
-                },
-                "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-              },
-            ],
-          },
-          "id": "A String", # The server-generated annotation ID, unique across all annotations.
-        },
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates a new annotation. Caller must have WRITE permission for the associated annotation set.
-
-
-The following fields must be provided when creating an annotation:  
-- annotationSetId 
-- position.referenceName or  position.referenceId  Transcripts 
-For annotations of type TRANSCRIPT, the following fields of annotation.transcript must be provided:  
-- exons.start 
-- exons.end  
-All other fields may be optionally specified, unless documented as being server-generated (for example, the id field). The annotated range must be no longer than 100Mbp (mega base pairs). See the annotation resource for additional restrictions on each field.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The display name of this annotation.
-  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-  "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-    "effect": "A String", # Effect of the variant on the coding sequence.
-    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-      "A String",
-    ],
-    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-      {
-        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-        "externalIds": [ # The set of external IDs for this condition.
-          {
-            "sourceName": "A String", # The name of the source of this data.
-            "id": "A String", # The id used by the source of this data.
-          },
-        ],
-        "names": [ # A set of names for the condition.
-          "A String",
-        ],
-      },
-    ],
-    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-  },
-  "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-  "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-    "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-    "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-  },
-  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-        #
-        # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-    },
-    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-    "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-        #
-        #
-        # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-        #
-        #
-        # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-        #
-        #
-        # Exons are ordered by start position and may not overlap.
-      {
-        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-            #
-            # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-            #
-            # The JSON representation for `Int32Value` is JSON number.
-          "value": 42, # The int32 value.
-        },
-        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-      },
-    ],
-  },
-  "id": "A String", # The server-generated annotation ID, unique across all annotations.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name of this annotation.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-    "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-          "externalIds": [ # The set of external IDs for this condition.
-            {
-              "sourceName": "A String", # The name of the source of this data.
-              "id": "A String", # The id used by the source of this data.
-            },
-          ],
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-    },
-    "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-    },
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-          #
-          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      },
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-          #
-          #
-          # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-          #
-          #
-          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-          #
-          #
-          # Exons are ordered by start position and may not overlap.
-        {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-          "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-              #
-              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-              #
-              # The JSON representation for `Int32Value` is JSON number.
-            "value": 42, # The int32 value.
-          },
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        },
-      ],
-    },
-    "id": "A String", # The server-generated annotation ID, unique across all annotations.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(annotationId)</code>
-  <pre>Deletes an annotation. Caller must have WRITE permission for the associated annotation set.
-
-Args:
-  annotationId: string, The ID of the annotation to be deleted. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(annotationId)</code>
-  <pre>Gets an annotation. Caller must have READ permission for the associated annotation set.
-
-Args:
-  annotationId: string, The ID of the annotation to be retrieved. (required)
-
-Returns:
-  An object of the form:
-
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name of this annotation.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-    "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-          "externalIds": [ # The set of external IDs for this condition.
-            {
-              "sourceName": "A String", # The name of the source of this data.
-              "id": "A String", # The id used by the source of this data.
-            },
-          ],
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-    },
-    "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-    },
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-          #
-          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      },
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-          #
-          #
-          # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-          #
-          #
-          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-          #
-          #
-          # Exons are ordered by start position and may not overlap.
-        {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-          "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-              #
-              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-              #
-              # The JSON representation for `Int32Value` is JSON number.
-            "value": 42, # The int32 value.
-          },
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        },
-      ],
-    },
-    "id": "A String", # The server-generated annotation ID, unique across all annotations.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(annotationId, body)</code>
-  <pre>Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.
-
-Args:
-  annotationId: string, The ID of the annotation to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The display name of this annotation.
-  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-  "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-    "effect": "A String", # Effect of the variant on the coding sequence.
-    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-      "A String",
-    ],
-    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-      {
-        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-        "externalIds": [ # The set of external IDs for this condition.
-          {
-            "sourceName": "A String", # The name of the source of this data.
-            "id": "A String", # The id used by the source of this data.
-          },
-        ],
-        "names": [ # A set of names for the condition.
-          "A String",
-        ],
-      },
-    ],
-    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-  },
-  "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-  "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-    "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-    "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-  },
-  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-        #
-        # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-    },
-    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-    "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-        #
-        #
-        # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-        #
-        #
-        # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-        #
-        #
-        # Exons are ordered by start position and may not overlap.
-      {
-        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-            #
-            # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-            #
-            # The JSON representation for `Int32Value` is JSON number.
-          "value": 42, # The int32 value.
-        },
-        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-      },
-    ],
-  },
-  "id": "A String", # The server-generated annotation ID, unique across all annotations.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name of this annotation.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-    "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-          "externalIds": [ # The set of external IDs for this condition.
-            {
-              "sourceName": "A String", # The name of the source of this data.
-              "id": "A String", # The id used by the source of this data.
-            },
-          ],
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-    },
-    "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-    },
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-          #
-          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      },
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-          #
-          #
-          # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-          #
-          #
-          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-          #
-          #
-          # Exons are ordered by start position and may not overlap.
-        {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-          "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-              #
-              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-              #
-              # The JSON representation for `Int32Value` is JSON number.
-            "value": 42, # The int32 value.
-          },
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        },
-      ],
-    },
-    "id": "A String", # The server-generated annotation ID, unique across all annotations.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Searches for annotations that match the given criteria. Results are ordered by genomic coordinate (by reference sequence, then position). Annotations with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield annotations in the same order across their respective streams of paginated responses. Caller must have READ permission for the queried annotation sets.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "range": { # A 0-based half-open genomic coordinate range for search requests. reference_id or reference_name must be set. # If specified, this query matches only annotations that overlap this range.
-      "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceId or referenceName must also be specified. Defaults to 0.
-      "referenceId": "A String", # The ID of the reference to query.
-      "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, referenceId or referenceName must also be specified. If unset or 0, defaults to the length of the reference.
-      "referenceName": "A String", # The name of the reference to query, within the reference set associated with this query.
-    },
-    "annotationSetIds": [ # The annotation sets to search within. The caller must have READ access to these annotation sets. Required. All queried annotation sets must have the same type.
-      "A String",
-    ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 2048.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "annotations": [ # The matching annotations.
-      { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "name": "A String", # The display name of this annotation.
-        "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-        "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-          "effect": "A String", # Effect of the variant on the coding sequence.
-          "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-            "A String",
-          ],
-          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-          "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-          "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-            {
-              "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-              "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-              "externalIds": [ # The set of external IDs for this condition.
-                {
-                  "sourceName": "A String", # The name of the source of this data.
-                  "id": "A String", # The id used by the source of this data.
-                },
-              ],
-              "names": [ # A set of names for the condition.
-                "A String",
-              ],
-            },
-          ],
-          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-        },
-        "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-        "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-          "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-          "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-          "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-          "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-          "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-        },
-        "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-              #
-              # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-            "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-            "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-          },
-          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-          "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-              #
-              #
-              # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-              #
-              #
-              # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-              #
-              #
-              # Exons are ordered by start position and may not overlap.
-            {
-              "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-              "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-                  #
-                  # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-                  #
-                  # The JSON representation for `Int32Value` is JSON number.
-                "value": 42, # The int32 value.
-              },
-              "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-            },
-          ],
-        },
-        "id": "A String", # The server-generated annotation ID, unique across all annotations.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(annotationId, body)</code>
-  <pre>Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset.
-
-Args:
-  annotationId: string, The ID of the annotation to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The display name of this annotation.
-  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-  "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-    "effect": "A String", # Effect of the variant on the coding sequence.
-    "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-      "A String",
-    ],
-    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-      {
-        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-        "externalIds": [ # The set of external IDs for this condition.
-          {
-            "sourceName": "A String", # The name of the source of this data.
-            "id": "A String", # The id used by the source of this data.
-          },
-        ],
-        "names": [ # A set of names for the condition.
-          "A String",
-        ],
-      },
-    ],
-    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-  },
-  "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-  "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-    "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-    "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-  },
-  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-        #
-        # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-    },
-    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-    "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-        #
-        #
-        # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-        #
-        #
-        # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-        #
-        #
-        # Exons are ordered by start position and may not overlap.
-      {
-        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-            #
-            # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-            #
-            # The JSON representation for `Int32Value` is JSON number.
-          "value": 42, # The int32 value.
-        },
-        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-      },
-    ],
-  },
-  "id": "A String", # The server-generated annotation ID, unique across all annotations.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. An annotation is not inherently associated with a specific sample or individual (though a client could choose to use annotations in this way). Example canonical annotation types are GENE and VARIANT.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The display name of this annotation.
-    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
-    "variant": { # A Variant annotation. # A variant annotation, which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
-      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
-      "effect": "A String", # Effect of the variant on the coding sequence.
-      "transcriptIds": [ # Google annotation IDs of the transcripts affected by this variant. These should be provided when the variant is created.
-        "A String",
-      ],
-      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
-      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
-      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
-        {
-          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
-          "externalIds": [ # The set of external IDs for this condition.
-            {
-              "sourceName": "A String", # The name of the source of this data.
-              "id": "A String", # The id used by the source of this data.
-            },
-          ],
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
-    },
-    "annotationSetId": "A String", # The annotation set to which this annotation belongs.
-    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
-      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
-      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
-      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
-      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
-      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
-    },
-    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternative splicing pattern would be represented as a separate transcript object. This field is only set for annotations of type TRANSCRIPT.
-      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
-          #
-          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
-        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
-      },
-      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
-      "exons": [ # The exons that compose this transcript. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
-          #
-          #
-          # Introns are regions of the transcript that are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript that are not exons are introns.
-          #
-          #
-          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
-          #
-          #
-          # Exons are ordered by start position and may not overlap.
-        {
-          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
-          "frame": { # Wrapper message for `int32`. # The frame of this exon. Contains a value of 0, 1, or 2, which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
-              #
-              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
-              #
-              # The JSON representation for `Int32Value` is JSON number.
-            "value": 42, # The int32 value.
-          },
-          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
-        },
-      ],
-    },
-    "id": "A String", # The server-generated annotation ID, unique across all annotations.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.callsets.html b/docs/dyn/genomics_v1beta2.callsets.html
deleted file mode 100644
index 339bc85..0000000
--- a/docs/dyn/genomics_v1beta2.callsets.html
+++ /dev/null
@@ -1,306 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.callsets.html">callsets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates a new call set.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(callSetId)</a></code></p>
-<p class="firstline">Deletes a call set.</p>
-<p class="toc_element">
-  <code><a href="#get">get(callSetId)</a></code></p>
-<p class="firstline">Gets a call set by ID.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(callSetId, body)</a></code></p>
-<p class="firstline">Updates a call set. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Gets a list of call sets matching the criteria.</p>
-<p class="toc_element">
-  <code><a href="#update">update(callSetId, body)</a></code></p>
-<p class="firstline">Updates a call set.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates a new call set.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The call set name.
-  "created": "A String", # The date this call set was created in milliseconds from the epoch.
-  "sampleId": "A String", # The sample ID this call set corresponds to.
-  "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-    "A String",
-  ],
-  "id": "A String", # The Google generated ID of the call set, immutable.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The call set name.
-    "created": "A String", # The date this call set was created in milliseconds from the epoch.
-    "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-      "A String",
-    ],
-    "id": "A String", # The Google generated ID of the call set, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(callSetId)</code>
-  <pre>Deletes a call set.
-
-Args:
-  callSetId: string, The ID of the call set to be deleted. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(callSetId)</code>
-  <pre>Gets a call set by ID.
-
-Args:
-  callSetId: string, The ID of the call set. (required)
-
-Returns:
-  An object of the form:
-
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The call set name.
-    "created": "A String", # The date this call set was created in milliseconds from the epoch.
-    "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-      "A String",
-    ],
-    "id": "A String", # The Google generated ID of the call set, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(callSetId, body)</code>
-  <pre>Updates a call set. This method supports patch semantics.
-
-Args:
-  callSetId: string, Required. The ID of the call set to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The call set name.
-  "created": "A String", # The date this call set was created in milliseconds from the epoch.
-  "sampleId": "A String", # The sample ID this call set corresponds to.
-  "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-    "A String",
-  ],
-  "id": "A String", # The Google generated ID of the call set, immutable.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The call set name.
-    "created": "A String", # The date this call set was created in milliseconds from the epoch.
-    "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-      "A String",
-    ],
-    "id": "A String", # The Google generated ID of the call set, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Gets a list of call sets matching the criteria.
-
-Implements GlobalAllianceApi.searchCallSets.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The call set search request.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "variantSetIds": [ # Restrict the query to call sets within the given variant sets. At least one ID must be provided.
-      "A String",
-    ],
-    "name": "A String", # Only return call sets for which a substring of the name matches this string.
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The call set search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "callSets": [ # The list of matching call sets.
-      { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "name": "A String", # The call set name.
-        "created": "A String", # The date this call set was created in milliseconds from the epoch.
-        "sampleId": "A String", # The sample ID this call set corresponds to.
-        "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-          "A String",
-        ],
-        "id": "A String", # The Google generated ID of the call set, immutable.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(callSetId, body)</code>
-  <pre>Updates a call set.
-
-Args:
-  callSetId: string, Required. The ID of the call set to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The call set name.
-  "created": "A String", # The date this call set was created in milliseconds from the epoch.
-  "sampleId": "A String", # The sample ID this call set corresponds to.
-  "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-    "A String",
-  ],
-  "id": "A String", # The Google generated ID of the call set, immutable.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The call set name.
-    "created": "A String", # The date this call set was created in milliseconds from the epoch.
-    "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
-      "A String",
-    ],
-    "id": "A String", # The Google generated ID of the call set, immutable.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.datasets.html b/docs/dyn/genomics_v1beta2.datasets.html
deleted file mode 100644
index c074030..0000000
--- a/docs/dyn/genomics_v1beta2.datasets.html
+++ /dev/null
@@ -1,278 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.datasets.html">datasets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates a new dataset.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(datasetId)</a></code></p>
-<p class="firstline">Deletes a dataset and all of its contents (all read group sets, reference sets, variant sets, call sets, annotation sets, etc.) This is reversible (up to one week after the deletion) via the UndeleteDataset operation.</p>
-<p class="toc_element">
-  <code><a href="#get">get(datasetId)</a></code></p>
-<p class="firstline">Gets a dataset by ID.</p>
-<p class="toc_element">
-  <code><a href="#list">list(pageToken=None, projectNumber=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists datasets within a project.</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>
-<p class="toc_element">
-  <code><a href="#patch">patch(datasetId, body)</a></code></p>
-<p class="firstline">Updates a dataset. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#undelete">undelete(datasetId)</a></code></p>
-<p class="firstline">Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.</p>
-<p class="toc_element">
-  <code><a href="#update">update(datasetId, body)</a></code></p>
-<p class="firstline">Updates a dataset.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates a new dataset.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Dataset is a collection of genomic data.
-  "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-  "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-  "name": "A String", # The dataset name.
-  "id": "A String", # The Google generated ID of the dataset, immutable.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A Dataset is a collection of genomic data.
-    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-    "name": "A String", # The dataset name.
-    "id": "A String", # The Google generated ID of the dataset, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(datasetId)</code>
-  <pre>Deletes a dataset and all of its contents (all read group sets, reference sets, variant sets, call sets, annotation sets, etc.) This is reversible (up to one week after the deletion) via the UndeleteDataset operation.
-
-Args:
-  datasetId: string, The ID of the dataset to be deleted. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(datasetId)</code>
-  <pre>Gets a dataset by ID.
-
-Args:
-  datasetId: string, The ID of the dataset. (required)
-
-Returns:
-  An object of the form:
-
-    { # A Dataset is a collection of genomic data.
-    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-    "name": "A String", # The dataset name.
-    "id": "A String", # The Google generated ID of the dataset, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(pageToken=None, projectNumber=None, pageSize=None)</code>
-  <pre>Lists datasets within a project.
-
-Args:
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-  projectNumber: string, Required. The project to list datasets for.
-  pageSize: integer, The maximum number of results to return in a single page. If unspecified, defaults to 50. The maximum value is 1024.
-
-Returns:
-  An object of the form:
-
-    { # The dataset list response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "datasets": [ # The list of matching Datasets.
-      { # A Dataset is a collection of genomic data.
-        "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-        "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-        "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-        "name": "A String", # The dataset name.
-        "id": "A String", # The Google generated ID of the dataset, immutable.
-      },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="patch">patch(datasetId, body)</code>
-  <pre>Updates a dataset. This method supports patch semantics.
-
-Args:
-  datasetId: string, The ID of the dataset to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Dataset is a collection of genomic data.
-  "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-  "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-  "name": "A String", # The dataset name.
-  "id": "A String", # The Google generated ID of the dataset, immutable.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A Dataset is a collection of genomic data.
-    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-    "name": "A String", # The dataset name.
-    "id": "A String", # The Google generated ID of the dataset, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="undelete">undelete(datasetId)</code>
-  <pre>Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.
-
-Args:
-  datasetId: string, The ID of the dataset to be undeleted. (required)
-
-Returns:
-  An object of the form:
-
-    { # A Dataset is a collection of genomic data.
-    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-    "name": "A String", # The dataset name.
-    "id": "A String", # The Google generated ID of the dataset, immutable.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(datasetId, body)</code>
-  <pre>Updates a dataset.
-
-Args:
-  datasetId: string, The ID of the dataset to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A Dataset is a collection of genomic data.
-  "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-  "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-  "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-  "name": "A String", # The dataset name.
-  "id": "A String", # The Google generated ID of the dataset, immutable.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A Dataset is a collection of genomic data.
-    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
-    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
-    "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
-    "name": "A String", # The dataset name.
-    "id": "A String", # The Google generated ID of the dataset, immutable.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.experimental.html b/docs/dyn/genomics_v1beta2.experimental.html
deleted file mode 100644
index 2ed6911..0000000
--- a/docs/dyn/genomics_v1beta2.experimental.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.experimental.html">experimental</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.experimental.jobs.html">jobs()</a></code>
-</p>
-<p class="firstline">Returns the jobs Resource.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.experimental.jobs.html b/docs/dyn/genomics_v1beta2.experimental.jobs.html
deleted file mode 100644
index 23dada8..0000000
--- a/docs/dyn/genomics_v1beta2.experimental.jobs.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.experimental.html">experimental</a> . <a href="genomics_v1beta2.experimental.jobs.html">jobs</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates and asynchronously runs an ad-hoc job. This is an experimental call and may be removed or changed at any time.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates and asynchronously runs an ad-hoc job. This is an experimental call and may be removed or changed at any time.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The job creation request.
-    "pairedSourceUris": [ # A list of Google Cloud Storage URIs of paired end .fastq files to operate upon. If specified, this represents the second file of each paired .fastq file. The first file of each pair should be specified in sourceUris.
-      "A String",
-    ],
-    "align": True or False, # Specifies whether or not to run the alignment pipeline. Either align or callVariants must be set.
-    "callVariants": True or False, # Specifies whether or not to run the variant calling pipeline. Either align or callVariants must be set.
-    "sourceUris": [ # A list of Google Cloud Storage URIs of data files to operate upon. These can be .bam, interleaved .fastq, or paired .fastq. If specifying paired .fastq files, the first of each pair of files should be listed here, and the second of each pair should be listed in pairedSourceUris.
-      "A String",
-    ],
-    "gcsOutputPath": "A String", # Specifies where to copy the results of certain pipelines. This should be in the form of gs://bucket/path.
-    "projectNumber": "A String", # Required. The Google Cloud Project ID with which to associate the request.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The job creation response.
-    "jobId": "A String", # A job ID that can be used to get status information.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.html b/docs/dyn/genomics_v1beta2.html
deleted file mode 100644
index d98228e..0000000
--- a/docs/dyn/genomics_v1beta2.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.annotationSets.html">annotationSets()</a></code>
-</p>
-<p class="firstline">Returns the annotationSets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.annotations.html">annotations()</a></code>
-</p>
-<p class="firstline">Returns the annotations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.callsets.html">callsets()</a></code>
-</p>
-<p class="firstline">Returns the callsets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.datasets.html">datasets()</a></code>
-</p>
-<p class="firstline">Returns the datasets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.experimental.html">experimental()</a></code>
-</p>
-<p class="firstline">Returns the experimental Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.jobs.html">jobs()</a></code>
-</p>
-<p class="firstline">Returns the jobs Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.readgroupsets.html">readgroupsets()</a></code>
-</p>
-<p class="firstline">Returns the readgroupsets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.reads.html">reads()</a></code>
-</p>
-<p class="firstline">Returns the reads Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.references.html">references()</a></code>
-</p>
-<p class="firstline">Returns the references Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.referencesets.html">referencesets()</a></code>
-</p>
-<p class="firstline">Returns the referencesets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.variants.html">variants()</a></code>
-</p>
-<p class="firstline">Returns the variants Resource.</p>
-
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.variantsets.html">variantsets()</a></code>
-</p>
-<p class="firstline">Returns the variantsets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
-<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
-  <pre>Create a BatchHttpRequest object based on the discovery document.
-
-        Args:
-          callback: callable, A callback to be called for each response, of the
-            form callback(id, response, exception). The first parameter is the
-            request id, and the second is the deserialized response object. The
-            third is an apiclient.errors.HttpError exception object if an HTTP
-            error occurred while processing the request, or None if no error
-            occurred.
-
-        Returns:
-          A BatchHttpRequest object based on the discovery document.
-        </pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.jobs.html b/docs/dyn/genomics_v1beta2.jobs.html
deleted file mode 100644
index da99b72..0000000
--- a/docs/dyn/genomics_v1beta2.jobs.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.jobs.html">jobs</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#cancel">cancel(jobId)</a></code></p>
-<p class="firstline">Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.</p>
-<p class="toc_element">
-  <code><a href="#get">get(jobId)</a></code></p>
-<p class="firstline">Gets a job by ID.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Gets a list of jobs matching the criteria.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="cancel">cancel(jobId)</code>
-  <pre>Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.
-
-Args:
-  jobId: string, Required. The ID of the job. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(jobId)</code>
-  <pre>Gets a job by ID.
-
-Args:
-  jobId: string, Required. The ID of the job. (required)
-
-Returns:
-  An object of the form:
-
-    { # A Job represents an ongoing process that can be monitored for status information.
-    "detailedStatus": "A String", # A more detailed description of this job's current status.
-    "status": "A String", # The status of this job.
-    "errors": [ # Any errors that occurred during processing.
-      "A String",
-    ],
-    "created": "A String", # The date this job was created, in milliseconds from the epoch.
-    "warnings": [ # Any warnings that occurred during processing.
-      "A String",
-    ],
-    "request": { # A summary representation of the service request that spawned the job. # A summarized representation of the original service request.
-      "source": [ # The data source of the request, for example, a Google Cloud Storage object path or Readset ID.
-        "A String",
-      ],
-      "destination": [ # The data destination of the request, for example, a Google BigQuery Table or Dataset ID.
-        "A String",
-      ],
-      "type": "A String", # The original request type.
-    },
-    "projectNumber": "A String", # The Google Developers Console project number to which this job belongs.
-    "importedIds": [ # If this Job represents an import, this field will contain the IDs of the objects that were successfully imported.
-      "A String",
-    ],
-    "id": "A String", # The job ID.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Gets a list of jobs matching the criteria.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The jobs search request.
-    "status": [ # Only return jobs which have a matching status.
-      "A String",
-    ],
-    "createdAfter": "A String", # If specified, only jobs created on or after this date, given in milliseconds since Unix epoch, will be returned.
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 128. The maximum value is 256.
-    "pageToken": "A String", # The continuation token which is used to page through large result sets. To get the next page of results, set this parameter to the value of the nextPageToken from the previous response.
-    "createdBefore": "A String", # If specified, only jobs created prior to this date, given in milliseconds since Unix epoch, will be returned.
-    "projectNumber": "A String", # Required. Only return jobs which belong to this Google Developers Console project.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The job search response.
-    "nextPageToken": "A String", # The continuation token which is used to page through large result sets. Provide this value is a subsequent request to return the next page of results. This field will be empty if there are no more results.
-    "jobs": [ # The list of jobs results, ordered newest to oldest.
-      { # A Job represents an ongoing process that can be monitored for status information.
-        "detailedStatus": "A String", # A more detailed description of this job's current status.
-        "status": "A String", # The status of this job.
-        "errors": [ # Any errors that occurred during processing.
-          "A String",
-        ],
-        "created": "A String", # The date this job was created, in milliseconds from the epoch.
-        "warnings": [ # Any warnings that occurred during processing.
-          "A String",
-        ],
-        "request": { # A summary representation of the service request that spawned the job. # A summarized representation of the original service request.
-          "source": [ # The data source of the request, for example, a Google Cloud Storage object path or Readset ID.
-            "A String",
-          ],
-          "destination": [ # The data destination of the request, for example, a Google BigQuery Table or Dataset ID.
-            "A String",
-          ],
-          "type": "A String", # The original request type.
-        },
-        "projectNumber": "A String", # The Google Developers Console project number to which this job belongs.
-        "importedIds": [ # If this Job represents an import, this field will contain the IDs of the objects that were successfully imported.
-          "A String",
-        ],
-        "id": "A String", # The job ID.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.readgroupsets.coveragebuckets.html b/docs/dyn/genomics_v1beta2.readgroupsets.coveragebuckets.html
deleted file mode 100644
index 03f8c38..0000000
--- a/docs/dyn/genomics_v1beta2.readgroupsets.coveragebuckets.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.readgroupsets.html">readgroupsets</a> . <a href="genomics_v1beta2.readgroupsets.coveragebuckets.html">coveragebuckets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(readGroupSetId, range_end=None, range_start=None, range_referenceName=None, pageSize=None, pageToken=None, targetBucketWidth=None)</a></code></p>
-<p class="firstline">Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range.</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="list">list(readGroupSetId, range_end=None, range_start=None, range_referenceName=None, pageSize=None, pageToken=None, targetBucketWidth=None)</code>
-  <pre>Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range.
-
-Coverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at several precomputed bucket widths, enabling retrieval of various coverage 'zoom levels'. The caller must have READ permissions for the target read group set.
-
-Args:
-  readGroupSetId: string, Required. The ID of the read group set over which coverage is requested. (required)
-  range_end: string, The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.
-  range_start: string, The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.
-  range_referenceName: string, The reference sequence name, for example chr1, 1, or chrX.
-  pageSize: integer, The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 2048.
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-  targetBucketWidth: string, The desired width of each reported coverage bucket in base pairs. This will be rounded down to the nearest precomputed bucket width; the value of which is returned as bucketWidth in the response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of the target range, if specified. The smallest precomputed bucketWidth is currently 2048 base pairs; this is subject to change.
-
-Returns:
-  An object of the form:
-
-    {
-    "coverageBuckets": [ # The coverage buckets. The list of buckets is sparse; a bucket with 0 overlapping reads is not returned. A bucket never crosses more than one reference sequence. Each bucket has width bucketWidth, unless its end is the end of the reference sequence.
-      { # A bucket over which read coverage has been precomputed. A bucket corresponds to a specific range of the reference sequence.
-        "meanCoverage": 3.14, # The average number of reads which are aligned to each individual reference base in this bucket.
-        "range": { # A 0-based half-open genomic coordinate range over a reference sequence. # The genomic coordinate range spanned by this bucket.
-          "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.
-          "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.
-          "referenceName": "A String", # The reference sequence name, for example chr1, 1, or chrX.
-        },
-      },
-    ],
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "bucketWidth": "A String", # The length of each coverage bucket in base pairs. Note that buckets at the end of a reference sequence may be shorter. This value is omitted if the bucket width is infinity (the default behaviour, with no range or targetBucketWidth).
-  }</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
diff --git a/docs/dyn/genomics_v1beta2.readgroupsets.html b/docs/dyn/genomics_v1beta2.readgroupsets.html
deleted file mode 100644
index 098920f..0000000
--- a/docs/dyn/genomics_v1beta2.readgroupsets.html
+++ /dev/null
@@ -1,526 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.readgroupsets.html">readgroupsets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.readgroupsets.coveragebuckets.html">coveragebuckets()</a></code>
-</p>
-<p class="firstline">Returns the coveragebuckets Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#delete">delete(readGroupSetId)</a></code></p>
-<p class="firstline">Deletes a read group set.</p>
-<p class="toc_element">
-  <code><a href="#export">export(body)</a></code></p>
-<p class="firstline">Exports read group sets to a BAM file in Google Cloud Storage.</p>
-<p class="toc_element">
-  <code><a href="#get">get(readGroupSetId)</a></code></p>
-<p class="firstline">Gets a read group set by ID.</p>
-<p class="toc_element">
-  <code><a href="#import_">import_(body)</a></code></p>
-<p class="firstline">Creates read group sets by asynchronously importing the provided information. The caller must have WRITE permissions to the dataset.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(readGroupSetId, body)</a></code></p>
-<p class="firstline">Updates a read group set. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Searches for read group sets matching the criteria.</p>
-<p class="toc_element">
-  <code><a href="#update">update(readGroupSetId, body)</a></code></p>
-<p class="firstline">Updates a read group set.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="delete">delete(readGroupSetId)</code>
-  <pre>Deletes a read group set.
-
-Args:
-  readGroupSetId: string, The ID of the read group set to be deleted. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="export">export(body)</code>
-  <pre>Exports read group sets to a BAM file in Google Cloud Storage.
-
-Note that currently there may be some differences between exported BAM files and the original BAM file at the time of import. See ImportReadGroupSets for details.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The read group set export request.
-    "exportUri": "A String", # Required. A Google Cloud Storage URI for the exported BAM file. The currently authenticated user must have write access to the new file. An error will be returned if the URI already contains data.
-    "referenceNames": [ # The reference names to export. If this is not specified, all reference sequences, including unmapped reads, are exported. Use * to export only unmapped reads.
-      "A String",
-    ],
-    "readGroupSetIds": [ # Required. The IDs of the read group sets to export. The caller must have READ access to these read group sets.
-      "A String",
-    ],
-    "projectNumber": "A String", # Required. The Google Developers Console project number that owns this export. The caller must have WRITE access to this project.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The read group set export response.
-    "jobId": "A String", # A job ID that can be used to get status information.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(readGroupSetId)</code>
-  <pre>Gets a read group set by ID.
-
-Args:
-  readGroupSetId: string, The ID of the read group set. (required)
-
-Returns:
-  An object of the form:
-
-    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
-      # - A read group set belongs to one dataset.
-      # - A read group belongs to one read group set.
-      # - A read belongs to one read group.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
-      { # A read group is all the data that's processed the same way by the sequencer.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
-        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
-          {
-            "commandLine": "A String", # The command line used to run this program.
-            "prevProgramId": "A String", # The ID of the program run before this one.
-            "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
-            "version": "A String", # The version of the program run.
-            "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
-          },
-        ],
-        "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
-        "experiment": { # The experiment used to generate this read group.
-          "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-          "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
-          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
-          "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
-        },
-        "referenceSetId": "A String", # The reference set to which the reads in this read group are aligned.
-        "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
-        "datasetId": "A String", # The ID of the dataset this read group belongs to.
-        "description": "A String", # A free-form text description of this read group.
-      },
-    ],
-    "filename": "A String", # The filename of the original source file for this read group set, if any.
-    "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
-    "id": "A String", # The read group set ID.
-    "datasetId": "A String", # The dataset ID.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="import_">import_(body)</code>
-  <pre>Creates read group sets by asynchronously importing the provided information. The caller must have WRITE permissions to the dataset.
-
-Notes on BAM import:  
-- Tags will be converted to strings - tag types are not preserved
-- Comments (@CO) in the input file header are not imported
-- Original order of reference headers is not preserved
-- Any reverse stranded unmapped reads will be reverse complemented, and their qualities (also the "BQ" and "OQ" tags, if any) will be reversed
-- Unmapped reads will be stripped of positional information (referenceName and position)
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The read group set import request.
-    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if any. The reference names of this reference set must be a superset of those found in the imported file headers. If no reference set id is provided, a best effort is made to associate with a matching reference set.
-    "sourceUris": [ # A list of URIs pointing at BAM files in Google Cloud Storage.
-      "A String",
-    ],
-    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read group sets.
-    "datasetId": "A String", # Required. The ID of the dataset these read group sets will belong to. The caller must have WRITE permissions to this dataset.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The read group set import response.
-    "jobId": "A String", # A job ID that can be used to get status information.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(readGroupSetId, body)</code>
-  <pre>Updates a read group set. This method supports patch semantics.
-
-Args:
-  readGroupSetId: string, The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
-    # - A read group set belongs to one dataset.
-    # - A read group belongs to one read group set.
-    # - A read belongs to one read group.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-  "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
-    { # A read group is all the data that's processed the same way by the sequencer.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-      "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
-      "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
-        {
-          "commandLine": "A String", # The command line used to run this program.
-          "prevProgramId": "A String", # The ID of the program run before this one.
-          "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
-          "version": "A String", # The version of the program run.
-          "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
-        },
-      ],
-      "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
-      "experiment": { # The experiment used to generate this read group.
-        "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-        "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
-        "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
-        "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
-      },
-      "referenceSetId": "A String", # The reference set to which the reads in this read group are aligned.
-      "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
-      "datasetId": "A String", # The ID of the dataset this read group belongs to.
-      "description": "A String", # A free-form text description of this read group.
-    },
-  ],
-  "filename": "A String", # The filename of the original source file for this read group set, if any.
-  "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
-  "id": "A String", # The read group set ID.
-  "datasetId": "A String", # The dataset ID.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
-      # - A read group set belongs to one dataset.
-      # - A read group belongs to one read group set.
-      # - A read belongs to one read group.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
-      { # A read group is all the data that's processed the same way by the sequencer.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
-        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
-          {
-            "commandLine": "A String", # The command line used to run this program.
-            "prevProgramId": "A String", # The ID of the program run before this one.
-            "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
-            "version": "A String", # The version of the program run.
-            "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
-          },
-        ],
-        "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
-        "experiment": { # The experiment used to generate this read group.
-          "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-          "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
-          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
-          "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
-        },
-        "referenceSetId": "A String", # The reference set to which the reads in this read group are aligned.
-        "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
-        "datasetId": "A String", # The ID of the dataset this read group belongs to.
-        "description": "A String", # A free-form text description of this read group.
-      },
-    ],
-    "filename": "A String", # The filename of the original source file for this read group set, if any.
-    "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
-    "id": "A String", # The read group set ID.
-    "datasetId": "A String", # The dataset ID.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Searches for read group sets matching the criteria.
-
-Implements GlobalAllianceApi.searchReadGroupSets.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The read group set search request.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "datasetIds": [ # Restricts this query to read group sets within the given datasets. At least one ID must be provided.
-      "A String",
-    ],
-    "name": "A String", # Only return read group sets for which a substring of the name matches this string.
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 1024.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The read group set search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "readGroupSets": [ # The list of matching read group sets.
-      { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
-          # - A read group set belongs to one dataset.
-          # - A read group belongs to one read group set.
-          # - A read belongs to one read group.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-        "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
-          { # A read group is all the data that's processed the same way by the sequencer.
-            "info": { # A string which maps to an array of values.
-              "a_key": [ # A string which maps to an array of values.
-                "A String",
-              ],
-            },
-            "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-            "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
-            "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
-              {
-                "commandLine": "A String", # The command line used to run this program.
-                "prevProgramId": "A String", # The ID of the program run before this one.
-                "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
-                "version": "A String", # The version of the program run.
-                "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
-              },
-            ],
-            "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
-            "experiment": { # The experiment used to generate this read group.
-              "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-              "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
-              "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
-              "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
-            },
-            "referenceSetId": "A String", # The reference set to which the reads in this read group are aligned.
-            "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
-            "datasetId": "A String", # The ID of the dataset this read group belongs to.
-            "description": "A String", # A free-form text description of this read group.
-          },
-        ],
-        "filename": "A String", # The filename of the original source file for this read group set, if any.
-        "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
-        "id": "A String", # The read group set ID.
-        "datasetId": "A String", # The dataset ID.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(readGroupSetId, body)</code>
-  <pre>Updates a read group set.
-
-Args:
-  readGroupSetId: string, The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
-    # - A read group set belongs to one dataset.
-    # - A read group belongs to one read group set.
-    # - A read belongs to one read group.
-  "info": { # A string which maps to an array of values.
-    "a_key": [ # A string which maps to an array of values.
-      "A String",
-    ],
-  },
-  "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-  "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
-    { # A read group is all the data that's processed the same way by the sequencer.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-      "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
-      "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
-        {
-          "commandLine": "A String", # The command line used to run this program.
-          "prevProgramId": "A String", # The ID of the program run before this one.
-          "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
-          "version": "A String", # The version of the program run.
-          "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
-        },
-      ],
-      "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
-      "experiment": { # The experiment used to generate this read group.
-        "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-        "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
-        "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
-        "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
-      },
-      "referenceSetId": "A String", # The reference set to which the reads in this read group are aligned.
-      "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
-      "datasetId": "A String", # The ID of the dataset this read group belongs to.
-      "description": "A String", # A free-form text description of this read group.
-    },
-  ],
-  "filename": "A String", # The filename of the original source file for this read group set, if any.
-  "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
-  "id": "A String", # The read group set ID.
-  "datasetId": "A String", # The dataset ID.
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
-      # - A read group set belongs to one dataset.
-      # - A read group belongs to one read group set.
-      # - A read belongs to one read group.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
-    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
-      { # A read group is all the data that's processed the same way by the sequencer.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
-        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
-        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
-          {
-            "commandLine": "A String", # The command line used to run this program.
-            "prevProgramId": "A String", # The ID of the program run before this one.
-            "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
-            "version": "A String", # The version of the program run.
-            "name": "A String", # The display name of the program. This is typically the colloquial name of the tool used, for example 'bwa' or 'picard'.
-          },
-        ],
-        "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
-        "experiment": { # The experiment used to generate this read group.
-          "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
-          "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
-          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
-          "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
-        },
-        "referenceSetId": "A String", # The reference set to which the reads in this read group are aligned.
-        "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
-        "datasetId": "A String", # The ID of the dataset this read group belongs to.
-        "description": "A String", # A free-form text description of this read group.
-      },
-    ],
-    "filename": "A String", # The filename of the original source file for this read group set, if any.
-    "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
-    "id": "A String", # The read group set ID.
-    "datasetId": "A String", # The dataset ID.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.reads.html b/docs/dyn/genomics_v1beta2.reads.html
deleted file mode 100644
index 84a28b7..0000000
--- a/docs/dyn/genomics_v1beta2.reads.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.reads.html">reads</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Gets a list of reads for one or more read group sets. Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Gets a list of reads for one or more read group sets. Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned.
-
-If a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only read group set IDs yields all reads in those read group sets, including unmapped reads.
-
-All reads returned (including reads on subsequent pages) are ordered by genomic coordinate (by reference sequence, then position). Reads with equivalent genomic coordinates are returned in an unspecified order. This order is consistent, such that two queries for the same content (regardless of page size) yield reads in the same order across their respective streams of paginated responses.
-
-Implements GlobalAllianceApi.searchReads.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The read search request.
-    "readGroupSetIds": [ # The IDs of the read groups sets within which to search for reads. All specified read group sets must be aligned against a common set of reference sequences; this defines the genomic coordinates for the query. Must specify one of readGroupSetIds or readGroupIds.
-      "A String",
-    ],
-    "readGroupIds": [ # The IDs of the read groups within which to search for reads. All specified read groups must belong to the same read group sets. Must specify one of readGroupSetIds or readGroupIds.
-      "A String",
-    ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 256. The maximum value is 2048.
-    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "referenceName": "A String", # The reference sequence name, for example chr1, 1, or chrX. If set to *, only unmapped reads are returned. If unspecified, all reads (mapped and unmapped) returned.
-    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The read search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "alignments": [ # The list of matching alignments sorted by mapped genomic coordinate, if any, ascending in position within the same reference. Unmapped reads, which have no position, are returned contiguously and are sorted in ascending lexicographic order by fragment name.
-      { # A read alignment describes a linear alignment of a string of DNA to a reference sequence, in addition to metadata about the fragment (the molecule of DNA sequenced) and the read (the bases which were read by the sequencer). A read is equivalent to a line in a SAM file. A read belongs to exactly one read group and exactly one read group set. Generating a reference-aligned sequence string When interacting with mapped reads, it's often useful to produce a string representing the local alignment of the read to reference. The following pseudocode demonstrates one way of doing this:
-          # out = "" offset = 0 for c in read.alignment.cigar { switch c.operation { case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH": out += read.alignedSequence[offset:offset+c.operationLength] offset += c.operationLength break case "CLIP_SOFT", "INSERT": offset += c.operationLength break case "PAD": out += repeat("*", c.operationLength) break case "DELETE": out += repeat("-", c.operationLength) break case "SKIP": out += repeat(" ", c.operationLength) break case "CLIP_HARD": break } } return out
-          # Converting to SAM's CIGAR string The following pseudocode generates a SAM CIGAR string from the cigar field. Note that this is a lossy conversion (cigar.referenceSequence is lost).
-          # cigarMap = { "ALIGNMENT_MATCH": "M", "INSERT": "I", "DELETE": "D", "SKIP": "N", "CLIP_SOFT": "S", "CLIP_HARD": "H", "PAD": "P", "SEQUENCE_MATCH": "=", "SEQUENCE_MISMATCH": "X", } cigarStr = "" for c in read.alignment.cigar { cigarStr += c.operationLength + cigarMap[c.operation] } return cigarStr
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400).
-        "readGroupSetId": "A String", # The ID of the read group set this read belongs to. A read belongs to exactly one read group set.
-        "alignedQuality": [ # The quality of the read sequence contained in this alignment record. (equivalent to QUAL in SAM). alignedSequence and alignedQuality may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
-          42,
-        ],
-        "failedVendorQualityChecks": True or False, # Whether this read did not pass filters, such as platform or vendor quality controls (SAM flag 0x200).
-        "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
-        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This field replaces SAM flag 0x40 and 0x80.
-        "properPlacement": True or False, # The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2).
-        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The position of the primary alignment of the (readNumber+1)%numberReads read in the fragment. It replaces mate position and mate strand in SAM. This field will be unset if that read is unmapped or if the fragment only has a single read.
-          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
-          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
-        },
-        "supplementaryAlignment": True or False, # Whether this alignment is supplementary. Equivalent to SAM flag 0x800. Supplementary alignments are used in the representation of a chimeric alignment. In a chimeric alignment, a read is split into multiple linear alignments that map to different reference contigs. The first linear alignment in the read will be designated as the representative alignment; the remaining linear alignments will be designated as supplementary alignments. These alignments may have different mapping quality scores. In each linear alignment in a chimeric alignment, the read will be hard clipped. The alignedSequence and alignedQuality fields in the alignment record will only represent the bases for its respective linear alignment.
-        "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
-        "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
-        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary alignment represents an alternative to the primary alignment for this read. Aligners may return secondary alignments if a read can map ambiguously to multiple coordinates in the genome. By convention, each read has one and only one alignment where both secondaryAlignment and supplementaryAlignment are false.
-        "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record, without CIGAR operations applied (equivalent to SEQ in SAM). alignedSequence and alignedQuality may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
-        "id": "A String", # The unique ID for this read. This is a generated unique ID, not to be confused with fragmentName.
-        "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the mapped position and local alignment of the read to the reference. # The linear alignment for this alignment record. This field is null for unmapped reads.
-          "position": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The position of this alignment.
-            "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
-            "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
-            "referenceName": "A String", # The name of the reference in whatever reference set is being used.
-          },
-          "cigar": [ # Represents the local alignment of this sequence (alignment matches, indels, etc) against the reference.
-            { # A single CIGAR operation.
-              "referenceSequence": "A String", # referenceSequence is only used at mismatches (SEQUENCE_MISMATCH) and deletions (DELETE). Filling this field replaces SAM's MD tag. If the relevant information is not available, this field is unset.
-              "operation": "A String",
-              "operationLength": "A String", # The number of bases that the operation runs for. Required.
-            },
-          ],
-          "mappingQuality": 42, # The mapping quality of this alignment. Represents how likely the read maps to this position as opposed to other locations.
-              #
-              # Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to the nearest integer.
-        },
-        "readGroupId": "A String", # The ID of the read group this read belongs to. A read belongs to exactly one read group. This is a server-generated ID (not SAM's RG tag).
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.references.bases.html b/docs/dyn/genomics_v1beta2.references.bases.html
deleted file mode 100644
index f91d784..0000000
--- a/docs/dyn/genomics_v1beta2.references.bases.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.references.html">references</a> . <a href="genomics_v1beta2.references.bases.html">bases</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(referenceId, end=None, pageSize=None, pageToken=None, start=None)</a></code></p>
-<p class="firstline">Lists the bases in a reference, optionally restricted to a range.</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="list">list(referenceId, end=None, pageSize=None, pageToken=None, start=None)</code>
-  <pre>Lists the bases in a reference, optionally restricted to a range.
-
-Implements GlobalAllianceApi.getReferenceBases.
-
-Args:
-  referenceId: string, The ID of the reference. (required)
-  end: string, The end position (0-based, exclusive) of this query. Defaults to the length of this reference.
-  pageSize: integer, The maximum number of bases to return in a single page. If unspecified, defaults to 200Kbp (kilo base pairs). The maximum value is 10Mbp (mega base pairs).
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-  start: string, The start position (0-based) of this query. Defaults to 0.
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "sequence": "A String", # A substring of the bases that make up this reference.
-    "offset": "A String", # The offset position (0-based) of the given sequence from the start of this Reference. This value will differ for each page in a paginated request.
-  }</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
diff --git a/docs/dyn/genomics_v1beta2.references.html b/docs/dyn/genomics_v1beta2.references.html
deleted file mode 100644
index 7136750..0000000
--- a/docs/dyn/genomics_v1beta2.references.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.references.html">references</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="genomics_v1beta2.references.bases.html">bases()</a></code>
-</p>
-<p class="firstline">Returns the bases Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#get">get(referenceId)</a></code></p>
-<p class="firstline">Gets a reference.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Searches for references which match the given criteria.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(referenceId)</code>
-  <pre>Gets a reference.
-
-Implements GlobalAllianceApi.getReference.
-
-Args:
-  referenceId: string, The ID of the reference. (required)
-
-Returns:
-  An object of the form:
-
-    { # A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets.
-    "name": "A String", # The name of this reference, for example 22.
-    "sourceURI": "A String", # The URI from which the sequence was obtained. Typically specifies a FASTA format file.
-    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example GCF_000001405.26.
-      "A String",
-    ],
-    "length": "A String", # The length of this reference's sequence.
-    "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format.
-    "id": "A String", # The Google generated immutable ID of the reference.
-    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Searches for references which match the given criteria.
-
-Implements GlobalAllianceApi.searchReferences.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "md5checksums": [ # If present, return references for which the md5checksum matches. See Reference.md5checksum for construction details.
-      "A String",
-    ],
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "referenceSetId": "A String", # If present, return only references which belong to this reference set.
-    "accessions": [ # If present, return references for which the accession matches this string. Best to give a version number, for example GCF_000001405.26. If only the main accession number is given then all records with that main accession will be returned, whichever version. Note that different versions will have different sequences.
-      "A String",
-    ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 4096.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "references": [ # The matching references.
-      { # A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets.
-        "name": "A String", # The name of this reference, for example 22.
-        "sourceURI": "A String", # The URI from which the sequence was obtained. Typically specifies a FASTA format file.
-        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example GCF_000001405.26.
-          "A String",
-        ],
-        "length": "A String", # The length of this reference's sequence.
-        "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format.
-        "id": "A String", # The Google generated immutable ID of the reference.
-        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy. For example, 9606 for human.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.referencesets.html b/docs/dyn/genomics_v1beta2.referencesets.html
deleted file mode 100644
index 943ce17..0000000
--- a/docs/dyn/genomics_v1beta2.referencesets.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.referencesets.html">referencesets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(referenceSetId)</a></code></p>
-<p class="firstline">Gets a reference set.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Searches for reference sets which match the given criteria.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(referenceSetId)</code>
-  <pre>Gets a reference set.
-
-Implements GlobalAllianceApi.getReferenceSet.
-
-Args:
-  referenceSetId: string, The ID of the reference set. (required)
-
-Returns:
-  An object of the form:
-
-    { # A reference set is a set of references which typically comprise a reference assembly for a species, such as GRCh38 which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references.
-    "description": "A String", # Free text description of this reference set.
-    "sourceURI": "A String", # The URI from which the references were obtained.
-    "referenceIds": [ # The IDs of the reference objects that are part of this set. Reference.md5checksum must be unique within this set.
-      "A String",
-    ],
-    "assemblyId": "A String", # Public id of this reference set, such as GRCh37.
-    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example NC_000001.11.
-      "A String",
-    ],
-    "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string reference.md5checksum (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format.
-    "id": "A String", # The Google generated immutable ID of the reference set.
-    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human) indicating the species which this reference set is intended to model. Note that contained references may specify a different ncbiTaxonId, as assemblies may contain reference sequences which do not belong to the modeled species, for example EBV in a human reference genome.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Searches for reference sets which match the given criteria.
-
-Implements GlobalAllianceApi.searchReferenceSets.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "md5checksums": [ # If present, return references for which the md5checksum matches. See ReferenceSet.md5checksum for details.
-      "A String",
-    ],
-    "assemblyId": "A String", # If present, return reference sets for which a substring of their assemblyId matches this string (case insensitive).
-    "accessions": [ # If present, return references for which the accession matches any of these strings. Best to give a version number, for example GCF_000001405.26. If only the main accession number is given then all records with that main accession will be returned, whichever version. Note that different versions will have different sequences.
-      "A String",
-    ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 4096.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-  }
-
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "referenceSets": [ # The matching references sets.
-      { # A reference set is a set of references which typically comprise a reference assembly for a species, such as GRCh38 which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references.
-        "description": "A String", # Free text description of this reference set.
-        "sourceURI": "A String", # The URI from which the references were obtained.
-        "referenceIds": [ # The IDs of the reference objects that are part of this set. Reference.md5checksum must be unique within this set.
-          "A String",
-        ],
-        "assemblyId": "A String", # Public id of this reference set, such as GRCh37.
-        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example NC_000001.11.
-          "A String",
-        ],
-        "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string reference.md5checksum (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format.
-        "id": "A String", # The Google generated immutable ID of the reference set.
-        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (for example, 9606 for human) indicating the species which this reference set is intended to model. Note that contained references may specify a different ncbiTaxonId, as assemblies may contain reference sequences which do not belong to the modeled species, for example EBV in a human reference genome.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.variants.html b/docs/dyn/genomics_v1beta2.variants.html
deleted file mode 100644
index 88f2479..0000000
--- a/docs/dyn/genomics_v1beta2.variants.html
+++ /dev/null
@@ -1,434 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.variants.html">variants</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates a new variant.</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(variantId)</a></code></p>
-<p class="firstline">Deletes a variant.</p>
-<p class="toc_element">
-  <code><a href="#get">get(variantId)</a></code></p>
-<p class="firstline">Gets a variant by ID.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Gets a list of variants matching the criteria.</p>
-<p class="toc_element">
-  <code><a href="#update">update(variantId, body)</a></code></p>
-<p class="firstline">Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates a new variant.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-          42,
-        ],
-        "callSetId": "A String", # The ID of the call set this variant call belongs to.
-        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-          3.14,
-        ],
-        "callSetName": "A String", # The name of the call set this variant call belongs to.
-      },
-    ],
-    "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-    "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-      "A String",
-    ],
-    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-    "names": [ # Names for the variant, for example a RefSNP ID.
-      "A String",
-    ],
-    "alternateBases": [ # The bases that appear instead of the reference bases.
-      "A String",
-    ],
-    "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-    "id": "A String", # The Google generated ID of the variant, immutable.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-        { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-          "info": { # A string which maps to an array of values.
-            "a_key": [ # A string which maps to an array of values.
-              "A String",
-            ],
-          },
-          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-            42,
-          ],
-          "callSetId": "A String", # The ID of the call set this variant call belongs to.
-          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-            3.14,
-          ],
-          "callSetName": "A String", # The name of the call set this variant call belongs to.
-        },
-      ],
-      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-        "A String",
-      ],
-      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-      "names": [ # Names for the variant, for example a RefSNP ID.
-        "A String",
-      ],
-      "alternateBases": [ # The bases that appear instead of the reference bases.
-        "A String",
-      ],
-      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-      "id": "A String", # The Google generated ID of the variant, immutable.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(variantId)</code>
-  <pre>Deletes a variant.
-
-Args:
-  variantId: string, The ID of the variant to be deleted. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(variantId)</code>
-  <pre>Gets a variant by ID.
-
-Args:
-  variantId: string, Required. (required)
-
-Returns:
-  An object of the form:
-
-    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-        { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-          "info": { # A string which maps to an array of values.
-            "a_key": [ # A string which maps to an array of values.
-              "A String",
-            ],
-          },
-          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-            42,
-          ],
-          "callSetId": "A String", # The ID of the call set this variant call belongs to.
-          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-            3.14,
-          ],
-          "callSetName": "A String", # The name of the call set this variant call belongs to.
-        },
-      ],
-      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-        "A String",
-      ],
-      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-      "names": [ # Names for the variant, for example a RefSNP ID.
-        "A String",
-      ],
-      "alternateBases": [ # The bases that appear instead of the reference bases.
-        "A String",
-      ],
-      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-      "id": "A String", # The Google generated ID of the variant, immutable.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Gets a list of variants matching the criteria.
-
-Implements GlobalAllianceApi.searchVariants.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The variant search request.
-    "end": "A String", # The end of the window, 0-based exclusive. If unspecified or 0, defaults to the length of the reference.
-    "pageSize": 42, # The maximum number of variants to return in a single page. If unspecified, defaults to 5000. The maximum value is 10000.
-    "start": "A String", # The beginning of the window (0-based, inclusive) for which overlapping variants should be returned. If unspecified, defaults to 0.
-    "maxCalls": 42, # The maximum number of calls to return in a single page. Note that this limit may be exceeded in the event that a matching variant contains more calls than the requested maximum. If unspecified, defaults to 5000. The maximum value is 10000.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "callSetIds": [ # Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all.
-      "A String",
-    ],
-    "variantName": "A String", # Only return variants which have exactly this name.
-    "referenceName": "A String", # Required. Only return variants in this reference sequence.
-    "variantSetIds": [ # At most one variant set ID must be provided. Only variants from this variant set will be returned. If omitted, a call set id must be included in the request. Both this and call_set_ids may be set.
-      "A String",
-    ],
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The variant search response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "variants": [ # The list of matching Variants.
-      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-          "info": { # A string which maps to an array of values.
-            "a_key": [ # A string which maps to an array of values.
-              "A String",
-            ],
-          },
-          "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-          "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-          "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-            { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-              "info": { # A string which maps to an array of values.
-                "a_key": [ # A string which maps to an array of values.
-                  "A String",
-                ],
-              },
-              "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-                42,
-              ],
-              "callSetId": "A String", # The ID of the call set this variant call belongs to.
-              "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-              "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-                3.14,
-              ],
-              "callSetName": "A String", # The name of the call set this variant call belongs to.
-            },
-          ],
-          "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-          "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-          "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-            "A String",
-          ],
-          "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-          "names": [ # Names for the variant, for example a RefSNP ID.
-            "A String",
-          ],
-          "alternateBases": [ # The bases that appear instead of the reference bases.
-            "A String",
-          ],
-          "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-          "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-          "id": "A String", # The Google generated ID of the variant, immutable.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(variantId, body)</code>
-  <pre>Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.
-
-Args:
-  variantId: string, The ID of the variant to be updated. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-    "info": { # A string which maps to an array of values.
-      "a_key": [ # A string which maps to an array of values.
-        "A String",
-      ],
-    },
-    "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-          42,
-        ],
-        "callSetId": "A String", # The ID of the call set this variant call belongs to.
-        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-          3.14,
-        ],
-        "callSetName": "A String", # The name of the call set this variant call belongs to.
-      },
-    ],
-    "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-    "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-      "A String",
-    ],
-    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-    "names": [ # Names for the variant, for example a RefSNP ID.
-      "A String",
-    ],
-    "alternateBases": [ # The bases that appear instead of the reference bases.
-      "A String",
-    ],
-    "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-    "id": "A String", # The Google generated ID of the variant, immutable.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-        { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-          "info": { # A string which maps to an array of values.
-            "a_key": [ # A string which maps to an array of values.
-              "A String",
-            ],
-          },
-          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-            42,
-          ],
-          "callSetId": "A String", # The ID of the call set this variant call belongs to.
-          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-            3.14,
-          ],
-          "callSetName": "A String", # The name of the call set this variant call belongs to.
-        },
-      ],
-      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-        "A String",
-      ],
-      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-      "names": [ # Names for the variant, for example a RefSNP ID.
-        "A String",
-      ],
-      "alternateBases": [ # The bases that appear instead of the reference bases.
-        "A String",
-      ],
-      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-      "id": "A String", # The Google generated ID of the variant, immutable.
-    }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.variantsets.html b/docs/dyn/genomics_v1beta2.variantsets.html
deleted file mode 100644
index 4997606..0000000
--- a/docs/dyn/genomics_v1beta2.variantsets.html
+++ /dev/null
@@ -1,561 +0,0 @@
-<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="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.variantsets.html">variantsets</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#create">create(body)</a></code></p>
-<p class="firstline">Creates a new variant set (only necessary in v1).</p>
-<p class="toc_element">
-  <code><a href="#delete">delete(variantSetId)</a></code></p>
-<p class="firstline">Deletes a variant set including all variants, call sets, and calls within. This is not reversible.</p>
-<p class="toc_element">
-  <code><a href="#export">export(variantSetId, body)</a></code></p>
-<p class="firstline">Exports variant set data to an external destination.</p>
-<p class="toc_element">
-  <code><a href="#get">get(variantSetId)</a></code></p>
-<p class="firstline">Gets a variant set by ID.</p>
-<p class="toc_element">
-  <code><a href="#importVariants">importVariants(variantSetId, body)</a></code></p>
-<p class="firstline">Creates variant data by asynchronously importing the provided information.</p>
-<p class="toc_element">
-  <code><a href="#mergeVariants">mergeVariants(variantSetId, body)</a></code></p>
-<p class="firstline">Merges the given variants with existing variants. Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created.</p>
-<p class="toc_element">
-  <code><a href="#patch">patch(variantSetId, body)</a></code></p>
-<p class="firstline">Updates a variant set's metadata. All other modifications are silently ignored. This method supports patch semantics.</p>
-<p class="toc_element">
-  <code><a href="#search">search(body)</a></code></p>
-<p class="firstline">Returns a list of all variant sets matching search criteria.</p>
-<p class="toc_element">
-  <code><a href="#update">update(variantSetId, body)</a></code></p>
-<p class="firstline">Updates a variant set's metadata. All other modifications are silently ignored.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="create">create(body)</code>
-  <pre>Creates a new variant set (only necessary in v1).
-
-The provided variant set must have a valid datasetId set - all other fields are optional. Note that the id field will be ignored, as this is assigned by the server.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-  "name": "A String", # User-specified, mutable name.
-  "description": "A String", # A textual description of this variant set.
-  "metadata": [ # The metadata associated with this variant set.
-    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "description": "A String", # A textual description of this metadata.
-      "number": "A String", # The number of values that can be included in a field described by this metadata.
-      "value": "A String", # The value field for simple metadata
-      "key": "A String", # The top-level key.
-      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-    },
-  ],
-  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-      # 
-      # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-  "id": "A String", # The Google-generated ID of the variant set. Immutable.
-  "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-      "referenceName": "A String", # The name of the reference associated with this reference bound.
-    },
-  ],
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-    "name": "A String", # User-specified, mutable name.
-    "description": "A String", # A textual description of this variant set.
-    "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
-        "value": "A String", # The value field for simple metadata
-        "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-        #
-        # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The Google-generated ID of the variant set. Immutable.
-    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="delete">delete(variantSetId)</code>
-  <pre>Deletes a variant set including all variants, call sets, and calls within. This is not reversible.
-
-Args:
-  variantSetId: string, The ID of the variant set to be deleted. Required. (required)
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="export">export(variantSetId, body)</code>
-  <pre>Exports variant set data to an external destination.
-
-Args:
-  variantSetId: string, The ID of the variant set that contains variant data which should be exported. Required. The caller must have READ access to this variant set. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The variant data export request.
-    "bigqueryDataset": "A String", # Required. The BigQuery dataset to export data to. This dataset must already exist. Note that this is distinct from the Genomics concept of "dataset".
-    "format": "A String", # The format for the exported data.
-    "callSetIds": [ # If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.
-      "A String",
-    ],
-    "projectNumber": "A String", # Required. The Google Cloud project number that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job.
-    "bigqueryTable": "A String", # Required. The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The variant data export response.
-    "jobId": "A String", # A job ID that can be used to get status information.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(variantSetId)</code>
-  <pre>Gets a variant set by ID.
-
-Args:
-  variantSetId: string, The ID of the variant set. Required. (required)
-
-Returns:
-  An object of the form:
-
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-    "name": "A String", # User-specified, mutable name.
-    "description": "A String", # A textual description of this variant set.
-    "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
-        "value": "A String", # The value field for simple metadata
-        "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-        #
-        # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The Google-generated ID of the variant set. Immutable.
-    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="importVariants">importVariants(variantSetId, body)</code>
-  <pre>Creates variant data by asynchronously importing the provided information.
-
-The variants for import will be merged with any existing data and each other according to the behavior of mergeVariants. In particular, this means for merged VCF variants that have conflicting info fields, some data will be arbitrarily discarded unless otherwise specified in the InfoMergeConfig field of ImportVariantsRequest. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.
-
-Args:
-  variantSetId: string, Required. The variant set to which variant data should be imported. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The variant data import request.
-    "normalizeReferenceNames": True or False, # Convert reference names to the canonical representation. hg19 haploytypes (those reference names containing "_hap") are not modified in any way. All other reference names are modified according to the following rules: The reference name is capitalized. The "chr" prefix is dropped for all autosomes and sex chromsomes. For example "chr17" becomes "17" and "chrX" becomes "X". All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
-    "sourceUris": [ # A list of URIs referencing variant files in Google Cloud Storage. URIs can include wildcards as described here. Note that recursive wildcards ('**') are not supported.
-      "A String",
-    ],
-    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to "VCF".
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The variant data import response.
-    "jobId": "A String", # A job ID that can be used to get status information.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="mergeVariants">mergeVariants(variantSetId, body)</code>
-  <pre>Merges the given variants with existing variants. Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created.
-
-When variants are merged, the call information from the new variant is added to the existing variant. Variant info fields are merged as specified in the InfoMergeConfig field of the MergeVariantsRequest.
-
-Args:
-  variantSetId: string, The destination variant set. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{
-    "variants": [ # The variants to be merged with existing variants.
-      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
-          "info": { # A string which maps to an array of values.
-            "a_key": [ # A string which maps to an array of values.
-              "A String",
-            ],
-          },
-          "variantSetId": "A String", # The ID of the variant set this variant belongs to.
-          "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
-          "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
-            { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
-              "info": { # A string which maps to an array of values.
-                "a_key": [ # A string which maps to an array of values.
-                  "A String",
-                ],
-              },
-              "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
-                42,
-              ],
-              "callSetId": "A String", # The ID of the call set this variant call belongs to.
-              "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
-              "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
-                3.14,
-              ],
-              "callSetName": "A String", # The name of the call set this variant call belongs to.
-            },
-          ],
-          "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-          "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
-          "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
-            "A String",
-          ],
-          "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
-          "names": [ # Names for the variant, for example a RefSNP ID.
-            "A String",
-          ],
-          "alternateBases": [ # The bases that appear instead of the reference bases.
-            "A String",
-          ],
-          "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
-          "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
-          "id": "A String", # The Google generated ID of the variant, immutable.
-        },
-    ],
-  }
-
-</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="patch">patch(variantSetId, body)</code>
-  <pre>Updates a variant set's metadata. All other modifications are silently ignored. This method supports patch semantics.
-
-Args:
-  variantSetId: string, The ID of the variant set to be updated (must already exist). (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-  "name": "A String", # User-specified, mutable name.
-  "description": "A String", # A textual description of this variant set.
-  "metadata": [ # The metadata associated with this variant set.
-    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "description": "A String", # A textual description of this metadata.
-      "number": "A String", # The number of values that can be included in a field described by this metadata.
-      "value": "A String", # The value field for simple metadata
-      "key": "A String", # The top-level key.
-      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-    },
-  ],
-  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-      # 
-      # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-  "id": "A String", # The Google-generated ID of the variant set. Immutable.
-  "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-      "referenceName": "A String", # The name of the reference associated with this reference bound.
-    },
-  ],
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-    "name": "A String", # User-specified, mutable name.
-    "description": "A String", # A textual description of this variant set.
-    "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
-        "value": "A String", # The value field for simple metadata
-        "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-        #
-        # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The Google-generated ID of the variant set. Immutable.
-    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="search">search(body)</code>
-  <pre>Returns a list of all variant sets matching search criteria.
-
-Implements GlobalAllianceApi.searchVariantSets.
-
-Args:
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The search variant sets request.
-    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
-    "datasetIds": [ # Exactly one dataset ID must be provided here. Only variant sets which belong to this dataset will be returned.
-      "A String",
-    ],
-    "pageSize": 42, # The maximum number of results to return in a single page. If unspecified, defaults to 1024.
-  }
-
-
-Returns:
-  An object of the form:
-
-    { # The search variant sets response.
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
-    "variantSets": [ # The variant sets belonging to the requested dataset.
-      { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-        "name": "A String", # User-specified, mutable name.
-        "description": "A String", # A textual description of this variant set.
-        "metadata": [ # The metadata associated with this variant set.
-          { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-            "info": { # A string which maps to an array of values.
-              "a_key": [ # A string which maps to an array of values.
-                "A String",
-              ],
-            },
-            "description": "A String", # A textual description of this metadata.
-            "number": "A String", # The number of values that can be included in a field described by this metadata.
-            "value": "A String", # The value field for simple metadata
-            "key": "A String", # The top-level key.
-            "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-            "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-          },
-        ],
-        "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-            #
-            # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-        "id": "A String", # The Google-generated ID of the variant set. Immutable.
-        "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-        "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-          { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-            "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-            "referenceName": "A String", # The name of the reference associated with this reference bound.
-          },
-        ],
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="update">update(variantSetId, body)</code>
-  <pre>Updates a variant set's metadata. All other modifications are silently ignored.
-
-Args:
-  variantSetId: string, The ID of the variant set to be updated (must already exist). (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-  "name": "A String", # User-specified, mutable name.
-  "description": "A String", # A textual description of this variant set.
-  "metadata": [ # The metadata associated with this variant set.
-    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-      "info": { # A string which maps to an array of values.
-        "a_key": [ # A string which maps to an array of values.
-          "A String",
-        ],
-      },
-      "description": "A String", # A textual description of this metadata.
-      "number": "A String", # The number of values that can be included in a field described by this metadata.
-      "value": "A String", # The value field for simple metadata
-      "key": "A String", # The top-level key.
-      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-    },
-  ],
-  "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-      # 
-      # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-  "id": "A String", # The Google-generated ID of the variant set. Immutable.
-  "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-      "referenceName": "A String", # The name of the reference associated with this reference bound.
-    },
-  ],
-}
-
-
-Returns:
-  An object of the form:
-
-    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
-    "name": "A String", # User-specified, mutable name.
-    "description": "A String", # A textual description of this variant set.
-    "metadata": [ # The metadata associated with this variant set.
-      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
-        "info": { # A string which maps to an array of values.
-          "a_key": [ # A string which maps to an array of values.
-            "A String",
-          ],
-        },
-        "description": "A String", # A textual description of this metadata.
-        "number": "A String", # The number of values that can be included in a field described by this metadata.
-        "value": "A String", # The value field for simple metadata
-        "key": "A String", # The top-level key.
-        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
-        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
-      },
-    ],
-    "referenceSetId": "A String", # The reference set to which the variant set is mapped. The reference set describes the alignment provenance of the variant set, while the referenceBounds describe the shape of the actual variant data. The reference set's reference names are a superset of those found in the referenceBounds.
-        #
-        # For example, given a variant set that is mapped to the GRCh38 reference set and contains a single variant on reference 'X', referenceBounds would contain only an entry for 'X', while the associated reference set enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
-    "id": "A String", # The Google-generated ID of the variant set. Immutable.
-    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
-    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
-      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
-        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
-        "referenceName": "A String", # The name of the reference associated with this reference bound.
-      },
-    ],
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gmail_v1.users.messages.html b/docs/dyn/gmail_v1.users.messages.html
index f547d85..bcdab0e 100644
--- a/docs/dyn/gmail_v1.users.messages.html
+++ b/docs/dyn/gmail_v1.users.messages.html
@@ -413,7 +413,7 @@
 Args:
   userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
   labelIds: string, Only return messages with labels that match all of the specified label IDs. (repeated)
-  q: string, Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, "from:someuser@example.com rfc822msgid: is:unread". Parameter cannot be used when accessing the api using the gmail.metadata scope.
+  q: string, Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, "from:someuser@example.com rfc822msgid:<somemsgid@example.com> is:unread". Parameter cannot be used when accessing the api using the gmail.metadata scope.
   pageToken: string, Page token to retrieve a specific page of results in the list.
   maxResults: integer, Maximum number of messages to return.
   includeSpamTrash: boolean, Include messages from SPAM and TRASH in the results.
diff --git a/docs/dyn/iam_v1.projects.serviceAccounts.html b/docs/dyn/iam_v1.projects.serviceAccounts.html
index 5cae7ff..34189b7 100644
--- a/docs/dyn/iam_v1.projects.serviceAccounts.html
+++ b/docs/dyn/iam_v1.projects.serviceAccounts.html
@@ -374,6 +374,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -547,6 +548,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -633,6 +635,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
diff --git a/docs/dyn/iam_v1.projects.serviceAccounts.keys.html b/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
index 00294dc..89b9e64 100644
--- a/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
+++ b/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
@@ -102,6 +102,7 @@
     The object takes the form of:
 
 { # The service account key create request.
+    "includePublicKeyData": True or False,
     "keyAlgorithm": "A String", # Which type of key and algorithm to use for the key.
         # The default is currently a 2K RSA key.  However this may change in the
         # future.
diff --git a/docs/dyn/iam_v1.roles.html b/docs/dyn/iam_v1.roles.html
index f2278e6..5ac5e6c 100644
--- a/docs/dyn/iam_v1.roles.html
+++ b/docs/dyn/iam_v1.roles.html
@@ -77,6 +77,9 @@
 <p class="toc_element">
   <code><a href="#queryGrantableRoles">queryGrantableRoles(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Queries roles that can be granted on a particular resource.</p>
+<p class="toc_element">
+  <code><a href="#queryGrantableRoles_next">queryGrantableRoles_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="queryGrantableRoles">queryGrantableRoles(body, x__xgafv=None)</code>
@@ -89,11 +92,14 @@
     The object takes the form of:
 
 { # The grantable role query request.
+    "pageToken": "A String", # Optional pagination token returned in an earlier
+        # QueryGrantableRolesResponse.
     "fullResourceName": "A String", # Required. The full resource name to query from the list of grantable roles.
         # 
         # The name follows the Google Cloud Platform resource format.
         # For example, a Cloud Platform project with id `my-project` will be named
         # `//cloudresourcemanager.googleapis.com/projects/my-project`.
+    "pageSize": 42, # Optional limit on the number of roles to include in the response.
   }
 
   x__xgafv: string, V1 error format.
@@ -105,9 +111,12 @@
   An object of the form:
 
     { # The grantable role query response.
+    "nextPageToken": "A String", # To retrieve the next page of results, set
+        # `QueryGrantableRolesRequest.page_token` to this value.
     "roles": [ # The list of matching roles.
       { # A role in the Identity and Access Management API.
-        "description": "A String", # Optional.  A human-readable description for the role.
+        "title": "A String", # Optional.  A human-readable title for the role.  Typically this
+            # is limited to 100 UTF-8 bytes.
         "name": "A String", # The name of the role.
             #
             # When Role is used in CreateRole, the role name must not be set.
@@ -115,11 +124,24 @@
             # When Role is used in output and other input such as UpdateRole, the role
             # name is the complete path, e.g., roles/logging.viewer for curated roles
             # and organizations/{ORGANIZATION_ID}/roles/logging.viewer for custom roles.
-        "title": "A String", # Optional.  A human-readable title for the role.  Typically this
-            # is limited to 100 UTF-8 bytes.
+        "description": "A String", # Optional.  A human-readable description for the role.
       },
     ],
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="queryGrantableRoles_next">queryGrantableRoles_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
diff --git a/docs/dyn/identitytoolkit_v3.relyingparty.html b/docs/dyn/identitytoolkit_v3.relyingparty.html
index 4524ab2..16cbc44 100644
--- a/docs/dyn/identitytoolkit_v3.relyingparty.html
+++ b/docs/dyn/identitytoolkit_v3.relyingparty.html
@@ -232,12 +232,14 @@
         "customAuth": True or False, # Whether the user is authenticated by the developer.
         "disabled": True or False, # Whether the user is disabled.
         "version": 42, # Version of the user's password.
+        "phoneNumber": "A String", # User's phone number.
         "providerUserInfo": [ # The IDP of the user.
           {
             "federatedId": "A String", # User's identifier at IDP.
             "displayName": "A String", # The user's display name at the IDP.
             "photoUrl": "A String", # The user's photo url at the IDP.
             "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+            "phoneNumber": "A String", # User's phone number.
             "rawId": "A String", # User's raw identifier directly returned from IDP.
             "email": "A String", # User's email at IDP.
             "screenName": "A String", # User's screen name at Twitter or login name at Github.
@@ -305,12 +307,14 @@
         "customAuth": True or False, # Whether the user is authenticated by the developer.
         "disabled": True or False, # Whether the user is disabled.
         "version": 42, # Version of the user's password.
+        "phoneNumber": "A String", # User's phone number.
         "providerUserInfo": [ # The IDP of the user.
           {
             "federatedId": "A String", # User's identifier at IDP.
             "displayName": "A String", # The user's display name at the IDP.
             "photoUrl": "A String", # The user's photo url at the IDP.
             "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+            "phoneNumber": "A String", # User's phone number.
             "rawId": "A String", # User's raw identifier directly returned from IDP.
             "email": "A String", # User's email at IDP.
             "screenName": "A String", # User's screen name at Twitter or login name at Github.
@@ -709,12 +713,14 @@
         "customAuth": True or False, # Whether the user is authenticated by the developer.
         "disabled": True or False, # Whether the user is disabled.
         "version": 42, # Version of the user's password.
+        "phoneNumber": "A String", # User's phone number.
         "providerUserInfo": [ # The IDP of the user.
           {
             "federatedId": "A String", # User's identifier at IDP.
             "displayName": "A String", # The user's display name at the IDP.
             "photoUrl": "A String", # The user's photo url at the IDP.
             "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
+            "phoneNumber": "A String", # User's phone number.
             "rawId": "A String", # User's raw identifier directly returned from IDP.
             "email": "A String", # User's email at IDP.
             "screenName": "A String", # User's screen name at Twitter or login name at Github.
diff --git a/docs/dyn/language_v1.documents.html b/docs/dyn/language_v1.documents.html
index b01b350..545dded 100644
--- a/docs/dyn/language_v1.documents.html
+++ b/docs/dyn/language_v1.documents.html
@@ -98,6 +98,7 @@
     The object takes the form of:
 
 { # The entity analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -107,9 +108,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -118,7 +118,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -134,12 +133,6 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
-        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
-            #
-            # The salience score for an entity provides information about the
-            # importance or centrality of that entity to the entire document text.
-            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
-            # salient.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -152,6 +145,12 @@
             "type": "A String", # The type of the entity mention.
           },
         ],
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
         "type": "A String", # The entity type.
         "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
@@ -164,7 +163,7 @@
     ],
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
-        # See `Document.language` field for more details.
+        # See Document.language field for more details.
   }</pre>
 </div>
 
@@ -177,8 +176,8 @@
     The object takes the form of:
 
 { # The sentiment analysis request message.
-    "document": { # ################################################################ # # Input document. Currently, `analyzeSentiment` only supports English text
-        # (Document.language="EN").
+    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets.
+    "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
       "content": "A String", # The content of the input in string format.
@@ -187,9 +186,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -198,7 +196,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -220,7 +217,7 @@
     },
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
-        # See `Document.language` field for more details.
+        # See Document.language field for more details.
     "sentences": [ # The sentiment for all the sentences in the document.
       { # Represents a sentence in the input document.
         "text": { # Represents an output piece of text. # The sentence text.
@@ -254,6 +251,7 @@
     The object takes the form of:
 
 { # The syntax analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -263,9 +261,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -274,7 +271,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -324,7 +320,7 @@
     ],
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
-        # See `Document.language` field for more details.
+        # See Document.language field for more details.
     "sentences": [ # Sentences in the input document.
       { # Represents a sentence in the input document.
         "text": { # Represents an output piece of text. # The sentence text.
@@ -368,9 +364,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -440,12 +435,6 @@
       { # Represents a phrase in the text that is a known entity, such as
           # a person, an organization, or location. The API associates information, such
           # as salience and mentions, with entities.
-        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
-            #
-            # The salience score for an entity provides information about the
-            # importance or centrality of that entity to the entire document text.
-            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
-            # salient.
         "mentions": [ # The mentions of this entity in the input document. The API currently
             # supports proper noun mentions.
           { # Represents a mention for an entity in the text. Currently, proper noun
@@ -458,6 +447,12 @@
             "type": "A String", # The type of the entity mention.
           },
         ],
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
         "type": "A String", # The entity type.
         "name": "A String", # The representative name for the entity.
         "metadata": { # Metadata associated with the entity.
@@ -479,7 +474,7 @@
     },
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
-        # See `Document.language` field for more details.
+        # See Document.language field for more details.
     "sentences": [ # Sentences in the input document. Populated if the user enables
         # AnnotateTextRequest.Features.extract_syntax.
       { # Represents a sentence in the input document.
diff --git a/docs/dyn/language_v1beta1.documents.html b/docs/dyn/language_v1beta1.documents.html
index 37ff1bf..5f014c2 100644
--- a/docs/dyn/language_v1beta1.documents.html
+++ b/docs/dyn/language_v1beta1.documents.html
@@ -108,9 +108,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -179,8 +178,7 @@
 { # The sentiment analysis request message.
     "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets for the
         # sentence sentiment.
-    "document": { # ################################################################ # # Input document. Currently, `analyzeSentiment` only supports English text
-        # (Document.language="EN").
+    "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
       "content": "A String", # The content of the input in string format.
@@ -189,9 +187,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -216,14 +213,15 @@
       "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
           # favor of score. Please refer to our documentation at
           # https://cloud.google.com/natural-language/docs for more information.
+      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+          # (positive sentiment).
       "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
           # the absolute magnitude of sentiment regardless of score (positive or
           # negative).
-      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-          # (positive sentiment).
     },
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
     "sentences": [ # The sentiment for all the sentences in the document.
       { # Represents a sentence in the input document.
         "text": { # Represents an output piece of text. # The sentence text.
@@ -238,11 +236,11 @@
           "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
               # favor of score. Please refer to our documentation at
               # https://cloud.google.com/natural-language/docs for more information.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
           "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
               # the absolute magnitude of sentiment regardless of score (positive or
               # negative).
-          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-              # (positive sentiment).
         },
       },
     ],
@@ -270,9 +268,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -294,14 +291,10 @@
     { # The syntax analysis response message.
     "tokens": [ # Tokens, along with their syntactic information, in the input document.
       { # Represents the smallest syntactic building block of the text.
-        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
-        "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
-          "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
-              # This is the index of the token which has an arc going to this token.
-              # The index is the position of the token in the array of tokens returned
-              # by the API method. If this token is a root token, then the
-              # `head_token_index` is its own index.
-          "label": "A String", # The parse label for the token.
+        "text": { # Represents an output piece of text. # The token text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
         },
         "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
           "case": "A String", # The grammatical case.
@@ -317,11 +310,15 @@
           "proper": "A String", # The grammatical properness.
           "voice": "A String", # The grammatical voice.
         },
-        "text": { # Represents an output piece of text. # The token text.
-          "content": "A String", # The content of the output text.
-          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
-              # document according to the EncodingType specified in the API request.
+        "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
+          "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
+              # This is the index of the token which has an arc going to this token.
+              # The index is the position of the token in the array of tokens returned
+              # by the API method. If this token is a root token, then the
+              # `head_token_index` is its own index.
+          "label": "A String", # The parse label for the token.
         },
+        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
     ],
     "language": "A String", # The language of the text, which will be the same as the language specified
@@ -341,11 +338,11 @@
           "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
               # favor of score. Please refer to our documentation at
               # https://cloud.google.com/natural-language/docs for more information.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
           "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
               # the absolute magnitude of sentiment regardless of score (positive or
               # negative).
-          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-              # (positive sentiment).
         },
       },
     ],
@@ -364,6 +361,12 @@
 { # The request message for the text annotation API, which can perform multiple
       # analysis types (sentiment, entities, and syntax) in one call.
     "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+    "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
+        # Setting each one to true will enable that specific analysis for the input.
+      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
+      "extractEntities": True or False, # Extract entities.
+      "extractSyntax": True or False, # Extract syntax information.
+    },
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -373,9 +376,8 @@
       "language": "A String", # The language of the document (if not specified, the language is
           # automatically detected). Both ISO and BCP-47 language codes are
           # accepted.<br>
-          # **Current Language Restrictions:**
-          #
-          #  * Only English, Spanish, and Japanese textual content are supported.
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
           # If the language (either specified by the caller or automatically detected)
           # is not supported by the called API method, an `INVALID_ARGUMENT` error
           # is returned.
@@ -384,12 +386,6 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
-    "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
-        # Setting each one to true will enable that specific analysis for the input.
-      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
-      "extractEntities": True or False, # Extract entities.
-      "extractSyntax": True or False, # Extract syntax information.
-    },
   }
 
   x__xgafv: string, V1 error format.
@@ -405,14 +401,10 @@
         # Populated if the user enables
         # AnnotateTextRequest.Features.extract_syntax.
       { # Represents the smallest syntactic building block of the text.
-        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
-        "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
-          "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
-              # This is the index of the token which has an arc going to this token.
-              # The index is the position of the token in the array of tokens returned
-              # by the API method. If this token is a root token, then the
-              # `head_token_index` is its own index.
-          "label": "A String", # The parse label for the token.
+        "text": { # Represents an output piece of text. # The token text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
         },
         "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
           "case": "A String", # The grammatical case.
@@ -428,11 +420,15 @@
           "proper": "A String", # The grammatical properness.
           "voice": "A String", # The grammatical voice.
         },
-        "text": { # Represents an output piece of text. # The token text.
-          "content": "A String", # The content of the output text.
-          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
-              # document according to the EncodingType specified in the API request.
+        "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
+          "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
+              # This is the index of the token which has an arc going to this token.
+              # The index is the position of the token in the array of tokens returned
+              # by the API method. If this token is a root token, then the
+              # `head_token_index` is its own index.
+          "label": "A String", # The parse label for the token.
         },
+        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
       },
     ],
     "entities": [ # Entities, along with their semantic information, in the input document.
@@ -475,11 +471,11 @@
       "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
           # favor of score. Please refer to our documentation at
           # https://cloud.google.com/natural-language/docs for more information.
+      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+          # (positive sentiment).
       "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
           # the absolute magnitude of sentiment regardless of score (positive or
           # negative).
-      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-          # (positive sentiment).
     },
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
@@ -499,11 +495,11 @@
           "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
               # favor of score. Please refer to our documentation at
               # https://cloud.google.com/natural-language/docs for more information.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
           "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
               # the absolute magnitude of sentiment regardless of score (positive or
               # negative).
-          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-              # (positive sentiment).
         },
       },
     ],
diff --git a/docs/dyn/language_v1beta2.documents.html b/docs/dyn/language_v1beta2.documents.html
new file mode 100644
index 0000000..2020777
--- /dev/null
+++ b/docs/dyn/language_v1beta2.documents.html
@@ -0,0 +1,643 @@
+<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="language_v1beta2.html">Google Cloud Natural Language API</a> . <a href="language_v1beta2.documents.html">documents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#analyzeEntities">analyzeEntities(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Finds named entities (currently proper names and common nouns) in the text</p>
+<p class="toc_element">
+  <code><a href="#analyzeEntitySentiment">analyzeEntitySentiment(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Finds entities, similar to AnalyzeEntities in the text and analyzes</p>
+<p class="toc_element">
+  <code><a href="#analyzeSentiment">analyzeSentiment(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Analyzes the sentiment of the provided text.</p>
+<p class="toc_element">
+  <code><a href="#analyzeSyntax">analyzeSyntax(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Analyzes the syntax of the text and provides sentence boundaries and</p>
+<p class="toc_element">
+  <code><a href="#annotateText">annotateText(body, x__xgafv=None)</a></code></p>
+<p class="firstline">A convenience method that provides all syntax, sentiment, entity, and</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="analyzeEntities">analyzeEntities(body, x__xgafv=None)</code>
+  <pre>Finds named entities (currently proper names and common nouns) in the text
+along with entity types, salience, mentions for each entity, and
+other properties.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The entity analysis request message.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The entity analysis response message.
+    "entities": [ # The recognized entities in the input document.
+      { # Represents a phrase in the text that is a known entity, such as
+          # a person, an organization, or location. The API associates information, such
+          # as salience and mentions, with entities.
+        "name": "A String", # The representative name for the entity.
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+            # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+            # true, this field will contain the aggregate sentiment expressed for this
+            # entity in the provided document.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
+        "mentions": [ # The mentions of this entity in the input document. The API currently
+            # supports proper noun mentions.
+          { # Represents a mention for an entity in the text. Currently, proper noun
+              # mentions are supported.
+            "text": { # Represents an output piece of text. # The mention text.
+              "content": "A String", # The content of the output text.
+              "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+                  # document according to the EncodingType specified in the API request.
+            },
+            "type": "A String", # The type of the entity mention.
+            "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+                # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+                # true, this field will contain the sentiment expressed for this mention of
+                # the entity in the provided document.
+                # the text.
+              "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+                  # (positive sentiment).
+              "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+                  # the absolute magnitude of sentiment regardless of score (positive or
+                  # negative).
+            },
+          },
+        ],
+        "type": "A String", # The entity type.
+        "metadata": { # Metadata associated with the entity.
+            #
+            # Currently, Wikipedia URLs and Knowledge Graph MIDs are provided, if
+            # available. The associated keys are "wikipedia_url" and "mid", respectively.
+          "a_key": "A String",
+        },
+      },
+    ],
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="analyzeEntitySentiment">analyzeEntitySentiment(body, x__xgafv=None)</code>
+  <pre>Finds entities, similar to AnalyzeEntities in the text and analyzes
+sentiment associated with each entity and its mentions.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The entity-level sentiment analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The entity-level sentiment analysis response message.
+    "entities": [ # The recognized entities in the input document with associated sentiments.
+      { # Represents a phrase in the text that is a known entity, such as
+          # a person, an organization, or location. The API associates information, such
+          # as salience and mentions, with entities.
+        "name": "A String", # The representative name for the entity.
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+            # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+            # true, this field will contain the aggregate sentiment expressed for this
+            # entity in the provided document.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
+        "mentions": [ # The mentions of this entity in the input document. The API currently
+            # supports proper noun mentions.
+          { # Represents a mention for an entity in the text. Currently, proper noun
+              # mentions are supported.
+            "text": { # Represents an output piece of text. # The mention text.
+              "content": "A String", # The content of the output text.
+              "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+                  # document according to the EncodingType specified in the API request.
+            },
+            "type": "A String", # The type of the entity mention.
+            "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+                # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+                # true, this field will contain the sentiment expressed for this mention of
+                # the entity in the provided document.
+                # the text.
+              "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+                  # (positive sentiment).
+              "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+                  # the absolute magnitude of sentiment regardless of score (positive or
+                  # negative).
+            },
+          },
+        ],
+        "type": "A String", # The entity type.
+        "metadata": { # Metadata associated with the entity.
+            #
+            # Currently, Wikipedia URLs and Knowledge Graph MIDs are provided, if
+            # available. The associated keys are "wikipedia_url" and "mid", respectively.
+          "a_key": "A String",
+        },
+      },
+    ],
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="analyzeSentiment">analyzeSentiment(body, x__xgafv=None)</code>
+  <pre>Analyzes the sentiment of the provided text.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The sentiment analysis request message.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets for the
+        # sentence sentiment.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The sentiment analysis response message.
+    "documentSentiment": { # Represents the feeling associated with the entire text or entities in # The overall sentiment of the input document.
+        # the text.
+      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+          # (positive sentiment).
+      "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+          # the absolute magnitude of sentiment regardless of score (positive or
+          # negative).
+    },
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
+    "sentences": [ # The sentiment for all the sentences in the document.
+      { # Represents a sentence in the input document.
+        "text": { # Represents an output piece of text. # The sentence text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeSentiment or if
+            # AnnotateTextRequest.Features.extract_document_sentiment is set to
+            # true, this field will contain the sentiment for the sentence.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="analyzeSyntax">analyzeSyntax(body, x__xgafv=None)</code>
+  <pre>Analyzes the syntax of the text and provides sentence boundaries and
+tokenization along with part of speech tags, dependency trees, and other
+properties.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The syntax analysis request message.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The syntax analysis response message.
+    "tokens": [ # Tokens, along with their syntactic information, in the input document.
+      { # Represents the smallest syntactic building block of the text.
+        "text": { # Represents an output piece of text. # The token text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
+        "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
+          "case": "A String", # The grammatical case.
+          "reciprocity": "A String", # The grammatical reciprocity.
+          "mood": "A String", # The grammatical mood.
+          "form": "A String", # The grammatical form.
+          "gender": "A String", # The grammatical gender.
+          "number": "A String", # The grammatical number.
+          "person": "A String", # The grammatical person.
+          "tag": "A String", # The part of speech tag.
+          "tense": "A String", # The grammatical tense.
+          "aspect": "A String", # The grammatical aspect.
+          "proper": "A String", # The grammatical properness.
+          "voice": "A String", # The grammatical voice.
+        },
+        "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
+          "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
+              # This is the index of the token which has an arc going to this token.
+              # The index is the position of the token in the array of tokens returned
+              # by the API method. If this token is a root token, then the
+              # `head_token_index` is its own index.
+          "label": "A String", # The parse label for the token.
+        },
+        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
+      },
+    ],
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
+    "sentences": [ # Sentences in the input document.
+      { # Represents a sentence in the input document.
+        "text": { # Represents an output piece of text. # The sentence text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeSentiment or if
+            # AnnotateTextRequest.Features.extract_document_sentiment is set to
+            # true, this field will contain the sentiment for the sentence.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="annotateText">annotateText(body, x__xgafv=None)</code>
+  <pre>A convenience method that provides all syntax, sentiment, entity, and
+classification features in one call.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for the text annotation API, which can perform multiple
+      # analysis types (sentiment, entities, and syntax) in one call.
+    "encodingType": "A String", # The encoding type used by the API to calculate offsets.
+    "document": { # ################################################################ # # Input document.
+        #
+        # Represents the input to API methods.
+      "content": "A String", # The content of the input in string format.
+      "type": "A String", # Required. If the type is not set or is `TYPE_UNSPECIFIED`,
+          # returns an `INVALID_ARGUMENT` error.
+      "language": "A String", # The language of the document (if not specified, the language is
+          # automatically detected). Both ISO and BCP-47 language codes are
+          # accepted.<br>
+          # [Language Support](/natural-language/docs/languages)
+          # lists currently supported languages for each API method.
+          # If the language (either specified by the caller or automatically detected)
+          # is not supported by the called API method, an `INVALID_ARGUMENT` error
+          # is returned.
+      "gcsContentUri": "A String", # The Google Cloud Storage URI where the file content is located.
+          # This URI must be of the form: gs://bucket_name/object_name. For more
+          # details, see https://cloud.google.com/storage/docs/reference-uris.
+          # NOTE: Cloud Storage object versioning is not supported.
+    },
+    "features": { # All available features for sentiment, syntax, and semantic analysis. # The enabled features.
+        # Setting each one to true will enable that specific analysis for the input.
+      "extractEntitySentiment": True or False, # Extract entities and their associated sentiment.
+      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
+      "extractEntities": True or False, # Extract entities.
+      "extractSyntax": True or False, # Extract syntax information.
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The text annotations response message.
+    "tokens": [ # Tokens, along with their syntactic information, in the input document.
+        # Populated if the user enables
+        # AnnotateTextRequest.Features.extract_syntax.
+      { # Represents the smallest syntactic building block of the text.
+        "text": { # Represents an output piece of text. # The token text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
+        "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
+          "case": "A String", # The grammatical case.
+          "reciprocity": "A String", # The grammatical reciprocity.
+          "mood": "A String", # The grammatical mood.
+          "form": "A String", # The grammatical form.
+          "gender": "A String", # The grammatical gender.
+          "number": "A String", # The grammatical number.
+          "person": "A String", # The grammatical person.
+          "tag": "A String", # The part of speech tag.
+          "tense": "A String", # The grammatical tense.
+          "aspect": "A String", # The grammatical aspect.
+          "proper": "A String", # The grammatical properness.
+          "voice": "A String", # The grammatical voice.
+        },
+        "dependencyEdge": { # Represents dependency parse tree information for a token. # Dependency tree parse for this token.
+          "headTokenIndex": 42, # Represents the head of this token in the dependency tree.
+              # This is the index of the token which has an arc going to this token.
+              # The index is the position of the token in the array of tokens returned
+              # by the API method. If this token is a root token, then the
+              # `head_token_index` is its own index.
+          "label": "A String", # The parse label for the token.
+        },
+        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
+      },
+    ],
+    "entities": [ # Entities, along with their semantic information, in the input document.
+        # Populated if the user enables
+        # AnnotateTextRequest.Features.extract_entities.
+      { # Represents a phrase in the text that is a known entity, such as
+          # a person, an organization, or location. The API associates information, such
+          # as salience and mentions, with entities.
+        "name": "A String", # The representative name for the entity.
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+            # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+            # true, this field will contain the aggregate sentiment expressed for this
+            # entity in the provided document.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+        "salience": 3.14, # The salience score associated with the entity in the [0, 1.0] range.
+            #
+            # The salience score for an entity provides information about the
+            # importance or centrality of that entity to the entire document text.
+            # Scores closer to 0 are less salient, while scores closer to 1.0 are highly
+            # salient.
+        "mentions": [ # The mentions of this entity in the input document. The API currently
+            # supports proper noun mentions.
+          { # Represents a mention for an entity in the text. Currently, proper noun
+              # mentions are supported.
+            "text": { # Represents an output piece of text. # The mention text.
+              "content": "A String", # The content of the output text.
+              "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+                  # document according to the EncodingType specified in the API request.
+            },
+            "type": "A String", # The type of the entity mention.
+            "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeEntitySentiment or if
+                # AnnotateTextRequest.Features.extract_entity_sentiment is set to
+                # true, this field will contain the sentiment expressed for this mention of
+                # the entity in the provided document.
+                # the text.
+              "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+                  # (positive sentiment).
+              "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+                  # the absolute magnitude of sentiment regardless of score (positive or
+                  # negative).
+            },
+          },
+        ],
+        "type": "A String", # The entity type.
+        "metadata": { # Metadata associated with the entity.
+            #
+            # Currently, Wikipedia URLs and Knowledge Graph MIDs are provided, if
+            # available. The associated keys are "wikipedia_url" and "mid", respectively.
+          "a_key": "A String",
+        },
+      },
+    ],
+    "documentSentiment": { # Represents the feeling associated with the entire text or entities in # The overall sentiment for the document. Populated if the user enables
+        # AnnotateTextRequest.Features.extract_document_sentiment.
+        # the text.
+      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+          # (positive sentiment).
+      "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+          # the absolute magnitude of sentiment regardless of score (positive or
+          # negative).
+    },
+    "language": "A String", # The language of the text, which will be the same as the language specified
+        # in the request or, if not specified, the automatically-detected language.
+        # See Document.language field for more details.
+    "sentences": [ # Sentences in the input document. Populated if the user enables
+        # AnnotateTextRequest.Features.extract_syntax.
+      { # Represents a sentence in the input document.
+        "text": { # Represents an output piece of text. # The sentence text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
+        "sentiment": { # Represents the feeling associated with the entire text or entities in # For calls to AnalyzeSentiment or if
+            # AnnotateTextRequest.Features.extract_document_sentiment is set to
+            # true, this field will contain the sentiment for the sentence.
+            # the text.
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
+          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
+              # the absolute magnitude of sentiment regardless of score (positive or
+              # negative).
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/datastore_v1beta2.html b/docs/dyn/language_v1beta2.html
similarity index 90%
rename from docs/dyn/datastore_v1beta2.html
rename to docs/dyn/language_v1beta2.html
index 5744916..143df2f 100644
--- a/docs/dyn/datastore_v1beta2.html
+++ b/docs/dyn/language_v1beta2.html
@@ -72,12 +72,12 @@
 
 </style>
 
-<h1><a href="datastore_v1beta2.html">Google Cloud Datastore API</a></h1>
+<h1><a href="language_v1beta2.html">Google Cloud Natural Language API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="datastore_v1beta2.datasets.html">datasets()</a></code>
+  <code><a href="language_v1beta2.documents.html">documents()</a></code>
 </p>
-<p class="firstline">Returns the datasets Resource.</p>
+<p class="firstline">Returns the documents Resource.</p>
 
 <p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
diff --git a/docs/dyn/logging_v2.billingAccounts.logs.html b/docs/dyn/logging_v2.billingAccounts.logs.html
index 2e9c8fd..8a70550 100644
--- a/docs/dyn/logging_v2.billingAccounts.logs.html
+++ b/docs/dyn/logging_v2.billingAccounts.logs.html
@@ -76,24 +76,22 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</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="delete">delete(logName, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -113,14 +111,12 @@
 
 <div class="method">
     <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
+  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2.billingAccounts.sinks.html b/docs/dyn/logging_v2.billingAccounts.sinks.html
index 0b5e887..7ec8966 100644
--- a/docs/dyn/logging_v2.billingAccounts.sinks.html
+++ b/docs/dyn/logging_v2.billingAccounts.sinks.html
@@ -101,14 +101,12 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -118,11 +116,11 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -131,8 +129,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -142,7 +140,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -155,9 +153,7 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
-Example: "projects/my-project-id/sinks/my-sink-id". (required)
+It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -179,11 +175,9 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The resource name of the sink:
+  sinkName: string, Required. The parent resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -193,8 +187,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -204,7 +198,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -214,12 +208,7 @@
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed:
-"projects/[PROJECT_ID]"
-"organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
- (required)
+  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -233,8 +222,8 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
               # "storage.googleapis.com/[GCS_BUCKET]"
@@ -244,7 +233,7 @@
           "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
               # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
           "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
           "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
         },
     ],
@@ -273,14 +262,12 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -290,14 +277,14 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value is true and the new value is false.
+If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value was true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -306,8 +293,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -317,7 +304,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
diff --git a/docs/dyn/logging_v2.entries.html b/docs/dyn/logging_v2.entries.html
index cb29077..05b13d9 100644
--- a/docs/dyn/logging_v2.entries.html
+++ b/docs/dyn/logging_v2.entries.html
@@ -82,7 +82,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#write">write(body, x__xgafv=None)</a></code></p>
-<p class="firstline">Writes log entries to Stackdriver Logging.</p>
+<p class="firstline">Writes log entries to Stackdriver Logging. All log entries are written by this method.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="list">list(body, x__xgafv=None)</code>
@@ -93,18 +93,16 @@
     The object takes the form of:
 
 { # The parameters to ListLogEntries.
-    "orderBy": "A String", # Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.
-    "resourceNames": [ # Required. Names of one or more parent resources from which to retrieve log entries:
+    "orderBy": "A String", # Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of LogEntry.insertId.
+    "resourceNames": [ # Required. Names of one or more resources from which to retrieve log entries:
         # "projects/[PROJECT_ID]"
         # "organizations/[ORGANIZATION_ID]"
-        # "billingAccounts/[BILLING_ACCOUNT_ID]"
-        # "folders/[FOLDER_ID]"
         # Projects listed in the project_ids field are added to this list.
       "A String",
     ],
-    "pageSize": 42, # Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of next_page_token in the response indicates that more results might be available.
+    "pageSize": 42, # Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
     "filter": "A String", # Optional. A filter that chooses which log entries to return. See Advanced Logs Filters. Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.
-    "pageToken": "A String", # Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of other method parameters should be identical to those in the previous call.
+    "pageToken": "A String", # Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
     "projectIds": [ # Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: "my-project-1A". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.
       "A String",
     ],
@@ -138,9 +136,6 @@
           "requestSize": "A String", # The size of the HTTP request message in bytes, including the request headers and the request body.
           "responseSize": "A String", # The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body.
         },
-        "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
-          "a_key": "A String",
-        },
         "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error.
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
@@ -150,23 +145,23 @@
           },
           "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
         "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
         "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
-        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is received.
+        "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
+          "a_key": "A String",
         },
+        "insertId": "A String", # Optional. A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same project with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
         "logName": "A String", # Required. The resource name of the log to which this log entry belongs:
             # "projects/[PROJECT_ID]/logs/[LOG_ID]"
             # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-            # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-            # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
-        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
+        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "operation": { # Additional information about a potentially long-running operation with which a log entry is associated. # Optional. Information about an operation associated with the log entry, if applicable.
           "last": True or False, # Optional. Set this to True if this is the last log entry in the operation.
           "id": "A String", # Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
@@ -178,6 +173,7 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }</pre>
@@ -199,7 +195,7 @@
 
 <div class="method">
     <code class="details" id="write">write(body, x__xgafv=None)</code>
-  <pre>Writes log entries to Stackdriver Logging.
+  <pre>Writes log entries to Stackdriver Logging. All log entries are written by this method.
 
 Args:
   body: object, The request body. (required)
@@ -219,17 +215,15 @@
       },
       "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
     },
-    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.
+    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, the response status will be the error associated with one of the failed entries and include error details in the form of WriteLogEntriesPartialErrors.
     "labels": { # Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.
       "a_key": "A String",
     },
     "logName": "A String", # Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:
         # "projects/[PROJECT_ID]/logs/[LOG_ID]"
         # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-        # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-        # "folders/[FOLDER_ID]/logs/[LOG_ID]"
         # [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog" or "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.
-    "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are inserted into those log entries in this list that do not provide their own values.Stackdriver Logging also creates and inserts values for timestamp and insert_id if the entries do not provide them. The created insert_id for the N'th entry in this list will be greater than earlier entries and less than later entries. Otherwise, the order of log entries in this list does not matter.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
+    "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are added to those log entries that do not provide their own values for the fields.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
       { # An individual entry in a log.
         "httpRequest": { # A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message. # Optional. Information about the HTTP request associated with this log entry, if applicable.
           "status": 42, # The response code indicating the status of response. Examples: 200, 404.
@@ -247,9 +241,6 @@
           "requestSize": "A String", # The size of the HTTP request message in bytes, including the request headers and the request body.
           "responseSize": "A String", # The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body.
         },
-        "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
-          "a_key": "A String",
-        },
         "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error.
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
@@ -259,23 +250,23 @@
           },
           "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
         "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
         "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
-        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted, Stackdriver Logging will use the time the log entry is received.
+        "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
+          "a_key": "A String",
         },
+        "insertId": "A String", # Optional. A unique ID for the log entry. If you provide this field, the logging service considers other log entries in the same project with the same ID as duplicates which can be removed. If omitted, Stackdriver Logging will generate a unique ID for this log entry.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
         "logName": "A String", # Required. The resource name of the log to which this log entry belongs:
             # "projects/[PROJECT_ID]/logs/[LOG_ID]"
             # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-            # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-            # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
-        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
+        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "operation": { # Additional information about a potentially long-running operation with which a log entry is associated. # Optional. Information about an operation associated with the log entry, if applicable.
           "last": True or False, # Optional. Set this to True if this is the last log entry in the operation.
           "id": "A String", # Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
@@ -287,6 +278,7 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }
diff --git a/docs/dyn/logging_v2.folders.logs.html b/docs/dyn/logging_v2.folders.logs.html
index 410c059..218e66b 100644
--- a/docs/dyn/logging_v2.folders.logs.html
+++ b/docs/dyn/logging_v2.folders.logs.html
@@ -76,24 +76,22 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</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="delete">delete(logName, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -112,22 +110,20 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
  (required)
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/logging_v2.folders.sinks.html b/docs/dyn/logging_v2.folders.sinks.html
index f2ce85d..22f4caa 100644
--- a/docs/dyn/logging_v2.folders.sinks.html
+++ b/docs/dyn/logging_v2.folders.sinks.html
@@ -101,14 +101,12 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -118,11 +116,11 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -131,8 +129,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -142,7 +140,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -155,9 +153,7 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
-Example: "projects/my-project-id/sinks/my-sink-id". (required)
+It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -179,11 +175,9 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The resource name of the sink:
+  sinkName: string, Required. The parent resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -193,8 +187,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -204,7 +198,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -214,12 +208,7 @@
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed:
-"projects/[PROJECT_ID]"
-"organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
- (required)
+  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -233,8 +222,8 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
               # "storage.googleapis.com/[GCS_BUCKET]"
@@ -244,7 +233,7 @@
           "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
               # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
           "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
           "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
         },
     ],
@@ -273,14 +262,12 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -290,14 +277,14 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value is true and the new value is false.
+If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value was true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -306,8 +293,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -317,7 +304,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
diff --git a/docs/dyn/logging_v2.monitoredResourceDescriptors.html b/docs/dyn/logging_v2.monitoredResourceDescriptors.html
index 66cacbf..3b54b9b 100644
--- a/docs/dyn/logging_v2.monitoredResourceDescriptors.html
+++ b/docs/dyn/logging_v2.monitoredResourceDescriptors.html
@@ -100,7 +100,7 @@
     "nextPageToken": "A String", # If there might be more results than those appearing in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
     "resourceDescriptors": [ # A list of resource descriptors.
       { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of "gce_instance" and specifies the use of the labels "instance_id" and "zone" to identify particular VM instances.Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API.
-        "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
+        "type": "A String", # Required. The monitored resource type. For example, the type "cloudsql_database" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.
         "labels": [ # Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels "database_id" and "zone".
           { # A description of a label.
             "valueType": "A String", # The type of data that can be assigned to the label.
@@ -108,9 +108,9 @@
             "key": "A String", # The label key.
           },
         ],
-        "type": "A String", # Required. The monitored resource type. For example, the type "cloudsql_database" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.
-        "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
+        "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
         "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
+        "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
       },
     ],
   }</pre>
diff --git a/docs/dyn/logging_v2.organizations.logs.html b/docs/dyn/logging_v2.organizations.logs.html
index c1b38b4..6f5a921 100644
--- a/docs/dyn/logging_v2.organizations.logs.html
+++ b/docs/dyn/logging_v2.organizations.logs.html
@@ -76,24 +76,22 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</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="delete">delete(logName, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -112,22 +110,20 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
  (required)
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/logging_v2.organizations.sinks.html b/docs/dyn/logging_v2.organizations.sinks.html
index 50d3774..4ed3a2f 100644
--- a/docs/dyn/logging_v2.organizations.sinks.html
+++ b/docs/dyn/logging_v2.organizations.sinks.html
@@ -101,14 +101,12 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -118,11 +116,11 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -131,8 +129,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -142,7 +140,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -155,9 +153,7 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
-Example: "projects/my-project-id/sinks/my-sink-id". (required)
+It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -179,11 +175,9 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The resource name of the sink:
+  sinkName: string, Required. The parent resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -193,8 +187,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -204,7 +198,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -214,12 +208,7 @@
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed:
-"projects/[PROJECT_ID]"
-"organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
- (required)
+  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -233,8 +222,8 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
               # "storage.googleapis.com/[GCS_BUCKET]"
@@ -244,7 +233,7 @@
           "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
               # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
           "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
           "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
         },
     ],
@@ -273,14 +262,12 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -290,14 +277,14 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value is true and the new value is false.
+If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value was true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -306,8 +293,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -317,7 +304,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
diff --git a/docs/dyn/logging_v2.projects.logs.html b/docs/dyn/logging_v2.projects.logs.html
index 7d4ff2f..9a7a76b 100644
--- a/docs/dyn/logging_v2.projects.logs.html
+++ b/docs/dyn/logging_v2.projects.logs.html
@@ -76,24 +76,22 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#delete">delete(logName, x__xgafv=None)</a></code></p>
-<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
+<p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</p>
+<p class="firstline">Lists the logs in projects or organizations. Only logs that have entries are listed.</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="delete">delete(logName, x__xgafv=None)</code>
-  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.
+  <pre>Deletes all the log entries in a log. The log reappears if it receives new entries.
 
 Args:
   logName: string, Required. The resource name of the log to delete:
 "projects/[PROJECT_ID]/logs/[LOG_ID]"
 "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-"folders/[FOLDER_ID]/logs/[LOG_ID]"
 [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry. (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -113,14 +111,12 @@
 
 <div class="method">
     <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
+  <pre>Lists the logs in projects or organizations. Only logs that have entries are listed.
 
 Args:
   parent: string, Required. The resource name that owns the logs:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
  (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/logging_v2.projects.metrics.html b/docs/dyn/logging_v2.projects.metrics.html
index 0491d7c..2fc6597 100644
--- a/docs/dyn/logging_v2.projects.metrics.html
+++ b/docs/dyn/logging_v2.projects.metrics.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(metricName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a logs-based metric.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists logs-based metrics.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -109,8 +109,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
     "description": "A String", # Optional. A description of this metric, which is used in documentation.
+    "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
   }
 
   x__xgafv: string, V1 error format.
@@ -126,8 +126,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
       "description": "A String", # Optional. A description of this metric, which is used in documentation.
+      "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
     }</pre>
 </div>
 
@@ -176,25 +176,25 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
       "description": "A String", # Optional. A description of this metric, which is used in documentation.
+      "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists logs-based metrics.
 
 Args:
   parent: string, Required. The name of the project containing the metrics:
 "projects/[PROJECT_ID]"
  (required)
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
@@ -206,8 +206,8 @@
               # "resource.type=gae_app AND severity>=ERROR"
               # The maximum length of the filter is 20000 characters.
           "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-          "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
           "description": "A String", # Optional. A description of this metric, which is used in documentation.
+          "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
         },
     ],
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
@@ -244,8 +244,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
     "description": "A String", # Optional. A description of this metric, which is used in documentation.
+    "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
   }
 
   x__xgafv: string, V1 error format.
@@ -261,8 +261,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
       "description": "A String", # Optional. A description of this metric, which is used in documentation.
+      "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
     }</pre>
 </div>
 
diff --git a/docs/dyn/logging_v2.projects.sinks.html b/docs/dyn/logging_v2.projects.sinks.html
index 107ce5e..7923274 100644
--- a/docs/dyn/logging_v2.projects.sinks.html
+++ b/docs/dyn/logging_v2.projects.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -101,14 +101,12 @@
   parent: string, Required. The resource in which to create the sink:
 "projects/[PROJECT_ID]"
 "organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
 Examples: "projects/my-logging-project", "organizations/123456789". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -118,11 +116,11 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
-  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
+  uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is cloud-logs@google.com, the same identity used before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -131,8 +129,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -142,7 +140,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
@@ -155,9 +153,7 @@
   sinkName: string, Required. The full resource name of the sink to delete, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
-Example: "projects/my-project-id/sinks/my-sink-id". (required)
+It is an error if the sink does not exist. Example: "projects/my-project-id/sinks/my-sink-id". It is an error if the sink does not exist. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -179,11 +175,9 @@
   <pre>Gets a sink.
 
 Args:
-  sinkName: string, Required. The resource name of the sink:
+  sinkName: string, Required. The parent resource name of the sink:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   x__xgafv: string, V1 error format.
     Allowed values
@@ -193,8 +187,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -204,28 +198,23 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
-  parent: string, Required. The parent resource whose sinks are to be listed:
-"projects/[PROJECT_ID]"
-"organizations/[ORGANIZATION_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]"
-"folders/[FOLDER_ID]"
- (required)
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
+  parent: string, Required. The parent resource whose sinks are to be listed. Examples: "projects/my-logging-project", "organizations/123456789". (required)
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
@@ -233,8 +222,8 @@
     { # Result returned from ListSinks.
     "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call the same method again using the value of nextPageToken as pageToken.
     "sinks": [ # A list of sinks.
-      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+      { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
           "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
           "destination": "A String", # Required. The export destination:
               # "storage.googleapis.com/[GCS_BUCKET]"
@@ -244,7 +233,7 @@
           "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
               # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
           "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-          "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+          "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
           "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
         },
     ],
@@ -273,14 +262,12 @@
   sinkName: string, Required. The full resource name of the sink to update, including the parent resource and the sink identifier:
 "projects/[PROJECT_ID]/sinks/[SINK_ID]"
 "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
-"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
-"folders/[FOLDER_ID]/sinks/[SINK_ID]"
 Example: "projects/my-project-id/sinks/my-sink-id". (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+{ # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
     "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
     "destination": "A String", # Required. The export destination:
         # "storage.googleapis.com/[GCS_BUCKET]"
@@ -290,14 +277,14 @@
     "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
         # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-    "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+    "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
   }
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
 If the old and new values of this field are both false or both true, then there is no change to the sink's writer_identity.
-If the old value is false and the new value is true, then writer_identity is changed to a unique service account.
-It is an error if the old value is true and the new value is false.
+If the old value was false and the new value is true, then writer_identity is changed to a unique service account.
+It is an error if the old value was true and the new value is false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -306,8 +293,8 @@
 Returns:
   An object of the form:
 
-    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.
-      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
+    { # Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, or a Cloud Pub/Sub topic. A logs filter controls which log entries are exported. The sink must be created within a project or organization.
+      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
       "name": "A String", # Required. The client-assigned sink identifier, unique within the project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods.
       "destination": "A String", # Required. The export destination:
           # "storage.googleapis.com/[GCS_BUCKET]"
@@ -317,7 +304,7 @@
       "filter": "A String", # Optional. An advanced logs filter. The only exported log entries are those that are in the resource owning the sink and that match the filter. The filter must use the log entry format specified by the output_version_format parameter. For example, in the v2 format:
           # logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
-      "endTime": "A String", # Optional. The time at which this sink will stop exporting log entries. Log entries are exported only if their timestamp is earlier than the end time. If this field is not supplied, there is no end time. If both a start time and an end time are provided, then the end time must be later than the start time.
+      "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
     }</pre>
 </div>
diff --git a/docs/dyn/logging_v2beta1.billingAccounts.logs.html b/docs/dyn/logging_v2beta1.billingAccounts.logs.html
index dfa0f66..78ab2ee 100644
--- a/docs/dyn/logging_v2beta1.billingAccounts.logs.html
+++ b/docs/dyn/logging_v2beta1.billingAccounts.logs.html
@@ -78,7 +78,7 @@
   <code><a href="#delete">delete(logName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -112,7 +112,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
@@ -122,12 +122,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_ID]"
  (required)
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/logging_v2beta1.entries.html b/docs/dyn/logging_v2beta1.entries.html
index 2d89e95..12d17b7 100644
--- a/docs/dyn/logging_v2beta1.entries.html
+++ b/docs/dyn/logging_v2beta1.entries.html
@@ -125,13 +125,13 @@
         "httpRequest": { # A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message. # Optional. Information about the HTTP request associated with this log entry, if applicable.
           "status": 42, # The response code indicating the status of response. Examples: 200, 404.
           "cacheValidatedWithOriginServer": True or False, # Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.
-          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
+          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
+          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
           "cacheFillBytes": "A String", # The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.
           "requestUrl": "A String", # The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: "http://example.com/some/info?color=red".
           "serverIp": "A String", # The IP address (IPv4 or IPv6) of the origin server that the request was sent to.
           "cacheLookup": True or False, # Whether or not a cache lookup was attempted.
-          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
-          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
+          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
           "referer": "A String", # The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
           "remoteIp": "A String", # The IP address (IPv4 or IPv6) of the client that issued the HTTP request. Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
           "userAgent": "A String", # The user agent sent by the client. Example: "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
@@ -142,19 +142,20 @@
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
             #               "zone": "us-central1-a" }}
-          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
             "a_key": "A String",
           },
-          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
-        "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
         "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
+        "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
+        "receiveTimestamp": "A String", # Output only. The time the log entry was received by Stackdriver Logging.
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
+        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
@@ -164,9 +165,8 @@
             # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
             # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
-        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
+        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
         "operation": { # Additional information about a potentially long-running operation with which a log entry is associated. # Optional. Information about an operation associated with the log entry, if applicable.
           "last": True or False, # Optional. Set this to True if this is the last log entry in the operation.
           "id": "A String", # Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
@@ -178,6 +178,7 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }</pre>
@@ -206,16 +207,6 @@
     The object takes the form of:
 
 { # The parameters to WriteLogEntries.
-    "logName": "A String", # Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:
-        # "projects/[PROJECT_ID]/logs/[LOG_ID]"
-        # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
-        # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
-        # "folders/[FOLDER_ID]/logs/[LOG_ID]"
-        # [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog" or "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.
-    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.
-    "labels": { # Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.
-      "a_key": "A String",
-    },
     "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:
         # { "type": "gce_instance",
         #   "labels": {
@@ -224,23 +215,33 @@
         # { "type": "gce_instance",
         #   "labels": { "instance_id": "12345678901234",
         #               "zone": "us-central1-a" }}
-      "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+      "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
         "a_key": "A String",
       },
-      "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+      "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
     },
+    "partialSuccess": True or False, # Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.
+    "labels": { # Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.
+      "a_key": "A String",
+    },
+    "logName": "A String", # Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:
+        # "projects/[PROJECT_ID]/logs/[LOG_ID]"
+        # "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
+        # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
+        # "folders/[FOLDER_ID]/logs/[LOG_ID]"
+        # [LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog" or "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.
     "entries": [ # Required. The log entries to write. Values supplied for the fields log_name, resource, and labels in this entries.write request are inserted into those log entries in this list that do not provide their own values.Stackdriver Logging also creates and inserts values for timestamp and insert_id if the entries do not provide them. The created insert_id for the N'th entry in this list will be greater than earlier entries and less than later entries. Otherwise, the order of log entries in this list does not matter.To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should write multiple log entries at once rather than calling this method for each individual log entry.
       { # An individual entry in a log.
         "httpRequest": { # A common proto for logging HTTP requests. Only contains semantics defined by the HTTP specification. Product-specific logging information MUST be defined in a separate message. # Optional. Information about the HTTP request associated with this log entry, if applicable.
           "status": 42, # The response code indicating the status of response. Examples: 200, 404.
           "cacheValidatedWithOriginServer": True or False, # Whether or not the response was validated with the origin server before being served from cache. This field is only meaningful if cache_hit is True.
-          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
+          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
+          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
           "cacheFillBytes": "A String", # The number of HTTP response bytes inserted into cache. Set only when a cache fill was attempted.
           "requestUrl": "A String", # The scheme (http, https), the host name, the path and the query portion of the URL that was requested. Example: "http://example.com/some/info?color=red".
           "serverIp": "A String", # The IP address (IPv4 or IPv6) of the origin server that the request was sent to.
           "cacheLookup": True or False, # Whether or not a cache lookup was attempted.
-          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
-          "requestMethod": "A String", # The request method. Examples: "GET", "HEAD", "PUT", "POST".
+          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
           "referer": "A String", # The referer URL of the request, as defined in HTTP/1.1 Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
           "remoteIp": "A String", # The IP address (IPv4 or IPv6) of the client that issued the HTTP request. Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
           "userAgent": "A String", # The user agent sent by the client. Example: "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
@@ -251,19 +252,20 @@
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
             #               "zone": "us-central1-a" }}
-          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
             "a_key": "A String",
           },
-          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
         },
-        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
-        "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
         "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
-        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
+        "trace": "A String", # Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
+        "receiveTimestamp": "A String", # Output only. The time the log entry was received by Stackdriver Logging.
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
+        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
@@ -273,9 +275,8 @@
             # "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
             # "folders/[FOLDER_ID]/logs/[LOG_ID]"
             # [LOG_ID] must be URL-encoded within log_name. Example: "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". [LOG_ID] must be less than 512 characters long and can only include the following characters: upper and lower case alphanumeric characters, forward-slash, underscore, hyphen, and period.For backward compatibility, if log_name begins with a forward-slash, such as /projects/..., then the log entry is ingested as usual but the forward-slash is removed. Listing the log entry will not show the leading slash and filtering for a log name with a leading slash will never return any results.
-        "protoPayload": { # The log entry payload, represented as a protocol buffer. Some Google Cloud Platform services use this field for their log entry payloads.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
+        "timestamp": "A String", # Optional. The time the event described by the log entry occurred. If omitted in a new log entry, Stackdriver Logging will insert the time the log entry is received. Stackdriver Logging might reject log entries whose time stamps are more than a couple of hours in the future. Log entries with time stamps in the past are accepted.
+        "insertId": "A String", # Optional. A unique identifier for the log entry. If you provide a value, then Stackdriver Logging considers other log entries in the same project, with the same timestamp, and with the same insert_id to be duplicates which can be removed. If omitted in new log entries, then Stackdriver Logging will insert its own unique identifier. The insert_id is used to order log entries that have the same timestamp value.
         "operation": { # Additional information about a potentially long-running operation with which a log entry is associated. # Optional. Information about an operation associated with the log entry, if applicable.
           "last": True or False, # Optional. Set this to True if this is the last log entry in the operation.
           "id": "A String", # Optional. An arbitrary operation identifier. Log entries with the same identifier are assumed to be part of the same operation.
@@ -287,6 +288,7 @@
           "line": "A String", # Optional. Line within the source file. 1-based; 0 indicates no line number available.
           "file": "A String", # Optional. Source file name. Depending on the runtime environment, this might be a simple name or a fully-qualified name.
         },
+        "severity": "A String", # Optional. The severity of the log entry. The default value is LogSeverity.DEFAULT.
       },
     ],
   }
diff --git a/docs/dyn/logging_v2beta1.organizations.logs.html b/docs/dyn/logging_v2beta1.organizations.logs.html
index 691d50f..dbb1991 100644
--- a/docs/dyn/logging_v2beta1.organizations.logs.html
+++ b/docs/dyn/logging_v2beta1.organizations.logs.html
@@ -78,7 +78,7 @@
   <code><a href="#delete">delete(logName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -112,7 +112,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
@@ -122,12 +122,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_ID]"
  (required)
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/logging_v2beta1.projects.metrics.html b/docs/dyn/logging_v2beta1.projects.metrics.html
index 27948c6..bc1f272 100644
--- a/docs/dyn/logging_v2beta1.projects.metrics.html
+++ b/docs/dyn/logging_v2beta1.projects.metrics.html
@@ -109,8 +109,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "description": "A String", # Optional. A description of this metric, which is used in documentation.
     "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+    "description": "A String", # Optional. A description of this metric, which is used in documentation.
   }
 
   x__xgafv: string, V1 error format.
@@ -126,8 +126,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
@@ -176,8 +176,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
@@ -200,17 +200,17 @@
   An object of the form:
 
     { # Result returned from ListLogMetrics.
+    "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
     "metrics": [ # A list of logs-based metrics.
       { # Describes a logs-based metric. The value of the metric is the number of log entries that match a logs filter in a given time interval.
           "filter": "A String", # Required. An advanced logs filter which is used to match log entries. Example:
               # "resource.type=gae_app AND severity>=ERROR"
               # The maximum length of the filter is 20000 characters.
           "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-          "description": "A String", # Optional. A description of this metric, which is used in documentation.
           "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+          "description": "A String", # Optional. A description of this metric, which is used in documentation.
         },
     ],
-    "nextPageToken": "A String", # If there might be more results than appear in this response, then nextPageToken is included. To get the next set of results, call this method again using the value of nextPageToken as pageToken.
   }</pre>
 </div>
 
@@ -244,8 +244,8 @@
         # "resource.type=gae_app AND severity>=ERROR"
         # The maximum length of the filter is 20000 characters.
     "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-    "description": "A String", # Optional. A description of this metric, which is used in documentation.
     "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+    "description": "A String", # Optional. A description of this metric, which is used in documentation.
   }
 
   x__xgafv: string, V1 error format.
@@ -261,8 +261,8 @@
           # "resource.type=gae_app AND severity>=ERROR"
           # The maximum length of the filter is 20000 characters.
       "version": "A String", # Output only. The API version that created or updated this metric. The version also dictates the syntax of the filter expression. When a value for this field is missing, the default value of V2 should be assumed.
-      "description": "A String", # Optional. A description of this metric, which is used in documentation.
       "name": "A String", # Required. The client-assigned metric identifier. Examples: "error_count", "nginx/requests".Metric identifiers are limited to 100 characters and can include only the following characters: A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.The metric identifier in this field must not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding). However, when the metric identifier appears as the [METRIC_ID] part of a metric_name API parameter, then the metric identifier must be URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
+      "description": "A String", # Optional. A description of this metric, which is used in documentation.
     }</pre>
 </div>
 
diff --git a/docs/dyn/logging_v2beta1.projects.sinks.html b/docs/dyn/logging_v2beta1.projects.sinks.html
index 12c8179..56d188b 100644
--- a/docs/dyn/logging_v2beta1.projects.sinks.html
+++ b/docs/dyn/logging_v2beta1.projects.sinks.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists sinks.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -120,6 +120,9 @@
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
     "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
+    "includeChildren": True or False, # Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:
+        # logName:("projects/test-project1/" OR "projects/test-project2/") AND
+        # resource.type=gce_instance
   }
 
   uniqueWriterIdentity: boolean, Optional. Determines the kind of IAM identity returned as writer_identity in the new sink. If this value is omitted or set to false, and if the sink's parent is a project, then the value returned as writer_identity is the same group or service account used by Stackdriver Logging before the addition of writer identities to this API. The sink's destination must be in the same project as the sink itself.If this field is set to true, or if the sink is owned by a non-project resource such as an organization, then the value of writer_identity will be a unique service account used only for exports from the new sink. For more information, see writer_identity in LogSink.
@@ -144,6 +147,9 @@
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
       "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
+      "includeChildren": True or False, # Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:
+          # logName:("projects/test-project1/" OR "projects/test-project2/") AND
+          # resource.type=gce_instance
     }</pre>
 </div>
 
@@ -206,11 +212,14 @@
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
       "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
+      "includeChildren": True or False, # Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:
+          # logName:("projects/test-project1/" OR "projects/test-project2/") AND
+          # resource.type=gce_instance
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
@@ -220,12 +229,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_ID]"
  (required)
-  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
   pageToken: string, Optional. If present, then retrieve the next batch of results from the preceding call to this method. pageToken must be the value of nextPageToken from the previous response. The values of other method parameters should be identical to those in the previous call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.
 
 Returns:
   An object of the form:
@@ -246,6 +255,9 @@
           "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
           "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
           "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
+          "includeChildren": True or False, # Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:
+              # logName:("projects/test-project1/" OR "projects/test-project2/") AND
+              # resource.type=gce_instance
         },
     ],
   }</pre>
@@ -292,6 +304,9 @@
     "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
     "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
     "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
+    "includeChildren": True or False, # Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:
+        # logName:("projects/test-project1/" OR "projects/test-project2/") AND
+        # resource.type=gce_instance
   }
 
   uniqueWriterIdentity: boolean, Optional. See sinks.create for a description of this field. When updating a sink, the effect of this field on the value of writer_identity in the updated sink depends on both the old and new values of this field:
@@ -319,6 +334,9 @@
       "startTime": "A String", # Optional. The time at which this sink will begin exporting log entries. Log entries are exported only if their timestamp is not earlier than the start time. The default value of this field is the time the sink is created or updated.
       "outputVersionFormat": "A String", # Optional. The log entry format to use for this sink's exported log entries. The v2 format is used by default. The v1 format is deprecated and should be used only as part of a migration effort to v2. See Migration to the v2 API.
       "writerIdentity": "A String", # Output only. An IAM identity&mdash;a service account or group&mdash;under which Stackdriver Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update, based on the setting of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting access for a resource. Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.
+      "includeChildren": True or False, # Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then logs from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression. For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent. To only export entries from certain child projects, filter on the project part of the log name:
+          # logName:("projects/test-project1/" OR "projects/test-project2/") AND
+          # resource.type=gce_instance
     }</pre>
 </div>
 
diff --git a/docs/dyn/manufacturers_v1.accounts.products.html b/docs/dyn/manufacturers_v1.accounts.products.html
index 4c747bc..4743ae9 100644
--- a/docs/dyn/manufacturers_v1.accounts.products.html
+++ b/docs/dyn/manufacturers_v1.accounts.products.html
@@ -120,13 +120,6 @@
         # @OutputOnly
       "A String",
     ],
-    "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
-        # (for example, en).
-        # @OutputOnly
-    "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
-        #
-        # `account_id` - The ID of the Manufacturer Center account.
-        # @OutputOnly
     "name": "A String", # Name in the format `{target_country}:{content_language}:{product_id}`.
         #
         # `target_country`   - The target country of the product as a CLDR territory
@@ -138,6 +131,10 @@
         # `product_id`     -   The ID of the product. For more information, see
         #                      https://support.google.com/manufacturers/answer/6124116#id.
         # @OutputOnly
+    "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
+        #
+        # `account_id` - The ID of the Manufacturer Center account.
+        # @OutputOnly
     "manuallyProvidedAttributes": { # Attributes of the product. For more information, see # Attributes of the product provided manually via the Manufacturer Center UI.
         # @OutputOnly
         # https://support.google.com/manufacturers/answer/6124116.
@@ -519,17 +516,20 @@
       "ageGroup": "A String", # The target age group of the product. For more information, see
           # https://support.google.com/manufacturers/answer/6124116#agegroup.
     },
+    "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
+        # (for example, en).
+        # @OutputOnly
     "issues": [ # A server-generated list of issues associated with the product.
         # @OutputOnly
       { # Product issue.
         "attribute": "A String", # If present, the attribute that triggered the issue. For more information
             # about attributes, see
             # https://support.google.com/manufacturers/answer/6124116.
+        "description": "A String", # Description of the issue.
         "type": "A String", # The server-generated type of the issue, for example,
             # “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
         "severity": "A String", # The severity of the issue.
         "timestamp": "A String", # The timestamp when this issue appeared.
-        "description": "A String", # Description of the issue.
       },
     ],
     "productId": "A String", # The ID of the product. For more information, see
@@ -569,13 +569,6 @@
             # @OutputOnly
           "A String",
         ],
-        "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
-            # (for example, en).
-            # @OutputOnly
-        "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
-            #
-            # `account_id` - The ID of the Manufacturer Center account.
-            # @OutputOnly
         "name": "A String", # Name in the format `{target_country}:{content_language}:{product_id}`.
             #
             # `target_country`   - The target country of the product as a CLDR territory
@@ -587,6 +580,10 @@
             # `product_id`     -   The ID of the product. For more information, see
             #                      https://support.google.com/manufacturers/answer/6124116#id.
             # @OutputOnly
+        "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
+            #
+            # `account_id` - The ID of the Manufacturer Center account.
+            # @OutputOnly
         "manuallyProvidedAttributes": { # Attributes of the product. For more information, see # Attributes of the product provided manually via the Manufacturer Center UI.
             # @OutputOnly
             # https://support.google.com/manufacturers/answer/6124116.
@@ -968,17 +965,20 @@
           "ageGroup": "A String", # The target age group of the product. For more information, see
               # https://support.google.com/manufacturers/answer/6124116#agegroup.
         },
+        "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
+            # (for example, en).
+            # @OutputOnly
         "issues": [ # A server-generated list of issues associated with the product.
             # @OutputOnly
           { # Product issue.
             "attribute": "A String", # If present, the attribute that triggered the issue. For more information
                 # about attributes, see
                 # https://support.google.com/manufacturers/answer/6124116.
+            "description": "A String", # Description of the issue.
             "type": "A String", # The server-generated type of the issue, for example,
                 # “INCORRECT_TEXT_FORMATTING”, “IMAGE_NOT_SERVEABLE”, etc.
             "severity": "A String", # The severity of the issue.
             "timestamp": "A String", # The timestamp when this issue appeared.
-            "description": "A String", # Description of the issue.
           },
         ],
         "productId": "A String", # The ID of the product. For more information, see
diff --git a/docs/dyn/ml_v1.projects.html b/docs/dyn/ml_v1.projects.html
index 0217711..c28ffdc 100644
--- a/docs/dyn/ml_v1.projects.html
+++ b/docs/dyn/ml_v1.projects.html
@@ -361,6 +361,12 @@
         # handled, all other features will continue to work unchanged.
       "contentType": "A String", # The HTTP Content-Type string representing the content type of the body.
       "data": "A String", # HTTP body binary data.
+      "extensions": [ # Application specific response metadata. Must be set in the first response
+          # for streaming APIs.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
     },
   }
 
@@ -412,6 +418,12 @@
       # handled, all other features will continue to work unchanged.
     "contentType": "A String", # The HTTP Content-Type string representing the content type of the body.
     "data": "A String", # HTTP body binary data.
+    "extensions": [ # Application specific response metadata. Must be set in the first response
+        # for streaming APIs.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1.projects.jobs.html b/docs/dyn/ml_v1.projects.jobs.html
index abbb92d..50e5559 100644
--- a/docs/dyn/ml_v1.projects.jobs.html
+++ b/docs/dyn/ml_v1.projects.jobs.html
@@ -137,10 +137,6 @@
 
 { # Represents a training or prediction job.
     "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
-      "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-      "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
-      "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-          # Only set for hyperparameter tuning jobs.
       "trials": [ # Results for individual Hyperparameter trials.
           # Only set for hyperparameter tuning jobs.
         { # Represents the result of a single hyperparameter tuning trial from a
@@ -163,38 +159,11 @@
           },
         },
       ],
+      "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+      "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+      "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+          # Only set for hyperparameter tuning jobs.
     },
-    "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
-      "modelName": "A String", # Use this field if you want to use the default version for the specified
-          # model. The string must use the following format:
-          #
-          # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
-      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
-          # prediction. If not set, Google Cloud ML will pick the runtime version used
-          # during the CreateVersion request for this model version, or choose the
-          # latest stable version when model version information is not available
-          # such as when the model is specified by uri.
-      "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
-          # May contain wildcards.
-        "A String",
-      ],
-      "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
-          # Defaults to 10 if not specified.
-      "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
-          # the model to use.
-      "outputPath": "A String", # Required. The output Google Cloud Storage location.
-      "dataFormat": "A String", # Required. The format of the input data files.
-      "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
-          # string is formatted the same way as `model_version`, with the addition
-          # of the version information:
-          #
-          # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
-      "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
-    },
-    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-    "jobId": "A String", # Required. The user-specified id of the job.
-    "state": "A String", # Output only. The detailed state of a job.
-    "startTime": "A String", # Output only. When the job processing was started.
     "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
       "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
           # job's worker nodes.
@@ -251,7 +220,7 @@
           #   <dt>complex_model_m_gpu</dt>
           #   <dd>
           #   A machine equivalent to
-          #   <code suppresswarning="true">coplex_model_m</code> that also includes
+          #   <code suppresswarning="true">complex_model_m</code> that also includes
           #   four GPUs.
           #   </dd>
           # </dl>
@@ -272,9 +241,9 @@
             "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                 # should be unset if type is `CATEGORICAL`. This value should be integers if
                 # type is `INTEGER`.
-            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                # should be unset if type is `CATEGORICAL`. This value should be integers if
-                # type is INTEGER.
+            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+              "A String",
+            ],
             "discreteValues": [ # Required if type is `DISCRETE`.
                 # A list of feasible points.
                 # The list should be in strictly increasing order. For instance, this
@@ -284,9 +253,9 @@
             ],
             "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                 # a HyperparameterSpec message. E.g., "learning_rate".
-            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-              "A String",
-            ],
+            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                # should be unset if type is `CATEGORICAL`. This value should be integers if
+                # type is INTEGER.
             "type": "A String", # Required. The type of the parameter.
             "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                 # Leave unset for categorical parameters.
@@ -294,6 +263,10 @@
                 # parameters (e.g., `UNIT_LINEAR_SCALE`).
           },
         ],
+        "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+            # `MAXIMIZE` and `MINIMIZE`.
+            #
+            # Defaults to `MAXIMIZE`.
         "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
             # You can reduce the time it takes to perform hyperparameter tuning by adding
             # trials in parallel. However, each trail only benefits from the information
@@ -304,10 +277,6 @@
             # Each trial will use the same scale tier and machine types.
             #
             # Defaults to one.
-        "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-            # `MAXIMIZE` and `MINIMIZE`.
-            #
-            # Defaults to `MAXIMIZE`.
       },
       "region": "A String", # Required. The Google Compute Engine region to run the training job in.
       "args": [ # Optional. Command line arguments to pass to the program.
@@ -320,6 +289,7 @@
           # this field is that Cloud ML validates the path for use in training.
       "packageUris": [ # Required. The Google Cloud Storage location of the packages with
           # the training program and any additional dependencies.
+          # The maximum number of package URIs is 100.
         "A String",
       ],
       "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -342,6 +312,37 @@
           # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
           # set this value, you must also set `parameter_server_type`.
     },
+    "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+      "modelName": "A String", # Use this field if you want to use the default version for the specified
+          # model. The string must use the following format:
+          #
+          # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+      "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+          # prediction. If not set, Google Cloud ML will pick the runtime version used
+          # during the CreateVersion request for this model version, or choose the
+          # latest stable version when model version information is not available
+          # such as when the model is specified by uri.
+      "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+      "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+          # Defaults to 10 if not specified.
+      "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+          # the model to use.
+      "outputPath": "A String", # Required. The output Google Cloud Storage location.
+      "dataFormat": "A String", # Required. The format of the input data files.
+      "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+          # string is formatted the same way as `model_version`, with the addition
+          # of the version information:
+          #
+          # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+      "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+          # May contain wildcards.
+        "A String",
+      ],
+    },
+    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+    "jobId": "A String", # Required. The user-specified id of the job.
+    "state": "A String", # Output only. The detailed state of a job.
+    "startTime": "A String", # Output only. When the job processing was started.
     "endTime": "A String", # Output only. When the job processing was completed.
     "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
       "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
@@ -362,10 +363,6 @@
 
     { # Represents a training or prediction job.
       "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
-        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
-        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-            # Only set for hyperparameter tuning jobs.
         "trials": [ # Results for individual Hyperparameter trials.
             # Only set for hyperparameter tuning jobs.
           { # Represents the result of a single hyperparameter tuning trial from a
@@ -388,38 +385,11 @@
             },
           },
         ],
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            # Only set for hyperparameter tuning jobs.
       },
-      "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
-        "modelName": "A String", # Use this field if you want to use the default version for the specified
-            # model. The string must use the following format:
-            #
-            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
-        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
-            # prediction. If not set, Google Cloud ML will pick the runtime version used
-            # during the CreateVersion request for this model version, or choose the
-            # latest stable version when model version information is not available
-            # such as when the model is specified by uri.
-        "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
-            # May contain wildcards.
-          "A String",
-        ],
-        "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
-            # Defaults to 10 if not specified.
-        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
-            # the model to use.
-        "outputPath": "A String", # Required. The output Google Cloud Storage location.
-        "dataFormat": "A String", # Required. The format of the input data files.
-        "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
-            # string is formatted the same way as `model_version`, with the addition
-            # of the version information:
-            #
-            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
-        "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
-      },
-      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-      "jobId": "A String", # Required. The user-specified id of the job.
-      "state": "A String", # Output only. The detailed state of a job.
-      "startTime": "A String", # Output only. When the job processing was started.
       "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
         "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
             # job's worker nodes.
@@ -476,7 +446,7 @@
             #   <dt>complex_model_m_gpu</dt>
             #   <dd>
             #   A machine equivalent to
-            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   <code suppresswarning="true">complex_model_m</code> that also includes
             #   four GPUs.
             #   </dd>
             # </dl>
@@ -497,9 +467,9 @@
               "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                   # should be unset if type is `CATEGORICAL`. This value should be integers if
                   # type is `INTEGER`.
-              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                  # should be unset if type is `CATEGORICAL`. This value should be integers if
-                  # type is INTEGER.
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -509,9 +479,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                "A String",
-              ],
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
               "type": "A String", # Required. The type of the parameter.
               "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                   # Leave unset for categorical parameters.
@@ -519,6 +489,10 @@
                   # parameters (e.g., `UNIT_LINEAR_SCALE`).
             },
           ],
+          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+              # `MAXIMIZE` and `MINIMIZE`.
+              #
+              # Defaults to `MAXIMIZE`.
           "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
               # You can reduce the time it takes to perform hyperparameter tuning by adding
               # trials in parallel. However, each trail only benefits from the information
@@ -529,10 +503,6 @@
               # Each trial will use the same scale tier and machine types.
               #
               # Defaults to one.
-          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-              # `MAXIMIZE` and `MINIMIZE`.
-              #
-              # Defaults to `MAXIMIZE`.
         },
         "region": "A String", # Required. The Google Compute Engine region to run the training job in.
         "args": [ # Optional. Command line arguments to pass to the program.
@@ -545,6 +515,7 @@
             # this field is that Cloud ML validates the path for use in training.
         "packageUris": [ # Required. The Google Cloud Storage location of the packages with
             # the training program and any additional dependencies.
+            # The maximum number of package URIs is 100.
           "A String",
         ],
         "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -567,6 +538,37 @@
             # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
             # set this value, you must also set `parameter_server_type`.
       },
+      "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+        "modelName": "A String", # Use this field if you want to use the default version for the specified
+            # model. The string must use the following format:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+            # prediction. If not set, Google Cloud ML will pick the runtime version used
+            # during the CreateVersion request for this model version, or choose the
+            # latest stable version when model version information is not available
+            # such as when the model is specified by uri.
+        "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+        "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+            # Defaults to 10 if not specified.
+        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+            # the model to use.
+        "outputPath": "A String", # Required. The output Google Cloud Storage location.
+        "dataFormat": "A String", # Required. The format of the input data files.
+        "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+            # string is formatted the same way as `model_version`, with the addition
+            # of the version information:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+        "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+            # May contain wildcards.
+          "A String",
+        ],
+      },
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+      "jobId": "A String", # Required. The user-specified id of the job.
+      "state": "A String", # Output only. The detailed state of a job.
+      "startTime": "A String", # Output only. When the job processing was started.
       "endTime": "A String", # Output only. When the job processing was completed.
       "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
         "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
@@ -596,10 +598,6 @@
 
     { # Represents a training or prediction job.
       "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
-        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
-        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-            # Only set for hyperparameter tuning jobs.
         "trials": [ # Results for individual Hyperparameter trials.
             # Only set for hyperparameter tuning jobs.
           { # Represents the result of a single hyperparameter tuning trial from a
@@ -622,38 +620,11 @@
             },
           },
         ],
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+            # Only set for hyperparameter tuning jobs.
       },
-      "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
-        "modelName": "A String", # Use this field if you want to use the default version for the specified
-            # model. The string must use the following format:
-            #
-            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
-        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
-            # prediction. If not set, Google Cloud ML will pick the runtime version used
-            # during the CreateVersion request for this model version, or choose the
-            # latest stable version when model version information is not available
-            # such as when the model is specified by uri.
-        "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
-            # May contain wildcards.
-          "A String",
-        ],
-        "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
-            # Defaults to 10 if not specified.
-        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
-            # the model to use.
-        "outputPath": "A String", # Required. The output Google Cloud Storage location.
-        "dataFormat": "A String", # Required. The format of the input data files.
-        "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
-            # string is formatted the same way as `model_version`, with the addition
-            # of the version information:
-            #
-            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
-        "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
-      },
-      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-      "jobId": "A String", # Required. The user-specified id of the job.
-      "state": "A String", # Output only. The detailed state of a job.
-      "startTime": "A String", # Output only. When the job processing was started.
       "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
         "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
             # job's worker nodes.
@@ -710,7 +681,7 @@
             #   <dt>complex_model_m_gpu</dt>
             #   <dd>
             #   A machine equivalent to
-            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   <code suppresswarning="true">complex_model_m</code> that also includes
             #   four GPUs.
             #   </dd>
             # </dl>
@@ -731,9 +702,9 @@
               "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                   # should be unset if type is `CATEGORICAL`. This value should be integers if
                   # type is `INTEGER`.
-              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                  # should be unset if type is `CATEGORICAL`. This value should be integers if
-                  # type is INTEGER.
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -743,9 +714,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                "A String",
-              ],
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
               "type": "A String", # Required. The type of the parameter.
               "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                   # Leave unset for categorical parameters.
@@ -753,6 +724,10 @@
                   # parameters (e.g., `UNIT_LINEAR_SCALE`).
             },
           ],
+          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+              # `MAXIMIZE` and `MINIMIZE`.
+              #
+              # Defaults to `MAXIMIZE`.
           "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
               # You can reduce the time it takes to perform hyperparameter tuning by adding
               # trials in parallel. However, each trail only benefits from the information
@@ -763,10 +738,6 @@
               # Each trial will use the same scale tier and machine types.
               #
               # Defaults to one.
-          "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-              # `MAXIMIZE` and `MINIMIZE`.
-              #
-              # Defaults to `MAXIMIZE`.
         },
         "region": "A String", # Required. The Google Compute Engine region to run the training job in.
         "args": [ # Optional. Command line arguments to pass to the program.
@@ -779,6 +750,7 @@
             # this field is that Cloud ML validates the path for use in training.
         "packageUris": [ # Required. The Google Cloud Storage location of the packages with
             # the training program and any additional dependencies.
+            # The maximum number of package URIs is 100.
           "A String",
         ],
         "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -801,6 +773,37 @@
             # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
             # set this value, you must also set `parameter_server_type`.
       },
+      "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+        "modelName": "A String", # Use this field if you want to use the default version for the specified
+            # model. The string must use the following format:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+        "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+            # prediction. If not set, Google Cloud ML will pick the runtime version used
+            # during the CreateVersion request for this model version, or choose the
+            # latest stable version when model version information is not available
+            # such as when the model is specified by uri.
+        "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+        "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+            # Defaults to 10 if not specified.
+        "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+            # the model to use.
+        "outputPath": "A String", # Required. The output Google Cloud Storage location.
+        "dataFormat": "A String", # Required. The format of the input data files.
+        "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+            # string is formatted the same way as `model_version`, with the addition
+            # of the version information:
+            #
+            # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+        "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+            # May contain wildcards.
+          "A String",
+        ],
+      },
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+      "jobId": "A String", # Required. The user-specified id of the job.
+      "state": "A String", # Output only. The detailed state of a job.
+      "startTime": "A String", # Output only. When the job processing was started.
       "endTime": "A String", # Output only. When the job processing was completed.
       "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
         "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
@@ -844,10 +847,6 @@
     "jobs": [ # The list of jobs.
       { # Represents a training or prediction job.
           "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
-            "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-            "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
-            "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-                # Only set for hyperparameter tuning jobs.
             "trials": [ # Results for individual Hyperparameter trials.
                 # Only set for hyperparameter tuning jobs.
               { # Represents the result of a single hyperparameter tuning trial from a
@@ -870,38 +869,11 @@
                 },
               },
             ],
+            "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
+            "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+            "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
+                # Only set for hyperparameter tuning jobs.
           },
-          "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
-            "modelName": "A String", # Use this field if you want to use the default version for the specified
-                # model. The string must use the following format:
-                #
-                # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
-            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
-                # prediction. If not set, Google Cloud ML will pick the runtime version used
-                # during the CreateVersion request for this model version, or choose the
-                # latest stable version when model version information is not available
-                # such as when the model is specified by uri.
-            "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
-                # May contain wildcards.
-              "A String",
-            ],
-            "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
-                # Defaults to 10 if not specified.
-            "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
-                # the model to use.
-            "outputPath": "A String", # Required. The output Google Cloud Storage location.
-            "dataFormat": "A String", # Required. The format of the input data files.
-            "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
-                # string is formatted the same way as `model_version`, with the addition
-                # of the version information:
-                #
-                # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
-            "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
-          },
-          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
-          "jobId": "A String", # Required. The user-specified id of the job.
-          "state": "A String", # Output only. The detailed state of a job.
-          "startTime": "A String", # Output only. When the job processing was started.
           "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
             "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
                 # job's worker nodes.
@@ -958,7 +930,7 @@
                 #   <dt>complex_model_m_gpu</dt>
                 #   <dd>
                 #   A machine equivalent to
-                #   <code suppresswarning="true">coplex_model_m</code> that also includes
+                #   <code suppresswarning="true">complex_model_m</code> that also includes
                 #   four GPUs.
                 #   </dd>
                 # </dl>
@@ -979,9 +951,9 @@
                   "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                       # should be unset if type is `CATEGORICAL`. This value should be integers if
                       # type is `INTEGER`.
-                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                      # should be unset if type is `CATEGORICAL`. This value should be integers if
-                      # type is INTEGER.
+                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                    "A String",
+                  ],
                   "discreteValues": [ # Required if type is `DISCRETE`.
                       # A list of feasible points.
                       # The list should be in strictly increasing order. For instance, this
@@ -991,9 +963,9 @@
                   ],
                   "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                       # a HyperparameterSpec message. E.g., "learning_rate".
-                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                    "A String",
-                  ],
+                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                      # should be unset if type is `CATEGORICAL`. This value should be integers if
+                      # type is INTEGER.
                   "type": "A String", # Required. The type of the parameter.
                   "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                       # Leave unset for categorical parameters.
@@ -1001,6 +973,10 @@
                       # parameters (e.g., `UNIT_LINEAR_SCALE`).
                 },
               ],
+              "goal": "A String", # Required. The type of goal to use for tuning. Available types are
+                  # `MAXIMIZE` and `MINIMIZE`.
+                  #
+                  # Defaults to `MAXIMIZE`.
               "maxParallelTrials": 42, # Optional. The number of training trials to run concurrently.
                   # You can reduce the time it takes to perform hyperparameter tuning by adding
                   # trials in parallel. However, each trail only benefits from the information
@@ -1011,10 +987,6 @@
                   # Each trial will use the same scale tier and machine types.
                   #
                   # Defaults to one.
-              "goal": "A String", # Required. The type of goal to use for tuning. Available types are
-                  # `MAXIMIZE` and `MINIMIZE`.
-                  #
-                  # Defaults to `MAXIMIZE`.
             },
             "region": "A String", # Required. The Google Compute Engine region to run the training job in.
             "args": [ # Optional. Command line arguments to pass to the program.
@@ -1027,6 +999,7 @@
                 # this field is that Cloud ML validates the path for use in training.
             "packageUris": [ # Required. The Google Cloud Storage location of the packages with
                 # the training program and any additional dependencies.
+                # The maximum number of package URIs is 100.
               "A String",
             ],
             "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -1049,6 +1022,37 @@
                 # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
                 # set this value, you must also set `parameter_server_type`.
           },
+          "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
+            "modelName": "A String", # Use this field if you want to use the default version for the specified
+                # model. The string must use the following format:
+                #
+                # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>[YOUR_MODEL]</var>"`
+            "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this batch
+                # prediction. If not set, Google Cloud ML will pick the runtime version used
+                # during the CreateVersion request for this model version, or choose the
+                # latest stable version when model version information is not available
+                # such as when the model is specified by uri.
+            "region": "A String", # Required. The Google Compute Engine region to run the prediction job in.
+            "maxWorkerCount": "A String", # Optional. The maximum number of workers to be used for parallel processing.
+                # Defaults to 10 if not specified.
+            "uri": "A String", # Use this field if you want to specify a Google Cloud Storage path for
+                # the model to use.
+            "outputPath": "A String", # Required. The output Google Cloud Storage location.
+            "dataFormat": "A String", # Required. The format of the input data files.
+            "versionName": "A String", # Use this field if you want to specify a version of the model to use. The
+                # string is formatted the same way as `model_version`, with the addition
+                # of the version information:
+                #
+                # `"projects/<var>[YOUR_PROJECT]</var>/models/<var>YOUR_MODEL/versions/<var>[YOUR_VERSION]</var>"`
+            "inputPaths": [ # Required. The Google Cloud Storage location of the input data files.
+                # May contain wildcards.
+              "A String",
+            ],
+          },
+          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
+          "jobId": "A String", # Required. The user-specified id of the job.
+          "state": "A String", # Output only. The detailed state of a job.
+          "startTime": "A String", # Output only. When the job processing was started.
           "endTime": "A String", # Output only. When the job processing was completed.
           "predictionOutput": { # Represents results of a prediction job. # The current prediction job result.
             "outputPath": "A String", # The output Google Cloud Storage location provided at the job creation time.
diff --git a/docs/dyn/ml_v1.projects.models.html b/docs/dyn/ml_v1.projects.models.html
index 5ace172..830f7aa 100644
--- a/docs/dyn/ml_v1.projects.models.html
+++ b/docs/dyn/ml_v1.projects.models.html
@@ -89,7 +89,7 @@
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a model, including its name, the description (if</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists the models in a project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -139,28 +139,53 @@
       "description": "A String", # Optional. The description specified for the version when it was created.
       "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
           # If not set, Google Cloud ML will choose a version.
-      "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-          # model. If unset (i.e., by default), the number of nodes used to serve
-          # the model automatically scales with traffic. However, care should be
-          # taken to ramp up traffic according to the model's ability to scale. If
-          # your model needs to handle bursts of traffic beyond it's ability to
-          # scale, it is recommended you set this field appropriately.
+      "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+          # model. You should generally use `automatic_scaling` with an appropriate
+          # `min_nodes` instead, but this option is available if you want more
+          # predictable billing. Beware that latency and error rates will increase
+          # if the traffic exceeds that capability of the system to serve it based
+          # on the selected number of nodes.
         "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
             # starting from the time the model is deployed, so the cost of operating
-            # this model will be proportional to nodes * number of hours since
-            # deployment.
+            # this model will be proportional to `nodes` * number of hours since
+            # last billing cycle plus the cost for each prediction performed.
       },
-      "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
       "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
           # create the version. See the
-          # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-          # more informaiton.
+          # [overview of model
+          # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+          # informaiton.
           #
           # When passing Version to
           # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
           # the model service uses the specified location as the source of the model.
           # Once deployed, the model version is hosted by the prediction service, so
           # this location is useful only as a historical record.
+          # The total number of model files can't exceed 1000.
+      "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+      "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+          # response to increases and decreases in traffic. Care should be
+          # taken to ramp up traffic according to the model's ability to scale
+          # or you will start seeing increases in latency and 429 response codes.
+        "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+            # nodes are always up, starting from the time the model is deployed, so the
+            # cost of operating this model will be at least
+            # `rate` * `min_nodes` * number of hours since last billing cycle,
+            # where `rate` is the cost per node-hour as documented in
+            # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+            # even if no predictions are performed. There is additional cost for each
+            # prediction performed.
+            #
+            # Unlike manual scaling, if the load gets too heavy for the nodes
+            # that are up, the service will automatically add nodes to handle the
+            # increased load as well as scale back as traffic drops, always maintaining
+            # at least `min_nodes`. You will be charged for the time in which additional
+            # nodes are used.
+            #
+            # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+            # to a model stops (and after a cool-down period), nodes will be shut down
+            # and no charges will be incurred until traffic to the model resumes.
+      },
       "createTime": "A String", # Output only. The time the version was created.
       "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
           # requests that do not specify a version.
@@ -216,28 +241,53 @@
         "description": "A String", # Optional. The description specified for the version when it was created.
         "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
             # If not set, Google Cloud ML will choose a version.
-        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-            # model. If unset (i.e., by default), the number of nodes used to serve
-            # the model automatically scales with traffic. However, care should be
-            # taken to ramp up traffic according to the model's ability to scale. If
-            # your model needs to handle bursts of traffic beyond it's ability to
-            # scale, it is recommended you set this field appropriately.
+        "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+            # model. You should generally use `automatic_scaling` with an appropriate
+            # `min_nodes` instead, but this option is available if you want more
+            # predictable billing. Beware that latency and error rates will increase
+            # if the traffic exceeds that capability of the system to serve it based
+            # on the selected number of nodes.
           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
               # starting from the time the model is deployed, so the cost of operating
-              # this model will be proportional to nodes * number of hours since
-              # deployment.
+              # this model will be proportional to `nodes` * number of hours since
+              # last billing cycle plus the cost for each prediction performed.
         },
-        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
-            # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-            # more informaiton.
+            # [overview of model
+            # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+            # informaiton.
             #
             # When passing Version to
             # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
             # the model service uses the specified location as the source of the model.
             # Once deployed, the model version is hosted by the prediction service, so
             # this location is useful only as a historical record.
+            # The total number of model files can't exceed 1000.
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+            # response to increases and decreases in traffic. Care should be
+            # taken to ramp up traffic according to the model's ability to scale
+            # or you will start seeing increases in latency and 429 response codes.
+          "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+              # nodes are always up, starting from the time the model is deployed, so the
+              # cost of operating this model will be at least
+              # `rate` * `min_nodes` * number of hours since last billing cycle,
+              # where `rate` is the cost per node-hour as documented in
+              # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+              # even if no predictions are performed. There is additional cost for each
+              # prediction performed.
+              #
+              # Unlike manual scaling, if the load gets too heavy for the nodes
+              # that are up, the service will automatically add nodes to handle the
+              # increased load as well as scale back as traffic drops, always maintaining
+              # at least `min_nodes`. You will be charged for the time in which additional
+              # nodes are used.
+              #
+              # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+              # to a model stops (and after a cool-down period), nodes will be shut down
+              # and no charges will be incurred until traffic to the model resumes.
+        },
         "createTime": "A String", # Output only. The time the version was created.
         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
             # requests that do not specify a version.
@@ -279,28 +329,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -318,7 +352,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -341,7 +375,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -364,6 +398,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -414,28 +464,53 @@
         "description": "A String", # Optional. The description specified for the version when it was created.
         "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
             # If not set, Google Cloud ML will choose a version.
-        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-            # model. If unset (i.e., by default), the number of nodes used to serve
-            # the model automatically scales with traffic. However, care should be
-            # taken to ramp up traffic according to the model's ability to scale. If
-            # your model needs to handle bursts of traffic beyond it's ability to
-            # scale, it is recommended you set this field appropriately.
+        "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+            # model. You should generally use `automatic_scaling` with an appropriate
+            # `min_nodes` instead, but this option is available if you want more
+            # predictable billing. Beware that latency and error rates will increase
+            # if the traffic exceeds that capability of the system to serve it based
+            # on the selected number of nodes.
           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
               # starting from the time the model is deployed, so the cost of operating
-              # this model will be proportional to nodes * number of hours since
-              # deployment.
+              # this model will be proportional to `nodes` * number of hours since
+              # last billing cycle plus the cost for each prediction performed.
         },
-        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
-            # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-            # more informaiton.
+            # [overview of model
+            # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+            # informaiton.
             #
             # When passing Version to
             # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
             # the model service uses the specified location as the source of the model.
             # Once deployed, the model version is hosted by the prediction service, so
             # this location is useful only as a historical record.
+            # The total number of model files can't exceed 1000.
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+            # response to increases and decreases in traffic. Care should be
+            # taken to ramp up traffic according to the model's ability to scale
+            # or you will start seeing increases in latency and 429 response codes.
+          "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+              # nodes are always up, starting from the time the model is deployed, so the
+              # cost of operating this model will be at least
+              # `rate` * `min_nodes` * number of hours since last billing cycle,
+              # where `rate` is the cost per node-hour as documented in
+              # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+              # even if no predictions are performed. There is additional cost for each
+              # prediction performed.
+              #
+              # Unlike manual scaling, if the load gets too heavy for the nodes
+              # that are up, the service will automatically add nodes to handle the
+              # increased load as well as scale back as traffic drops, always maintaining
+              # at least `min_nodes`. You will be charged for the time in which additional
+              # nodes are used.
+              #
+              # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+              # to a model stops (and after a cool-down period), nodes will be shut down
+              # and no charges will be incurred until traffic to the model resumes.
+        },
         "createTime": "A String", # Output only. The time the version was created.
         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
             # requests that do not specify a version.
@@ -456,7 +531,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the models in a project.
 
 Each project can contain multiple models, and each model can have multiple
@@ -466,11 +541,6 @@
   parent: string, Required. The name of the project whose models are to be listed.
 
 Authorization: requires `Viewer` role on the specified project. (required)
-  pageSize: integer, Optional. The number of models to retrieve per "page" of results. If there
-are more remaining results than this number, the response message will
-contain a valid value in the `next_page_token` field.
-
-The default value is 20, and the maximum page size is 100.
   pageToken: string, Optional. A page token to request the next page of results.
 
 You get the token from the `next_page_token` field of the response from
@@ -479,13 +549,16 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The number of models to retrieve per "page" of results. If there
+are more remaining results than this number, the response message will
+contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
 
 Returns:
   An object of the form:
 
     { # Response message for the ListModels method.
-    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
-        # subsequent call.
     "models": [ # The list of models.
       { # Represents a machine learning solution.
             #
@@ -516,28 +589,53 @@
             "description": "A String", # Optional. The description specified for the version when it was created.
             "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
                 # If not set, Google Cloud ML will choose a version.
-            "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-                # model. If unset (i.e., by default), the number of nodes used to serve
-                # the model automatically scales with traffic. However, care should be
-                # taken to ramp up traffic according to the model's ability to scale. If
-                # your model needs to handle bursts of traffic beyond it's ability to
-                # scale, it is recommended you set this field appropriately.
+            "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+                # model. You should generally use `automatic_scaling` with an appropriate
+                # `min_nodes` instead, but this option is available if you want more
+                # predictable billing. Beware that latency and error rates will increase
+                # if the traffic exceeds that capability of the system to serve it based
+                # on the selected number of nodes.
               "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
                   # starting from the time the model is deployed, so the cost of operating
-                  # this model will be proportional to nodes * number of hours since
-                  # deployment.
+                  # this model will be proportional to `nodes` * number of hours since
+                  # last billing cycle plus the cost for each prediction performed.
             },
-            "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
             "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
                 # create the version. See the
-                # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-                # more informaiton.
+                # [overview of model
+                # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+                # informaiton.
                 #
                 # When passing Version to
                 # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
                 # the model service uses the specified location as the source of the model.
                 # Once deployed, the model version is hosted by the prediction service, so
                 # this location is useful only as a historical record.
+                # The total number of model files can't exceed 1000.
+            "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+            "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+                # response to increases and decreases in traffic. Care should be
+                # taken to ramp up traffic according to the model's ability to scale
+                # or you will start seeing increases in latency and 429 response codes.
+              "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+                  # nodes are always up, starting from the time the model is deployed, so the
+                  # cost of operating this model will be at least
+                  # `rate` * `min_nodes` * number of hours since last billing cycle,
+                  # where `rate` is the cost per node-hour as documented in
+                  # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+                  # even if no predictions are performed. There is additional cost for each
+                  # prediction performed.
+                  #
+                  # Unlike manual scaling, if the load gets too heavy for the nodes
+                  # that are up, the service will automatically add nodes to handle the
+                  # increased load as well as scale back as traffic drops, always maintaining
+                  # at least `min_nodes`. You will be charged for the time in which additional
+                  # nodes are used.
+                  #
+                  # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+                  # to a model stops (and after a cool-down period), nodes will be shut down
+                  # and no charges will be incurred until traffic to the model resumes.
+            },
             "createTime": "A String", # Output only. The time the version was created.
             "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
                 # requests that do not specify a version.
@@ -556,6 +654,8 @@
           "description": "A String", # Optional. The description specified for the model when it was created.
         },
     ],
+    "nextPageToken": "A String", # Optional. Pass this token as the `page_token` field of the request for a
+        # subsequent call.
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1.projects.models.versions.html b/docs/dyn/ml_v1.projects.models.versions.html
index aad4165..1df296a 100644
--- a/docs/dyn/ml_v1.projects.models.versions.html
+++ b/docs/dyn/ml_v1.projects.models.versions.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a model version.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Gets basic information about all the versions of a model.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -120,28 +120,53 @@
   "description": "A String", # Optional. The description specified for the version when it was created.
   "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
       # If not set, Google Cloud ML will choose a version.
-  "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-      # model. If unset (i.e., by default), the number of nodes used to serve
-      # the model automatically scales with traffic. However, care should be
-      # taken to ramp up traffic according to the model's ability to scale. If
-      # your model needs to handle bursts of traffic beyond it's ability to
-      # scale, it is recommended you set this field appropriately.
+  "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+      # model. You should generally use `automatic_scaling` with an appropriate
+      # `min_nodes` instead, but this option is available if you want more
+      # predictable billing. Beware that latency and error rates will increase
+      # if the traffic exceeds that capability of the system to serve it based
+      # on the selected number of nodes.
     "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
         # starting from the time the model is deployed, so the cost of operating
-        # this model will be proportional to nodes * number of hours since
-        # deployment.
+        # this model will be proportional to `nodes` * number of hours since
+        # last billing cycle plus the cost for each prediction performed.
   },
-  "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
   "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
       # create the version. See the
-      # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-      # more informaiton.
+      # [overview of model
+      # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+      # informaiton.
       # 
       # When passing Version to
       # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
       # the model service uses the specified location as the source of the model.
       # Once deployed, the model version is hosted by the prediction service, so
       # this location is useful only as a historical record.
+      # The total number of model files can't exceed 1000.
+  "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+  "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+      # response to increases and decreases in traffic. Care should be
+      # taken to ramp up traffic according to the model's ability to scale
+      # or you will start seeing increases in latency and 429 response codes.
+    "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+        # nodes are always up, starting from the time the model is deployed, so the
+        # cost of operating this model will be at least
+        # `rate` * `min_nodes` * number of hours since last billing cycle,
+        # where `rate` is the cost per node-hour as documented in
+        # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+        # even if no predictions are performed. There is additional cost for each
+        # prediction performed.
+        #
+        # Unlike manual scaling, if the load gets too heavy for the nodes
+        # that are up, the service will automatically add nodes to handle the
+        # increased load as well as scale back as traffic drops, always maintaining
+        # at least `min_nodes`. You will be charged for the time in which additional
+        # nodes are used.
+        #
+        # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+        # to a model stops (and after a cool-down period), nodes will be shut down
+        # and no charges will be incurred until traffic to the model resumes.
+  },
   "createTime": "A String", # Output only. The time the version was created.
   "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
       # requests that do not specify a version.
@@ -163,28 +188,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -202,7 +211,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -225,7 +234,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -248,6 +257,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -277,28 +302,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -316,7 +325,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -339,7 +348,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -362,6 +371,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -395,28 +420,53 @@
     "description": "A String", # Optional. The description specified for the version when it was created.
     "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
         # If not set, Google Cloud ML will choose a version.
-    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-        # model. If unset (i.e., by default), the number of nodes used to serve
-        # the model automatically scales with traffic. However, care should be
-        # taken to ramp up traffic according to the model's ability to scale. If
-        # your model needs to handle bursts of traffic beyond it's ability to
-        # scale, it is recommended you set this field appropriately.
+    "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+        # model. You should generally use `automatic_scaling` with an appropriate
+        # `min_nodes` instead, but this option is available if you want more
+        # predictable billing. Beware that latency and error rates will increase
+        # if the traffic exceeds that capability of the system to serve it based
+        # on the selected number of nodes.
       "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
           # starting from the time the model is deployed, so the cost of operating
-          # this model will be proportional to nodes * number of hours since
-          # deployment.
+          # this model will be proportional to `nodes` * number of hours since
+          # last billing cycle plus the cost for each prediction performed.
     },
-    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
     "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
         # create the version. See the
-        # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-        # more informaiton.
+        # [overview of model
+        # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+        # informaiton.
         #
         # When passing Version to
         # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
         # the model service uses the specified location as the source of the model.
         # Once deployed, the model version is hosted by the prediction service, so
         # this location is useful only as a historical record.
+        # The total number of model files can't exceed 1000.
+    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+    "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+        # response to increases and decreases in traffic. Care should be
+        # taken to ramp up traffic according to the model's ability to scale
+        # or you will start seeing increases in latency and 429 response codes.
+      "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+          # nodes are always up, starting from the time the model is deployed, so the
+          # cost of operating this model will be at least
+          # `rate` * `min_nodes` * number of hours since last billing cycle,
+          # where `rate` is the cost per node-hour as documented in
+          # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+          # even if no predictions are performed. There is additional cost for each
+          # prediction performed.
+          #
+          # Unlike manual scaling, if the load gets too heavy for the nodes
+          # that are up, the service will automatically add nodes to handle the
+          # increased load as well as scale back as traffic drops, always maintaining
+          # at least `min_nodes`. You will be charged for the time in which additional
+          # nodes are used.
+          #
+          # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+          # to a model stops (and after a cool-down period), nodes will be shut down
+          # and no charges will be incurred until traffic to the model resumes.
+    },
     "createTime": "A String", # Output only. The time the version was created.
     "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
         # requests that do not specify a version.
@@ -430,7 +480,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Gets basic information about all the versions of a model.
 
 If you expect that a model has a lot of versions, or if you need to handle
@@ -441,11 +491,6 @@
   parent: string, Required. The name of the model for which to list the version.
 
 Authorization: requires `Viewer` role on the parent project. (required)
-  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
-there are more remaining results than this number, the response message
-will contain a valid value in the `next_page_token` field.
-
-The default value is 20, and the maximum page size is 100.
   pageToken: string, Optional. A page token to request the next page of results.
 
 You get the token from the `next_page_token` field of the response from
@@ -454,6 +499,11 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
+there are more remaining results than this number, the response message
+will contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
 
 Returns:
   An object of the form:
@@ -471,28 +521,53 @@
         "description": "A String", # Optional. The description specified for the version when it was created.
         "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
             # If not set, Google Cloud ML will choose a version.
-        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-            # model. If unset (i.e., by default), the number of nodes used to serve
-            # the model automatically scales with traffic. However, care should be
-            # taken to ramp up traffic according to the model's ability to scale. If
-            # your model needs to handle bursts of traffic beyond it's ability to
-            # scale, it is recommended you set this field appropriately.
+        "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+            # model. You should generally use `automatic_scaling` with an appropriate
+            # `min_nodes` instead, but this option is available if you want more
+            # predictable billing. Beware that latency and error rates will increase
+            # if the traffic exceeds that capability of the system to serve it based
+            # on the selected number of nodes.
           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
               # starting from the time the model is deployed, so the cost of operating
-              # this model will be proportional to nodes * number of hours since
-              # deployment.
+              # this model will be proportional to `nodes` * number of hours since
+              # last billing cycle plus the cost for each prediction performed.
         },
-        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
-            # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-            # more informaiton.
+            # [overview of model
+            # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+            # informaiton.
             #
             # When passing Version to
             # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
             # the model service uses the specified location as the source of the model.
             # Once deployed, the model version is hosted by the prediction service, so
             # this location is useful only as a historical record.
+            # The total number of model files can't exceed 1000.
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+            # response to increases and decreases in traffic. Care should be
+            # taken to ramp up traffic according to the model's ability to scale
+            # or you will start seeing increases in latency and 429 response codes.
+          "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+              # nodes are always up, starting from the time the model is deployed, so the
+              # cost of operating this model will be at least
+              # `rate` * `min_nodes` * number of hours since last billing cycle,
+              # where `rate` is the cost per node-hour as documented in
+              # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+              # even if no predictions are performed. There is additional cost for each
+              # prediction performed.
+              #
+              # Unlike manual scaling, if the load gets too heavy for the nodes
+              # that are up, the service will automatically add nodes to handle the
+              # increased load as well as scale back as traffic drops, always maintaining
+              # at least `min_nodes`. You will be charged for the time in which additional
+              # nodes are used.
+              #
+              # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+              # to a model stops (and after a cool-down period), nodes will be shut down
+              # and no charges will be incurred until traffic to the model resumes.
+        },
         "createTime": "A String", # Output only. The time the version was created.
         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
             # requests that do not specify a version.
@@ -561,28 +636,53 @@
     "description": "A String", # Optional. The description specified for the version when it was created.
     "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
         # If not set, Google Cloud ML will choose a version.
-    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-        # model. If unset (i.e., by default), the number of nodes used to serve
-        # the model automatically scales with traffic. However, care should be
-        # taken to ramp up traffic according to the model's ability to scale. If
-        # your model needs to handle bursts of traffic beyond it's ability to
-        # scale, it is recommended you set this field appropriately.
+    "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+        # model. You should generally use `automatic_scaling` with an appropriate
+        # `min_nodes` instead, but this option is available if you want more
+        # predictable billing. Beware that latency and error rates will increase
+        # if the traffic exceeds that capability of the system to serve it based
+        # on the selected number of nodes.
       "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
           # starting from the time the model is deployed, so the cost of operating
-          # this model will be proportional to nodes * number of hours since
-          # deployment.
+          # this model will be proportional to `nodes` * number of hours since
+          # last billing cycle plus the cost for each prediction performed.
     },
-    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
     "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
         # create the version. See the
-        # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-        # more informaiton.
+        # [overview of model
+        # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+        # informaiton.
         #
         # When passing Version to
         # [projects.models.versions.create](/ml-engine/reference/rest/v1/projects.models.versions/create)
         # the model service uses the specified location as the source of the model.
         # Once deployed, the model version is hosted by the prediction service, so
         # this location is useful only as a historical record.
+        # The total number of model files can't exceed 1000.
+    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+    "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+        # response to increases and decreases in traffic. Care should be
+        # taken to ramp up traffic according to the model's ability to scale
+        # or you will start seeing increases in latency and 429 response codes.
+      "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+          # nodes are always up, starting from the time the model is deployed, so the
+          # cost of operating this model will be at least
+          # `rate` * `min_nodes` * number of hours since last billing cycle,
+          # where `rate` is the cost per node-hour as documented in
+          # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+          # even if no predictions are performed. There is additional cost for each
+          # prediction performed.
+          #
+          # Unlike manual scaling, if the load gets too heavy for the nodes
+          # that are up, the service will automatically add nodes to handle the
+          # increased load as well as scale back as traffic drops, always maintaining
+          # at least `min_nodes`. You will be charged for the time in which additional
+          # nodes are used.
+          #
+          # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+          # to a model stops (and after a cool-down period), nodes will be shut down
+          # and no charges will be incurred until traffic to the model resumes.
+    },
     "createTime": "A String", # Output only. The time the version was created.
     "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
         # requests that do not specify a version.
diff --git a/docs/dyn/ml_v1.projects.operations.html b/docs/dyn/ml_v1.projects.operations.html
index be892da..c86e30f 100644
--- a/docs/dyn/ml_v1.projects.operations.html
+++ b/docs/dyn/ml_v1.projects.operations.html
@@ -172,28 +172,12 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "metadata": { # Service-specific metadata associated with the operation.  It typically
         # contains progress information and common metadata such as create time.
         # Some services might not provide such metadata.  Any method that returns a
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -211,7 +195,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -234,7 +218,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -257,6 +241,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -265,11 +265,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -282,31 +287,16 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
         "metadata": { # Service-specific metadata associated with the operation.  It typically
             # contains progress information and common metadata such as create time.
             # Some services might not provide such metadata.  Any method that returns a
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -324,7 +314,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -347,7 +337,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -370,9 +360,24 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1beta1.projects.html b/docs/dyn/ml_v1beta1.projects.html
index aec1d5c..ac4c2af 100644
--- a/docs/dyn/ml_v1beta1.projects.html
+++ b/docs/dyn/ml_v1beta1.projects.html
@@ -361,6 +361,12 @@
         # handled, all other features will continue to work unchanged.
       "contentType": "A String", # The HTTP Content-Type string representing the content type of the body.
       "data": "A String", # HTTP body binary data.
+      "extensions": [ # Application specific response metadata. Must be set in the first response
+          # for streaming APIs.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
     },
   }
 
@@ -412,6 +418,12 @@
       # handled, all other features will continue to work unchanged.
     "contentType": "A String", # The HTTP Content-Type string representing the content type of the body.
     "data": "A String", # HTTP body binary data.
+    "extensions": [ # Application specific response metadata. Must be set in the first response
+        # for streaming APIs.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1beta1.projects.jobs.html b/docs/dyn/ml_v1beta1.projects.jobs.html
index 4980b42..cd6f67a 100644
--- a/docs/dyn/ml_v1beta1.projects.jobs.html
+++ b/docs/dyn/ml_v1beta1.projects.jobs.html
@@ -136,7 +136,6 @@
     The object takes the form of:
 
 { # Represents a training or prediction job.
-    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
     "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
       "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
           # Only set for hyperparameter tuning jobs.
@@ -165,7 +164,6 @@
       ],
       "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
     },
-    "startTime": "A String", # Output only. When the job processing was started.
     "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
       "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
           # job's worker nodes.
@@ -222,7 +220,7 @@
           #   <dt>complex_model_m_gpu</dt>
           #   <dd>
           #   A machine equivalent to
-          #   <code suppresswarning="true">coplex_model_m</code> that also includes
+          #   <code suppresswarning="true">complex_model_m</code> that also includes
           #   four GPUs.
           #   </dd>
           # </dl>
@@ -243,9 +241,9 @@
             "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                 # should be unset if type is `CATEGORICAL`. This value should be integers if
                 # type is `INTEGER`.
-            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                # should be unset if type is `CATEGORICAL`. This value should be integers if
-                # type is INTEGER.
+            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+              "A String",
+            ],
             "discreteValues": [ # Required if type is `DISCRETE`.
                 # A list of feasible points.
                 # The list should be in strictly increasing order. For instance, this
@@ -255,9 +253,9 @@
             ],
             "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                 # a HyperparameterSpec message. E.g., "learning_rate".
-            "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-              "A String",
-            ],
+            "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                # should be unset if type is `CATEGORICAL`. This value should be integers if
+                # type is INTEGER.
             "type": "A String", # Required. The type of the parameter.
             "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                 # Leave unset for categorical parameters.
@@ -291,6 +289,7 @@
           # this field is that Cloud ML validates the path for use in training.
       "packageUris": [ # Required. The Google Cloud Storage location of the packages with
           # the training program and any additional dependencies.
+          # The maximum number of package URIs is 100.
         "A String",
       ],
       "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -313,6 +312,8 @@
           # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
           # set this value, you must also set `parameter_server_type`.
     },
+    "startTime": "A String", # Output only. When the job processing was started.
+    "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
     "jobId": "A String", # Required. The user-specified id of the job.
     "state": "A String", # Output only. The detailed state of a job.
     "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
@@ -361,7 +362,6 @@
   An object of the form:
 
     { # Represents a training or prediction job.
-      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
       "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
         "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
             # Only set for hyperparameter tuning jobs.
@@ -390,7 +390,6 @@
         ],
         "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
       },
-      "startTime": "A String", # Output only. When the job processing was started.
       "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
         "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
             # job's worker nodes.
@@ -447,7 +446,7 @@
             #   <dt>complex_model_m_gpu</dt>
             #   <dd>
             #   A machine equivalent to
-            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   <code suppresswarning="true">complex_model_m</code> that also includes
             #   four GPUs.
             #   </dd>
             # </dl>
@@ -468,9 +467,9 @@
               "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                   # should be unset if type is `CATEGORICAL`. This value should be integers if
                   # type is `INTEGER`.
-              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                  # should be unset if type is `CATEGORICAL`. This value should be integers if
-                  # type is INTEGER.
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -480,9 +479,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                "A String",
-              ],
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
               "type": "A String", # Required. The type of the parameter.
               "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                   # Leave unset for categorical parameters.
@@ -516,6 +515,7 @@
             # this field is that Cloud ML validates the path for use in training.
         "packageUris": [ # Required. The Google Cloud Storage location of the packages with
             # the training program and any additional dependencies.
+            # The maximum number of package URIs is 100.
           "A String",
         ],
         "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -538,6 +538,8 @@
             # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
             # set this value, you must also set `parameter_server_type`.
       },
+      "startTime": "A String", # Output only. When the job processing was started.
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
       "jobId": "A String", # Required. The user-specified id of the job.
       "state": "A String", # Output only. The detailed state of a job.
       "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
@@ -595,7 +597,6 @@
   An object of the form:
 
     { # Represents a training or prediction job.
-      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
       "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
         "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
             # Only set for hyperparameter tuning jobs.
@@ -624,7 +625,6 @@
         ],
         "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
       },
-      "startTime": "A String", # Output only. When the job processing was started.
       "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
         "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
             # job's worker nodes.
@@ -681,7 +681,7 @@
             #   <dt>complex_model_m_gpu</dt>
             #   <dd>
             #   A machine equivalent to
-            #   <code suppresswarning="true">coplex_model_m</code> that also includes
+            #   <code suppresswarning="true">complex_model_m</code> that also includes
             #   four GPUs.
             #   </dd>
             # </dl>
@@ -702,9 +702,9 @@
               "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                   # should be unset if type is `CATEGORICAL`. This value should be integers if
                   # type is `INTEGER`.
-              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                  # should be unset if type is `CATEGORICAL`. This value should be integers if
-                  # type is INTEGER.
+              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                "A String",
+              ],
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -714,9 +714,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                "A String",
-              ],
+              "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                  # should be unset if type is `CATEGORICAL`. This value should be integers if
+                  # type is INTEGER.
               "type": "A String", # Required. The type of the parameter.
               "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                   # Leave unset for categorical parameters.
@@ -750,6 +750,7 @@
             # this field is that Cloud ML validates the path for use in training.
         "packageUris": [ # Required. The Google Cloud Storage location of the packages with
             # the training program and any additional dependencies.
+            # The maximum number of package URIs is 100.
           "A String",
         ],
         "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -772,6 +773,8 @@
             # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
             # set this value, you must also set `parameter_server_type`.
       },
+      "startTime": "A String", # Output only. When the job processing was started.
+      "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
       "jobId": "A String", # Required. The user-specified id of the job.
       "state": "A String", # Output only. The detailed state of a job.
       "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
@@ -843,7 +846,6 @@
         # subsequent call.
     "jobs": [ # The list of jobs.
       { # Represents a training or prediction job.
-          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
           "trainingOutput": { # Represents results of a training job. Output only. # The current training job result.
             "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
                 # Only set for hyperparameter tuning jobs.
@@ -872,7 +874,6 @@
             ],
             "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
           },
-          "startTime": "A String", # Output only. When the job processing was started.
           "trainingInput": { # Represents input parameters for a training job. # Input parameters to create a training job.
             "workerType": "A String", # Optional. Specifies the type of virtual machine to use for your training
                 # job's worker nodes.
@@ -929,7 +930,7 @@
                 #   <dt>complex_model_m_gpu</dt>
                 #   <dd>
                 #   A machine equivalent to
-                #   <code suppresswarning="true">coplex_model_m</code> that also includes
+                #   <code suppresswarning="true">complex_model_m</code> that also includes
                 #   four GPUs.
                 #   </dd>
                 # </dl>
@@ -950,9 +951,9 @@
                   "maxValue": 3.14, # Required if typeis `DOUBLE` or `INTEGER`. This field
                       # should be unset if type is `CATEGORICAL`. This value should be integers if
                       # type is `INTEGER`.
-                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
-                      # should be unset if type is `CATEGORICAL`. This value should be integers if
-                      # type is INTEGER.
+                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
+                    "A String",
+                  ],
                   "discreteValues": [ # Required if type is `DISCRETE`.
                       # A list of feasible points.
                       # The list should be in strictly increasing order. For instance, this
@@ -962,9 +963,9 @@
                   ],
                   "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                       # a HyperparameterSpec message. E.g., "learning_rate".
-                  "categoricalValues": [ # Required if type is `CATEGORICAL`. The list of possible categories.
-                    "A String",
-                  ],
+                  "minValue": 3.14, # Required if type is `DOUBLE` or `INTEGER`. This field
+                      # should be unset if type is `CATEGORICAL`. This value should be integers if
+                      # type is INTEGER.
                   "type": "A String", # Required. The type of the parameter.
                   "scaleType": "A String", # Optional. How the parameter should be scaled to the hypercube.
                       # Leave unset for categorical parameters.
@@ -998,6 +999,7 @@
                 # this field is that Cloud ML validates the path for use in training.
             "packageUris": [ # Required. The Google Cloud Storage location of the packages with
                 # the training program and any additional dependencies.
+                # The maximum number of package URIs is 100.
               "A String",
             ],
             "workerCount": "A String", # Optional. The number of worker replicas to use for the training job. Each
@@ -1020,6 +1022,8 @@
                 # This value can only be used when `scale_tier` is set to `CUSTOM`.If you
                 # set this value, you must also set `parameter_server_type`.
           },
+          "startTime": "A String", # Output only. When the job processing was started.
+          "errorMessage": "A String", # Output only. The details of a failure or a cancellation.
           "jobId": "A String", # Required. The user-specified id of the job.
           "state": "A String", # Output only. The detailed state of a job.
           "predictionInput": { # Represents input parameters for a prediction job. # Input parameters to create a prediction job.
diff --git a/docs/dyn/ml_v1beta1.projects.models.html b/docs/dyn/ml_v1beta1.projects.models.html
index 0a36f05..ed302d3 100644
--- a/docs/dyn/ml_v1beta1.projects.models.html
+++ b/docs/dyn/ml_v1beta1.projects.models.html
@@ -136,40 +136,65 @@
         # prediction requests. A model can have multiple versions. You can get
         # information about all of the versions of a given model by calling
         # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-      "name": "A String", # Required.The name specified for the version when it was created.
-          #
-          # The version name must be unique within the model it is created in.
+      "description": "A String", # Optional. The description specified for the version when it was created.
       "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
           # If not set, Google Cloud ML will choose a version.
-      "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-          # model. If unset (i.e., by default), the number of nodes used to serve
-          # the model automatically scales with traffic. However, care should be
-          # taken to ramp up traffic according to the model's ability to scale. If
-          # your model needs to handle bursts of traffic beyond it's ability to
-          # scale, it is recommended you set this field appropriately.
+      "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+          # model. You should generally use `automatic_scaling` with an appropriate
+          # `min_nodes` instead, but this option is available if you want predictable
+          # billing. Beware that latency and error rates will increase if the
+          # traffic exceeds that capability of the system to serve it based on
+          # the selected number of nodes.
         "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
             # starting from the time the model is deployed, so the cost of operating
-            # this model will be proportional to nodes * number of hours since
-            # deployment.
+            # this model will be proportional to `nodes` * number of hours since
+            # last billing cycle.
       },
-      "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
       "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
           # create the version. See the
-          # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-          # more informaiton.
+          # [overview of model
+          # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+          # informaiton.
           #
           # When passing Version to
           # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
           # the model service uses the specified location as the source of the model.
           # Once deployed, the model version is hosted by the prediction service, so
           # this location is useful only as a historical record.
+          # The total number of model files can't exceed 1000.
+      "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+      "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+          # response to increases and decreases in traffic. Care should be
+          # taken to ramp up traffic according to the model's ability to scale
+          # or you will start seeing increases in latency and 429 response codes.
+        "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+            # nodes are always up, starting from the time the model is deployed, so the
+            # cost of operating this model will be at least
+            # `rate` * `min_nodes` * number of hours since last billing cycle,
+            # where `rate` is the cost per node-hour as documented in
+            # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+            # even if no predictions are performed. There is additional cost for each
+            # prediction performed.
+            #
+            # Unlike manual scaling, if the load gets too heavy for the nodes
+            # that are up, the service will automatically add nodes to handle the
+            # increased load as well as scale back as traffic drops, always maintaining
+            # at least `min_nodes`. You will be charged for the time in which additional
+            # nodes are used.
+            #
+            # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+            # to a model stops (and after a cool-down period), nodes will be shut down
+            # and no charges will be incurred until traffic to the model resumes.
+      },
       "createTime": "A String", # Output only. The time the version was created.
       "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
           # requests that do not specify a version.
           #
           # You can change the default version by calling
           # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-      "description": "A String", # Optional. The description specified for the version when it was created.
+      "name": "A String", # Required.The name specified for the version when it was created.
+          #
+          # The version name must be unique within the model it is created in.
     },
     "name": "A String", # Required. The name specified for the model when it was created.
         # 
@@ -213,40 +238,65 @@
           # prediction requests. A model can have multiple versions. You can get
           # information about all of the versions of a given model by calling
           # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-        "name": "A String", # Required.The name specified for the version when it was created.
-            #
-            # The version name must be unique within the model it is created in.
+        "description": "A String", # Optional. The description specified for the version when it was created.
         "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
             # If not set, Google Cloud ML will choose a version.
-        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-            # model. If unset (i.e., by default), the number of nodes used to serve
-            # the model automatically scales with traffic. However, care should be
-            # taken to ramp up traffic according to the model's ability to scale. If
-            # your model needs to handle bursts of traffic beyond it's ability to
-            # scale, it is recommended you set this field appropriately.
+        "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+            # model. You should generally use `automatic_scaling` with an appropriate
+            # `min_nodes` instead, but this option is available if you want predictable
+            # billing. Beware that latency and error rates will increase if the
+            # traffic exceeds that capability of the system to serve it based on
+            # the selected number of nodes.
           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
               # starting from the time the model is deployed, so the cost of operating
-              # this model will be proportional to nodes * number of hours since
-              # deployment.
+              # this model will be proportional to `nodes` * number of hours since
+              # last billing cycle.
         },
-        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
-            # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-            # more informaiton.
+            # [overview of model
+            # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+            # informaiton.
             #
             # When passing Version to
             # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
             # the model service uses the specified location as the source of the model.
             # Once deployed, the model version is hosted by the prediction service, so
             # this location is useful only as a historical record.
+            # The total number of model files can't exceed 1000.
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+            # response to increases and decreases in traffic. Care should be
+            # taken to ramp up traffic according to the model's ability to scale
+            # or you will start seeing increases in latency and 429 response codes.
+          "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+              # nodes are always up, starting from the time the model is deployed, so the
+              # cost of operating this model will be at least
+              # `rate` * `min_nodes` * number of hours since last billing cycle,
+              # where `rate` is the cost per node-hour as documented in
+              # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+              # even if no predictions are performed. There is additional cost for each
+              # prediction performed.
+              #
+              # Unlike manual scaling, if the load gets too heavy for the nodes
+              # that are up, the service will automatically add nodes to handle the
+              # increased load as well as scale back as traffic drops, always maintaining
+              # at least `min_nodes`. You will be charged for the time in which additional
+              # nodes are used.
+              #
+              # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+              # to a model stops (and after a cool-down period), nodes will be shut down
+              # and no charges will be incurred until traffic to the model resumes.
+        },
         "createTime": "A String", # Output only. The time the version was created.
         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
             # requests that do not specify a version.
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "name": "A String", # Required.The name specified for the version when it was created.
+            #
+            # The version name must be unique within the model it is created in.
       },
       "name": "A String", # Required. The name specified for the model when it was created.
           #
@@ -285,22 +335,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -318,7 +352,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -341,7 +375,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -364,6 +398,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -411,40 +461,65 @@
           # prediction requests. A model can have multiple versions. You can get
           # information about all of the versions of a given model by calling
           # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-        "name": "A String", # Required.The name specified for the version when it was created.
-            #
-            # The version name must be unique within the model it is created in.
+        "description": "A String", # Optional. The description specified for the version when it was created.
         "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
             # If not set, Google Cloud ML will choose a version.
-        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-            # model. If unset (i.e., by default), the number of nodes used to serve
-            # the model automatically scales with traffic. However, care should be
-            # taken to ramp up traffic according to the model's ability to scale. If
-            # your model needs to handle bursts of traffic beyond it's ability to
-            # scale, it is recommended you set this field appropriately.
+        "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+            # model. You should generally use `automatic_scaling` with an appropriate
+            # `min_nodes` instead, but this option is available if you want predictable
+            # billing. Beware that latency and error rates will increase if the
+            # traffic exceeds that capability of the system to serve it based on
+            # the selected number of nodes.
           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
               # starting from the time the model is deployed, so the cost of operating
-              # this model will be proportional to nodes * number of hours since
-              # deployment.
+              # this model will be proportional to `nodes` * number of hours since
+              # last billing cycle.
         },
-        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
-            # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-            # more informaiton.
+            # [overview of model
+            # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+            # informaiton.
             #
             # When passing Version to
             # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
             # the model service uses the specified location as the source of the model.
             # Once deployed, the model version is hosted by the prediction service, so
             # this location is useful only as a historical record.
+            # The total number of model files can't exceed 1000.
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+            # response to increases and decreases in traffic. Care should be
+            # taken to ramp up traffic according to the model's ability to scale
+            # or you will start seeing increases in latency and 429 response codes.
+          "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+              # nodes are always up, starting from the time the model is deployed, so the
+              # cost of operating this model will be at least
+              # `rate` * `min_nodes` * number of hours since last billing cycle,
+              # where `rate` is the cost per node-hour as documented in
+              # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+              # even if no predictions are performed. There is additional cost for each
+              # prediction performed.
+              #
+              # Unlike manual scaling, if the load gets too heavy for the nodes
+              # that are up, the service will automatically add nodes to handle the
+              # increased load as well as scale back as traffic drops, always maintaining
+              # at least `min_nodes`. You will be charged for the time in which additional
+              # nodes are used.
+              #
+              # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+              # to a model stops (and after a cool-down period), nodes will be shut down
+              # and no charges will be incurred until traffic to the model resumes.
+        },
         "createTime": "A String", # Output only. The time the version was created.
         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
             # requests that do not specify a version.
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "name": "A String", # Required.The name specified for the version when it was created.
+            #
+            # The version name must be unique within the model it is created in.
       },
       "name": "A String", # Required. The name specified for the model when it was created.
           #
@@ -513,40 +588,65 @@
               # prediction requests. A model can have multiple versions. You can get
               # information about all of the versions of a given model by calling
               # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-            "name": "A String", # Required.The name specified for the version when it was created.
-                #
-                # The version name must be unique within the model it is created in.
+            "description": "A String", # Optional. The description specified for the version when it was created.
             "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
                 # If not set, Google Cloud ML will choose a version.
-            "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-                # model. If unset (i.e., by default), the number of nodes used to serve
-                # the model automatically scales with traffic. However, care should be
-                # taken to ramp up traffic according to the model's ability to scale. If
-                # your model needs to handle bursts of traffic beyond it's ability to
-                # scale, it is recommended you set this field appropriately.
+            "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+                # model. You should generally use `automatic_scaling` with an appropriate
+                # `min_nodes` instead, but this option is available if you want predictable
+                # billing. Beware that latency and error rates will increase if the
+                # traffic exceeds that capability of the system to serve it based on
+                # the selected number of nodes.
               "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
                   # starting from the time the model is deployed, so the cost of operating
-                  # this model will be proportional to nodes * number of hours since
-                  # deployment.
+                  # this model will be proportional to `nodes` * number of hours since
+                  # last billing cycle.
             },
-            "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
             "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
                 # create the version. See the
-                # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-                # more informaiton.
+                # [overview of model
+                # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+                # informaiton.
                 #
                 # When passing Version to
                 # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
                 # the model service uses the specified location as the source of the model.
                 # Once deployed, the model version is hosted by the prediction service, so
                 # this location is useful only as a historical record.
+                # The total number of model files can't exceed 1000.
+            "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+            "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+                # response to increases and decreases in traffic. Care should be
+                # taken to ramp up traffic according to the model's ability to scale
+                # or you will start seeing increases in latency and 429 response codes.
+              "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+                  # nodes are always up, starting from the time the model is deployed, so the
+                  # cost of operating this model will be at least
+                  # `rate` * `min_nodes` * number of hours since last billing cycle,
+                  # where `rate` is the cost per node-hour as documented in
+                  # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+                  # even if no predictions are performed. There is additional cost for each
+                  # prediction performed.
+                  #
+                  # Unlike manual scaling, if the load gets too heavy for the nodes
+                  # that are up, the service will automatically add nodes to handle the
+                  # increased load as well as scale back as traffic drops, always maintaining
+                  # at least `min_nodes`. You will be charged for the time in which additional
+                  # nodes are used.
+                  #
+                  # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+                  # to a model stops (and after a cool-down period), nodes will be shut down
+                  # and no charges will be incurred until traffic to the model resumes.
+            },
             "createTime": "A String", # Output only. The time the version was created.
             "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
                 # requests that do not specify a version.
                 #
                 # You can change the default version by calling
                 # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-            "description": "A String", # Optional. The description specified for the version when it was created.
+            "name": "A String", # Required.The name specified for the version when it was created.
+                #
+                # The version name must be unique within the model it is created in.
           },
           "name": "A String", # Required. The name specified for the model when it was created.
               #
diff --git a/docs/dyn/ml_v1beta1.projects.models.versions.html b/docs/dyn/ml_v1beta1.projects.models.versions.html
index 9356a13..2be6bc5 100644
--- a/docs/dyn/ml_v1beta1.projects.models.versions.html
+++ b/docs/dyn/ml_v1beta1.projects.models.versions.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a model version.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets basic information about all the versions of a model.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -117,40 +117,65 @@
     # prediction requests. A model can have multiple versions. You can get
     # information about all of the versions of a given model by calling
     # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-  "name": "A String", # Required.The name specified for the version when it was created.
-      # 
-      # The version name must be unique within the model it is created in.
+  "description": "A String", # Optional. The description specified for the version when it was created.
   "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
       # If not set, Google Cloud ML will choose a version.
-  "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-      # model. If unset (i.e., by default), the number of nodes used to serve
-      # the model automatically scales with traffic. However, care should be
-      # taken to ramp up traffic according to the model's ability to scale. If
-      # your model needs to handle bursts of traffic beyond it's ability to
-      # scale, it is recommended you set this field appropriately.
+  "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+      # model. You should generally use `automatic_scaling` with an appropriate
+      # `min_nodes` instead, but this option is available if you want predictable
+      # billing. Beware that latency and error rates will increase if the
+      # traffic exceeds that capability of the system to serve it based on
+      # the selected number of nodes.
     "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
         # starting from the time the model is deployed, so the cost of operating
-        # this model will be proportional to nodes * number of hours since
-        # deployment.
+        # this model will be proportional to `nodes` * number of hours since
+        # last billing cycle.
   },
-  "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
   "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
       # create the version. See the
-      # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-      # more informaiton.
+      # [overview of model
+      # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+      # informaiton.
       # 
       # When passing Version to
       # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
       # the model service uses the specified location as the source of the model.
       # Once deployed, the model version is hosted by the prediction service, so
       # this location is useful only as a historical record.
+      # The total number of model files can't exceed 1000.
+  "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+  "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+      # response to increases and decreases in traffic. Care should be
+      # taken to ramp up traffic according to the model's ability to scale
+      # or you will start seeing increases in latency and 429 response codes.
+    "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+        # nodes are always up, starting from the time the model is deployed, so the
+        # cost of operating this model will be at least
+        # `rate` * `min_nodes` * number of hours since last billing cycle,
+        # where `rate` is the cost per node-hour as documented in
+        # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+        # even if no predictions are performed. There is additional cost for each
+        # prediction performed.
+        #
+        # Unlike manual scaling, if the load gets too heavy for the nodes
+        # that are up, the service will automatically add nodes to handle the
+        # increased load as well as scale back as traffic drops, always maintaining
+        # at least `min_nodes`. You will be charged for the time in which additional
+        # nodes are used.
+        #
+        # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+        # to a model stops (and after a cool-down period), nodes will be shut down
+        # and no charges will be incurred until traffic to the model resumes.
+  },
   "createTime": "A String", # Output only. The time the version was created.
   "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
       # requests that do not specify a version.
       # 
       # You can change the default version by calling
       # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-  "description": "A String", # Optional. The description specified for the version when it was created.
+  "name": "A String", # Required.The name specified for the version when it was created.
+      # 
+      # The version name must be unique within the model it is created in.
 }
 
   x__xgafv: string, V1 error format.
@@ -169,22 +194,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -202,7 +211,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -225,7 +234,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -248,6 +257,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -283,22 +308,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -316,7 +325,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -339,7 +348,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -362,6 +371,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -392,45 +417,70 @@
       # prediction requests. A model can have multiple versions. You can get
       # information about all of the versions of a given model by calling
       # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-    "name": "A String", # Required.The name specified for the version when it was created.
-        #
-        # The version name must be unique within the model it is created in.
+    "description": "A String", # Optional. The description specified for the version when it was created.
     "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
         # If not set, Google Cloud ML will choose a version.
-    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-        # model. If unset (i.e., by default), the number of nodes used to serve
-        # the model automatically scales with traffic. However, care should be
-        # taken to ramp up traffic according to the model's ability to scale. If
-        # your model needs to handle bursts of traffic beyond it's ability to
-        # scale, it is recommended you set this field appropriately.
+    "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+        # model. You should generally use `automatic_scaling` with an appropriate
+        # `min_nodes` instead, but this option is available if you want predictable
+        # billing. Beware that latency and error rates will increase if the
+        # traffic exceeds that capability of the system to serve it based on
+        # the selected number of nodes.
       "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
           # starting from the time the model is deployed, so the cost of operating
-          # this model will be proportional to nodes * number of hours since
-          # deployment.
+          # this model will be proportional to `nodes` * number of hours since
+          # last billing cycle.
     },
-    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
     "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
         # create the version. See the
-        # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-        # more informaiton.
+        # [overview of model
+        # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+        # informaiton.
         #
         # When passing Version to
         # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
         # the model service uses the specified location as the source of the model.
         # Once deployed, the model version is hosted by the prediction service, so
         # this location is useful only as a historical record.
+        # The total number of model files can't exceed 1000.
+    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+    "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+        # response to increases and decreases in traffic. Care should be
+        # taken to ramp up traffic according to the model's ability to scale
+        # or you will start seeing increases in latency and 429 response codes.
+      "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+          # nodes are always up, starting from the time the model is deployed, so the
+          # cost of operating this model will be at least
+          # `rate` * `min_nodes` * number of hours since last billing cycle,
+          # where `rate` is the cost per node-hour as documented in
+          # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+          # even if no predictions are performed. There is additional cost for each
+          # prediction performed.
+          #
+          # Unlike manual scaling, if the load gets too heavy for the nodes
+          # that are up, the service will automatically add nodes to handle the
+          # increased load as well as scale back as traffic drops, always maintaining
+          # at least `min_nodes`. You will be charged for the time in which additional
+          # nodes are used.
+          #
+          # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+          # to a model stops (and after a cool-down period), nodes will be shut down
+          # and no charges will be incurred until traffic to the model resumes.
+    },
     "createTime": "A String", # Output only. The time the version was created.
     "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
         # requests that do not specify a version.
         #
         # You can change the default version by calling
         # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-    "description": "A String", # Optional. The description specified for the version when it was created.
+    "name": "A String", # Required.The name specified for the version when it was created.
+        #
+        # The version name must be unique within the model it is created in.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Gets basic information about all the versions of a model.
 
 If you expect that a model has a lot of versions, or if you need to handle
@@ -441,6 +491,11 @@
   parent: string, Required. The name of the model for which to list the version.
 
 Authorization: requires `Viewer` role on the parent project. (required)
+  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
+there are more remaining results than this number, the response message
+will contain a valid value in the `next_page_token` field.
+
+The default value is 20, and the maximum page size is 100.
   pageToken: string, Optional. A page token to request the next page of results.
 
 You get the token from the `next_page_token` field of the response from
@@ -449,11 +504,6 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Optional. The number of versions to retrieve per "page" of results. If
-there are more remaining results than this number, the response message
-will contain a valid value in the `next_page_token` field.
-
-The default value is 20, and the maximum page size is 100.
 
 Returns:
   An object of the form:
@@ -468,40 +518,65 @@
           # prediction requests. A model can have multiple versions. You can get
           # information about all of the versions of a given model by calling
           # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-        "name": "A String", # Required.The name specified for the version when it was created.
-            #
-            # The version name must be unique within the model it is created in.
+        "description": "A String", # Optional. The description specified for the version when it was created.
         "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
             # If not set, Google Cloud ML will choose a version.
-        "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-            # model. If unset (i.e., by default), the number of nodes used to serve
-            # the model automatically scales with traffic. However, care should be
-            # taken to ramp up traffic according to the model's ability to scale. If
-            # your model needs to handle bursts of traffic beyond it's ability to
-            # scale, it is recommended you set this field appropriately.
+        "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+            # model. You should generally use `automatic_scaling` with an appropriate
+            # `min_nodes` instead, but this option is available if you want predictable
+            # billing. Beware that latency and error rates will increase if the
+            # traffic exceeds that capability of the system to serve it based on
+            # the selected number of nodes.
           "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
               # starting from the time the model is deployed, so the cost of operating
-              # this model will be proportional to nodes * number of hours since
-              # deployment.
+              # this model will be proportional to `nodes` * number of hours since
+              # last billing cycle.
         },
-        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
         "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
             # create the version. See the
-            # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-            # more informaiton.
+            # [overview of model
+            # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+            # informaiton.
             #
             # When passing Version to
             # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
             # the model service uses the specified location as the source of the model.
             # Once deployed, the model version is hosted by the prediction service, so
             # this location is useful only as a historical record.
+            # The total number of model files can't exceed 1000.
+        "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+        "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+            # response to increases and decreases in traffic. Care should be
+            # taken to ramp up traffic according to the model's ability to scale
+            # or you will start seeing increases in latency and 429 response codes.
+          "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+              # nodes are always up, starting from the time the model is deployed, so the
+              # cost of operating this model will be at least
+              # `rate` * `min_nodes` * number of hours since last billing cycle,
+              # where `rate` is the cost per node-hour as documented in
+              # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+              # even if no predictions are performed. There is additional cost for each
+              # prediction performed.
+              #
+              # Unlike manual scaling, if the load gets too heavy for the nodes
+              # that are up, the service will automatically add nodes to handle the
+              # increased load as well as scale back as traffic drops, always maintaining
+              # at least `min_nodes`. You will be charged for the time in which additional
+              # nodes are used.
+              #
+              # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+              # to a model stops (and after a cool-down period), nodes will be shut down
+              # and no charges will be incurred until traffic to the model resumes.
+        },
         "createTime": "A String", # Output only. The time the version was created.
         "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
             # requests that do not specify a version.
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "name": "A String", # Required.The name specified for the version when it was created.
+            #
+            # The version name must be unique within the model it is created in.
       },
     ],
   }</pre>
@@ -558,40 +633,65 @@
       # prediction requests. A model can have multiple versions. You can get
       # information about all of the versions of a given model by calling
       # [projects.models.versions.list](/ml-engine/reference/rest/v1beta1/projects.models.versions/list).
-    "name": "A String", # Required.The name specified for the version when it was created.
-        #
-        # The version name must be unique within the model it is created in.
+    "description": "A String", # Optional. The description specified for the version when it was created.
     "runtimeVersion": "A String", # Optional. The Google Cloud ML runtime version to use for this deployment.
         # If not set, Google Cloud ML will choose a version.
-    "manualScaling": { # Options for manually scaling a model. # Optional. Manually select the number of nodes to use for serving the
-        # model. If unset (i.e., by default), the number of nodes used to serve
-        # the model automatically scales with traffic. However, care should be
-        # taken to ramp up traffic according to the model's ability to scale. If
-        # your model needs to handle bursts of traffic beyond it's ability to
-        # scale, it is recommended you set this field appropriately.
+    "manualScaling": { # Options for manually scaling a model. # Manually select the number of nodes to use for serving the
+        # model. You should generally use `automatic_scaling` with an appropriate
+        # `min_nodes` instead, but this option is available if you want predictable
+        # billing. Beware that latency and error rates will increase if the
+        # traffic exceeds that capability of the system to serve it based on
+        # the selected number of nodes.
       "nodes": 42, # The number of nodes to allocate for this model. These nodes are always up,
           # starting from the time the model is deployed, so the cost of operating
-          # this model will be proportional to nodes * number of hours since
-          # deployment.
+          # this model will be proportional to `nodes` * number of hours since
+          # last billing cycle.
     },
-    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
     "deploymentUri": "A String", # Required. The Google Cloud Storage location of the trained model used to
         # create the version. See the
-        # [overview of model deployment](/ml-engine/docs/concepts/deployment-overview) for
-        # more informaiton.
+        # [overview of model
+        # deployment](/ml-engine/docs/concepts/deployment-overview) for more
+        # informaiton.
         #
         # When passing Version to
         # [projects.models.versions.create](/ml-engine/reference/rest/v1beta1/projects.models.versions/create)
         # the model service uses the specified location as the source of the model.
         # Once deployed, the model version is hosted by the prediction service, so
         # this location is useful only as a historical record.
+        # The total number of model files can't exceed 1000.
+    "lastUseTime": "A String", # Output only. The time the version was last used for prediction.
+    "automaticScaling": { # Options for automatically scaling a model. # Automatically scale the number of nodes used to serve the model in
+        # response to increases and decreases in traffic. Care should be
+        # taken to ramp up traffic according to the model's ability to scale
+        # or you will start seeing increases in latency and 429 response codes.
+      "minNodes": 42, # Optional. The minimum number of nodes to allocate for this model. These
+          # nodes are always up, starting from the time the model is deployed, so the
+          # cost of operating this model will be at least
+          # `rate` * `min_nodes` * number of hours since last billing cycle,
+          # where `rate` is the cost per node-hour as documented in
+          # [pricing](https://cloud.google.com/ml-engine/pricing#prediction_pricing),
+          # even if no predictions are performed. There is additional cost for each
+          # prediction performed.
+          #
+          # Unlike manual scaling, if the load gets too heavy for the nodes
+          # that are up, the service will automatically add nodes to handle the
+          # increased load as well as scale back as traffic drops, always maintaining
+          # at least `min_nodes`. You will be charged for the time in which additional
+          # nodes are used.
+          #
+          # If not specified, `min_nodes` defaults to 0, in which case, when traffic
+          # to a model stops (and after a cool-down period), nodes will be shut down
+          # and no charges will be incurred until traffic to the model resumes.
+    },
     "createTime": "A String", # Output only. The time the version was created.
     "isDefault": True or False, # Output only. If true, this version will be used to handle prediction
         # requests that do not specify a version.
         #
         # You can change the default version by calling
         # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/projects.models.versions/setDefault).
-    "description": "A String", # Optional. The description specified for the version when it was created.
+    "name": "A String", # Required.The name specified for the version when it was created.
+        #
+        # The version name must be unique within the model it is created in.
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1beta1.projects.operations.html b/docs/dyn/ml_v1beta1.projects.operations.html
index 8631e9a..fa75c1c 100644
--- a/docs/dyn/ml_v1beta1.projects.operations.html
+++ b/docs/dyn/ml_v1beta1.projects.operations.html
@@ -178,22 +178,6 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -211,7 +195,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -234,7 +218,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -257,6 +241,22 @@
         },
       ],
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -265,11 +265,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -282,6 +287,7 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
@@ -291,22 +297,6 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -324,7 +314,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -347,7 +337,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -370,9 +360,24 @@
             },
           ],
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html b/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
index 809836f..53ddc78 100644
--- a/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
+++ b/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
@@ -184,10 +184,10 @@
         # { "type": "gce_instance",
         #   "labels": { "instance_id": "12345678901234",
         #               "zone": "us-central1-a" }}
-      "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+      "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
         "a_key": "A String",
       },
-      "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+      "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
     },
     "collectdVersion": "A String", # The version of collectd that collected the data. Example: "5.3.0-192.el6".
   }
diff --git a/docs/dyn/monitoring_v3.projects.groups.members.html b/docs/dyn/monitoring_v3.projects.groups.members.html
index 7e0d274..7b5e5c3 100644
--- a/docs/dyn/monitoring_v3.projects.groups.members.html
+++ b/docs/dyn/monitoring_v3.projects.groups.members.html
@@ -103,17 +103,17 @@
   An object of the form:
 
     { # The ListGroupMembers response.
-    "nextPageToken": "A String", # If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
     "totalSize": 42, # The total number of elements matching this request.
+    "nextPageToken": "A String", # If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
     "members": [ # A set of monitored resources in the group.
       { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone":
           # { "type": "gce_instance",
           #   "labels": { "instance_id": "12345678901234",
           #               "zone": "us-central1-a" }}
-        "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+        "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
           "a_key": "A String",
         },
-        "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+        "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
       },
     ],
   }</pre>
diff --git a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
index b2020d1..f845331 100644
--- a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
+++ b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
@@ -108,8 +108,8 @@
       },
     ],
     "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
-    "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
     "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
+    "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
   }</pre>
 </div>
 
@@ -132,7 +132,7 @@
 Returns:
   An object of the form:
 
-    { # The ListMonitoredResourcDescriptors response.
+    { # The ListMonitoredResourceDescriptors response.
     "nextPageToken": "A String", # If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
     "resourceDescriptors": [ # The monitored resource descriptors that are available to this project and that match filter, if present.
       { # An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of "gce_instance" and specifies the use of the labels "instance_id" and "zone" to identify particular VM instances.Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API.
@@ -145,8 +145,8 @@
           },
         ],
         "displayName": "A String", # Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".
-        "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".
+        "description": "A String", # Optional. A detailed description of the monitored resource type that might be used in documentation.
       },
     ],
   }</pre>
diff --git a/docs/dyn/monitoring_v3.projects.timeSeries.html b/docs/dyn/monitoring_v3.projects.timeSeries.html
index 6d702c1..6bcdb75 100644
--- a/docs/dyn/monitoring_v3.projects.timeSeries.html
+++ b/docs/dyn/monitoring_v3.projects.timeSeries.html
@@ -148,14 +148,14 @@
             },
           },
         ],
-        "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # The associated resource. A fully-specified monitored resource used to identify the time series.
+        "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
             #               "zone": "us-central1-a" }}
-          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
             "a_key": "A String",
           },
-          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
         },
         "valueType": "A String", # The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series.When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.
       },
@@ -262,14 +262,14 @@
             },
           },
         ],
-        "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # The associated resource. A fully-specified monitored resource used to identify the time series.
+        "resource": { # An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone": # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
             #               "zone": "us-central1-a" }}
-          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".
+          "labels": { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id", "instance_id", and "zone".
             "a_key": "A String",
           },
-          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".
+          "type": "A String", # Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance.
         },
         "valueType": "A String", # The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series.When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field.
       },
diff --git a/docs/dyn/partners_v2.analytics.html b/docs/dyn/partners_v2.analytics.html
index 8b892b4..4eaf838 100644
--- a/docs/dyn/partners_v2.analytics.html
+++ b/docs/dyn/partners_v2.analytics.html
@@ -122,14 +122,11 @@
 
     { # Response message for
       # ListAnalytics.
-    "analyticsSummary": { # Analytics aggregated data for a `Company` for a given date range. # Aggregated information across the response's
-        # analytics.
-      "profileViewsCount": 42, # Aggregated number of profile views for the `Company` for given date range.
-      "searchViewsCount": 42, # Aggregated number of times users saw the `Company`
-          # in Google Partners Search results for given date range.
-      "contactsCount": 42, # Aggregated number of times users contacted the `Company`
-          # for given date range.
-    },
+    "nextPageToken": "A String", # A token to retrieve next page of results.
+        # Pass this value in the `ListAnalyticsRequest.page_token` field in the
+        # subsequent call to
+        # ListAnalytics to retrieve the
+        # next page of results.
     "analytics": [ # The list of analytics.
         # Sorted in ascending order of
         # Analytics.event_date.
@@ -176,9 +173,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -228,9 +222,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -293,9 +284,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -305,11 +293,6 @@
         },
       },
     ],
-    "nextPageToken": "A String", # A token to retrieve next page of results.
-        # Pass this value in the `ListAnalyticsRequest.page_token` field in the
-        # subsequent call to
-        # ListAnalytics to retrieve the
-        # next page of results.
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
         "serverTraceInfo": "A String", # Server-side debug stack trace.
@@ -317,6 +300,14 @@
         "serverInfo": "A String", # Info about the server that serviced this request.
       },
     },
+    "analyticsSummary": { # Analytics aggregated data for a `Company` for a given date range. # Aggregated information across the response's
+        # analytics.
+      "contactsCount": 42, # Aggregated number of times users contacted the `Company`
+          # for given date range.
+      "searchViewsCount": 42, # Aggregated number of times users saw the `Company`
+          # in Google Partners Search results for given date range.
+      "profileViewsCount": 42, # Aggregated number of profile views for the `Company` for given date range.
+    },
   }</pre>
 </div>
 
diff --git a/docs/dyn/partners_v2.clientMessages.html b/docs/dyn/partners_v2.clientMessages.html
index b9253ad..f849bcd 100644
--- a/docs/dyn/partners_v2.clientMessages.html
+++ b/docs/dyn/partners_v2.clientMessages.html
@@ -91,17 +91,8 @@
 { # Request message for
       # LogClientMessage.
     "requestMetadata": { # Common data that is in each API request. # Current request metadata.
-      "experimentIds": [ # Experiment IDs the current request belongs to.
-        "A String",
-      ],
-      "partnersSessionId": "A String", # Google Partners session ID.
       "locale": "A String", # Locale to use for the current request.
-      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
-          # request. These are only honored by whitelisted products.
-          # honored by whitelisted products.
-        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
-        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
-      },
+      "partnersSessionId": "A String", # Google Partners session ID.
       "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
         "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
             # An identifier has multiple letters created by a team which redirected the
@@ -110,6 +101,15 @@
             # An identifier has multiple letters created by a team which redirected the
             # traffic to us.
       },
+      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
+          # request. These are only honored by whitelisted products.
+          # honored by whitelisted products.
+        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
+        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
+      },
+      "experimentIds": [ # Experiment IDs the current request belongs to.
+        "A String",
+      ],
     },
     "clientInfo": { # Map of client info, such as URL, browser navigator, browser platform, etc.
       "a_key": "A String",
diff --git a/docs/dyn/partners_v2.companies.html b/docs/dyn/partners_v2.companies.html
index ec7d194..9a1cbfb 100644
--- a/docs/dyn/partners_v2.companies.html
+++ b/docs/dyn/partners_v2.companies.html
@@ -128,7 +128,7 @@
     { # Response message for GetCompany.
     "company": { # A company resource in the Google Partners API. Once certified, it qualifies # The company.
         # for being searched by advertisers.
-      "industries": [ # Industries the company can help with.
+      "companyTypes": [ # Company type labels listed on the company's profile.
         "A String",
       ],
       "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
@@ -143,31 +143,24 @@
             # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
-      "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
-        "url": "A String", # The URL of the public profile.
-        "profileImage": "A String", # The URL to the main profile image of the public profile.
-        "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
-        "displayName": "A String", # The display name of the public profile.
-        "id": "A String", # The ID which can be used to retrieve more details about the public profile.
-      },
-      "name": "A String", # The name of the company.
-      "badgeTier": "A String", # Partner badge tier
-      "localizedInfos": [ # The list of localized info for the company.
-        { # The localized company information.
-          "countryCodes": [ # List of country codes for the localized company info.
-            "A String",
-          ],
-          "languageCode": "A String", # Language code of the localized company info, as defined by
-              # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
-              # (IETF BCP 47, "Tags for Identifying Languages").
-          "displayName": "A String", # Localized display name.
-          "overview": "A String", # Localized brief description that the company uses to advertise themselves.
-        },
-      ],
       "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
           # auto-approved for associating with this company.
         "A String",
       ],
+      "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+        { # Agency specialization status
+          "badgeSpecialization": "A String", # The specialization this status is for.
+          "badgeSpecializationState": "A String", # State of agency specialization.
+        },
+      ],
+      "ranks": [ # Information related to the ranking of the company within the list of
+          # companies.
+        { # Information related to ranking of results.
+          "type": "A String", # The type of rank.
+          "value": 3.14, # The numerical value of the rank.
+        },
+      ],
+      "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
       "locations": [ # The list of all company locations.
           # If set, must include the
           # primary_location
@@ -179,7 +172,8 @@
               # address.
             "A String",
           ],
-          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
           "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
               # classification code for sorting mail.
           "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -221,21 +215,30 @@
               #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
               #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
               #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-              #
-              # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-              # as if it were annotated as ST_LOCATION.
             "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
             "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
           },
-          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-              # neighborhoods or boroughs in other locations.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
           "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
           "administrativeArea": "A String", # Top-level administrative subdivision of this country.
           "address": "A String", # The single string version of the address.
           "postalCode": "A String", # Values are frequently alphanumeric.
         },
       ],
-      "websiteUrl": "A String", # URL of the company's website.
+      "id": "A String", # The ID of the company.
+      "badgeTier": "A String", # Partner badge tier
+      "services": [ # Services the company can help with.
+        "A String",
+      ],
+      "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+          # These are stored as full URLs as entered by the user, but only the TLD will
+          # be used for the actual verification.
+        "A String",
+      ],
+      "profileStatus": "A String", # The public viewability status of the company's profile.
+      "industries": [ # Industries the company can help with.
+        "A String",
+      ],
       "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
           # detailed (multi-field) version of the address.
         "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
@@ -243,7 +246,8 @@
             # address.
           "A String",
         ],
-        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
         "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
             # classification code for sorting mail.
         "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -285,36 +289,16 @@
             #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
             #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
             #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-            #
-            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-            # as if it were annotated as ST_LOCATION.
           "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
           "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
         },
-        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-            # neighborhoods or boroughs in other locations.
+        "locality": "A String", # Generally refers to the city/town portion of an address.
         "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
         "administrativeArea": "A String", # Top-level administrative subdivision of this country.
         "address": "A String", # The single string version of the address.
         "postalCode": "A String", # Values are frequently alphanumeric.
       },
-      "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
-          # These are stored as full URLs as entered by the user, but only the TLD will
-          # be used for the actual verification.
-        "A String",
-      ],
-      "profileStatus": "A String", # The public viewability status of the company's profile.
-      "ranks": [ # Information related to the ranking of the company within the list of
-          # companies.
-        { # Information related to ranking of results.
-          "type": "A String", # The type of rank.
-          "value": 3.14, # The numerical value of the rank.
-        },
-      ],
-      "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
-      "services": [ # Services the company can help with.
-        "A String",
-      ],
+      "websiteUrl": "A String", # URL of the company's website.
       "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
         { # Google Partners certification status.
           "isCertified": True or False, # Whether certification is passing.
@@ -328,8 +312,24 @@
           ],
         },
       ],
-      "companyTypes": [ # Company type labels listed on the company's profile.
-        "A String",
+      "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+        "url": "A String", # The URL of the public profile.
+        "profileImage": "A String", # The URL to the main profile image of the public profile.
+        "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+        "displayName": "A String", # The display name of the public profile.
+        "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+      },
+      "localizedInfos": [ # The list of localized info for the company.
+        { # The localized company information.
+          "countryCodes": [ # List of country codes for the localized company info.
+            "A String",
+          ],
+          "languageCode": "A String", # Language code of the localized company info, as defined by
+              # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+              # (IETF BCP 47, "Tags for Identifying Languages").
+          "displayName": "A String", # Localized display name.
+          "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+        },
       ],
       "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
           # converted to the requested currency code.
@@ -343,16 +343,10 @@
             # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
-      "id": "A String", # The ID of the company.
       "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
           # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
           # (IETF BCP 47, "Tags for Identifying Languages").
-      "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
-        { # Agency specialization status
-          "badgeSpecialization": "A String", # The specialization this status is for.
-          "badgeSpecializationState": "A String", # State of agency specialization.
-        },
-      ],
+      "name": "A String", # The name of the company.
     },
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
@@ -445,7 +439,7 @@
     "companies": [ # The list of companies.
       { # A company resource in the Google Partners API. Once certified, it qualifies
           # for being searched by advertisers.
-        "industries": [ # Industries the company can help with.
+        "companyTypes": [ # Company type labels listed on the company's profile.
           "A String",
         ],
         "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
@@ -460,31 +454,24 @@
               # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
           "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
         },
-        "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
-          "url": "A String", # The URL of the public profile.
-          "profileImage": "A String", # The URL to the main profile image of the public profile.
-          "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
-          "displayName": "A String", # The display name of the public profile.
-          "id": "A String", # The ID which can be used to retrieve more details about the public profile.
-        },
-        "name": "A String", # The name of the company.
-        "badgeTier": "A String", # Partner badge tier
-        "localizedInfos": [ # The list of localized info for the company.
-          { # The localized company information.
-            "countryCodes": [ # List of country codes for the localized company info.
-              "A String",
-            ],
-            "languageCode": "A String", # Language code of the localized company info, as defined by
-                # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
-                # (IETF BCP 47, "Tags for Identifying Languages").
-            "displayName": "A String", # Localized display name.
-            "overview": "A String", # Localized brief description that the company uses to advertise themselves.
-          },
-        ],
         "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
             # auto-approved for associating with this company.
           "A String",
         ],
+        "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+          { # Agency specialization status
+            "badgeSpecialization": "A String", # The specialization this status is for.
+            "badgeSpecializationState": "A String", # State of agency specialization.
+          },
+        ],
+        "ranks": [ # Information related to the ranking of the company within the list of
+            # companies.
+          { # Information related to ranking of results.
+            "type": "A String", # The type of rank.
+            "value": 3.14, # The numerical value of the rank.
+          },
+        ],
+        "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
         "locations": [ # The list of all company locations.
             # If set, must include the
             # primary_location
@@ -496,7 +483,8 @@
                 # address.
               "A String",
             ],
-            "locality": "A String", # Generally refers to the city/town portion of an address.
+            "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+                # neighborhoods or boroughs in other locations.
             "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
                 # classification code for sorting mail.
             "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -538,21 +526,30 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
-            "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-                # neighborhoods or boroughs in other locations.
+            "locality": "A String", # Generally refers to the city/town portion of an address.
             "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
             "administrativeArea": "A String", # Top-level administrative subdivision of this country.
             "address": "A String", # The single string version of the address.
             "postalCode": "A String", # Values are frequently alphanumeric.
           },
         ],
-        "websiteUrl": "A String", # URL of the company's website.
+        "id": "A String", # The ID of the company.
+        "badgeTier": "A String", # Partner badge tier
+        "services": [ # Services the company can help with.
+          "A String",
+        ],
+        "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+            # These are stored as full URLs as entered by the user, but only the TLD will
+            # be used for the actual verification.
+          "A String",
+        ],
+        "profileStatus": "A String", # The public viewability status of the company's profile.
+        "industries": [ # Industries the company can help with.
+          "A String",
+        ],
         "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
             # detailed (multi-field) version of the address.
           "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
@@ -560,7 +557,8 @@
               # address.
             "A String",
           ],
-          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
           "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
               # classification code for sorting mail.
           "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -602,36 +600,16 @@
               #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
               #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
               #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-              #
-              # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-              # as if it were annotated as ST_LOCATION.
             "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
             "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
           },
-          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-              # neighborhoods or boroughs in other locations.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
           "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
           "administrativeArea": "A String", # Top-level administrative subdivision of this country.
           "address": "A String", # The single string version of the address.
           "postalCode": "A String", # Values are frequently alphanumeric.
         },
-        "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
-            # These are stored as full URLs as entered by the user, but only the TLD will
-            # be used for the actual verification.
-          "A String",
-        ],
-        "profileStatus": "A String", # The public viewability status of the company's profile.
-        "ranks": [ # Information related to the ranking of the company within the list of
-            # companies.
-          { # Information related to ranking of results.
-            "type": "A String", # The type of rank.
-            "value": 3.14, # The numerical value of the rank.
-          },
-        ],
-        "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
-        "services": [ # Services the company can help with.
-          "A String",
-        ],
+        "websiteUrl": "A String", # URL of the company's website.
         "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
           { # Google Partners certification status.
             "isCertified": True or False, # Whether certification is passing.
@@ -645,8 +623,24 @@
             ],
           },
         ],
-        "companyTypes": [ # Company type labels listed on the company's profile.
-          "A String",
+        "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+          "url": "A String", # The URL of the public profile.
+          "profileImage": "A String", # The URL to the main profile image of the public profile.
+          "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+          "displayName": "A String", # The display name of the public profile.
+          "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+        },
+        "localizedInfos": [ # The list of localized info for the company.
+          { # The localized company information.
+            "countryCodes": [ # List of country codes for the localized company info.
+              "A String",
+            ],
+            "languageCode": "A String", # Language code of the localized company info, as defined by
+                # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+                # (IETF BCP 47, "Tags for Identifying Languages").
+            "displayName": "A String", # Localized display name.
+            "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+          },
         ],
         "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
             # converted to the requested currency code.
@@ -660,16 +654,10 @@
               # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
           "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
         },
-        "id": "A String", # The ID of the company.
         "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
             # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
             # (IETF BCP 47, "Tags for Identifying Languages").
-        "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
-          { # Agency specialization status
-            "badgeSpecialization": "A String", # The specialization this status is for.
-            "badgeSpecializationState": "A String", # State of agency specialization.
-          },
-        ],
+        "name": "A String", # The name of the company.
       },
     ],
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
diff --git a/docs/dyn/partners_v2.companies.leads.html b/docs/dyn/partners_v2.companies.leads.html
index f41ccd9..16800cb 100644
--- a/docs/dyn/partners_v2.companies.leads.html
+++ b/docs/dyn/partners_v2.companies.leads.html
@@ -89,17 +89,8 @@
 
 { # Request message for CreateLead.
     "requestMetadata": { # Common data that is in each API request. # Current request metadata.
-      "experimentIds": [ # Experiment IDs the current request belongs to.
-        "A String",
-      ],
-      "partnersSessionId": "A String", # Google Partners session ID.
       "locale": "A String", # Locale to use for the current request.
-      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
-          # request. These are only honored by whitelisted products.
-          # honored by whitelisted products.
-        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
-        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
-      },
+      "partnersSessionId": "A String", # Google Partners session ID.
       "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
         "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
             # An identifier has multiple letters created by a team which redirected the
@@ -108,6 +99,15 @@
             # An identifier has multiple letters created by a team which redirected the
             # traffic to us.
       },
+      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
+          # request. These are only honored by whitelisted products.
+          # honored by whitelisted products.
+        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
+        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
+      },
+      "experimentIds": [ # Experiment IDs the current request belongs to.
+        "A String",
+      ],
     },
     "recaptchaChallenge": { # <a href="https://www.google.com/recaptcha/">reCaptcha</a> challenge info. # <a href="https://www.google.com/recaptcha/">reCaptcha</a> challenge info.
       "id": "A String", # The ID of the reCaptcha challenge.
@@ -134,17 +134,17 @@
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "comments": "A String", # Comments lead source gave.
-      "email": "A String", # Email address of lead source.
+      "createTime": "A String", # Timestamp of when this lead was created.
       "websiteUrl": "A String", # Website URL of lead source.
+      "email": "A String", # Email address of lead source.
       "state": "A String", # The lead's state in relation to the company.
       "phoneNumber": "A String", # Phone number of lead source.
       "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
         "A String",
       ],
-      "id": "A String", # ID of the lead.
       "givenName": "A String", # First name of lead source.
       "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
-      "createTime": "A String", # Timestamp of when this lead was created.
+      "id": "A String", # ID of the lead.
     },
   }
 
@@ -180,17 +180,17 @@
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "comments": "A String", # Comments lead source gave.
-      "email": "A String", # Email address of lead source.
+      "createTime": "A String", # Timestamp of when this lead was created.
       "websiteUrl": "A String", # Website URL of lead source.
+      "email": "A String", # Email address of lead source.
       "state": "A String", # The lead's state in relation to the company.
       "phoneNumber": "A String", # Phone number of lead source.
       "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
         "A String",
       ],
-      "id": "A String", # ID of the lead.
       "givenName": "A String", # First name of lead source.
       "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
-      "createTime": "A String", # Timestamp of when this lead was created.
+      "id": "A String", # ID of the lead.
     },
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
       "debugInfo": { # Debug information about this request. # Debug information about this request.
diff --git a/docs/dyn/partners_v2.leads.html b/docs/dyn/partners_v2.leads.html
index 99895ef..2a4bdc2 100644
--- a/docs/dyn/partners_v2.leads.html
+++ b/docs/dyn/partners_v2.leads.html
@@ -142,17 +142,17 @@
           "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
         },
         "comments": "A String", # Comments lead source gave.
-        "email": "A String", # Email address of lead source.
+        "createTime": "A String", # Timestamp of when this lead was created.
         "websiteUrl": "A String", # Website URL of lead source.
+        "email": "A String", # Email address of lead source.
         "state": "A String", # The lead's state in relation to the company.
         "phoneNumber": "A String", # Phone number of lead source.
         "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
           "A String",
         ],
-        "id": "A String", # ID of the lead.
         "givenName": "A String", # First name of lead source.
         "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
-        "createTime": "A String", # Timestamp of when this lead was created.
+        "id": "A String", # ID of the lead.
       },
     ],
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
diff --git a/docs/dyn/partners_v2.offers.history.html b/docs/dyn/partners_v2.offers.history.html
index 8156553..1d18f6e 100644
--- a/docs/dyn/partners_v2.offers.history.html
+++ b/docs/dyn/partners_v2.offers.history.html
@@ -123,6 +123,7 @@
       },
     },
     "canShowEntireCompany": True or False, # True if the user has the option to show entire company history.
+    "showingEntireCompany": True or False, # True if this response is showing entire company history.
     "offers": [ # Historical offers meeting request.
       { # Historical information about a Google Partners Offer.
         "offerCode": "A String", # Offer code.
@@ -139,7 +140,6 @@
         "clientName": "A String", # Name of the client.
       },
     ],
-    "showingEntireCompany": True or False, # True if this response is showing entire company history.
     "totalResults": 42, # Number of results across all pages.
   }</pre>
 </div>
diff --git a/docs/dyn/partners_v2.userEvents.html b/docs/dyn/partners_v2.userEvents.html
index 2708ae9..0f2ff99 100644
--- a/docs/dyn/partners_v2.userEvents.html
+++ b/docs/dyn/partners_v2.userEvents.html
@@ -108,17 +108,17 @@
         "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
       },
       "comments": "A String", # Comments lead source gave.
-      "email": "A String", # Email address of lead source.
+      "createTime": "A String", # Timestamp of when this lead was created.
       "websiteUrl": "A String", # Website URL of lead source.
+      "email": "A String", # Email address of lead source.
       "state": "A String", # The lead's state in relation to the company.
       "phoneNumber": "A String", # Phone number of lead source.
       "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
         "A String",
       ],
-      "id": "A String", # ID of the lead.
       "givenName": "A String", # First name of lead source.
       "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
-      "createTime": "A String", # Timestamp of when this lead was created.
+      "id": "A String", # ID of the lead.
     },
     "url": "A String", # The URL where the event occurred.
     "eventDatas": [ # List of event data for the event.
@@ -132,17 +132,8 @@
     "eventCategory": "A String", # The category the action belongs to.
     "eventAction": "A String", # The action that occurred.
     "requestMetadata": { # Common data that is in each API request. # Current request metadata.
-      "experimentIds": [ # Experiment IDs the current request belongs to.
-        "A String",
-      ],
-      "partnersSessionId": "A String", # Google Partners session ID.
       "locale": "A String", # Locale to use for the current request.
-      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
-          # request. These are only honored by whitelisted products.
-          # honored by whitelisted products.
-        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
-        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
-      },
+      "partnersSessionId": "A String", # Google Partners session ID.
       "trafficSource": { # Source of traffic for the current request. # Source of traffic for the current request.
         "trafficSubId": "A String", # Second level identifier to indicate where the traffic comes from.
             # An identifier has multiple letters created by a team which redirected the
@@ -151,6 +142,15 @@
             # An identifier has multiple letters created by a team which redirected the
             # traffic to us.
       },
+      "userOverrides": { # Values to use instead of the user's respective defaults. These are only # Values to use instead of the user's respective defaults for the current
+          # request. These are only honored by whitelisted products.
+          # honored by whitelisted products.
+        "userId": "A String", # Logged-in user ID to impersonate instead of the user's ID.
+        "ipAddress": "A String", # IP address to use instead of the user's geo-located IP address.
+      },
+      "experimentIds": [ # Experiment IDs the current request belongs to.
+        "A String",
+      ],
     },
     "eventScope": "A String", # The scope of the event.
   }
diff --git a/docs/dyn/partners_v2.users.html b/docs/dyn/partners_v2.users.html
index cd7bb00..ef4428f 100644
--- a/docs/dyn/partners_v2.users.html
+++ b/docs/dyn/partners_v2.users.html
@@ -100,7 +100,7 @@
 { # A CompanyRelation resource representing information about a user's
       # affiliation and standing with a company in Partners.
     "website": "A String", # The website URL for this company.
-    "managerAccount": "A String", # The AdWords manager account # associated this company.
+    "primaryCountryCode": "A String", # The primary country code of the company.
     "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
       { # Agency specialization status
         "badgeSpecialization": "A String", # The specialization this status is for.
@@ -110,6 +110,65 @@
     "companyId": "A String", # The ID of the company. There may be no id if this is a
         # pending company.5
     "isPending": True or False, # The flag that indicates if the company is pending verification.
+    "primaryAddress": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+        # detailed (multi-field) version of the address.
+      "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+      "addressLine": [ # The following address lines represent the most specific part of any
+          # address.
+        "A String",
+      ],
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
+      "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+          # classification code for sorting mail.
+      "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+          # of doubles representing degrees latitude and degrees longitude. Unless
+          # specified otherwise, this must conform to the
+          # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+          # standard</a>. Values must be within normalized ranges.
+          #
+          # Example of normalization code in Python:
+          #
+          #     def NormalizeLongitude(longitude):
+          #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+          #       q, r = divmod(longitude, 360.0)
+          #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+          #         return r - 360.0
+          #       return r
+          #
+          #     def NormalizeLatLng(latitude, longitude):
+          #       """Wraps decimal degrees latitude and longitude to
+          #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+          #       r = latitude % 360.0
+          #       if r <= 90.0:
+          #         return r, NormalizeLongitude(longitude)
+          #       elif r >= 270.0:
+          #         return r - 360, NormalizeLongitude(longitude)
+          #       else:
+          #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+          #
+          #     assert 180.0 == NormalizeLongitude(180.0)
+          #     assert -180.0 == NormalizeLongitude(-180.0)
+          #     assert -179.0 == NormalizeLongitude(181.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+          #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+          #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+          #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+          #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+          #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+          #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+          #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+        "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+        "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+      },
+      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+      "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+      "address": "A String", # The single string version of the address.
+      "postalCode": "A String", # Values are frequently alphanumeric.
+    },
     "address": "A String", # The primary address for this company.
     "creationTime": "A String", # The timestamp of when affiliation was requested.
         # @OutputOnly
@@ -117,7 +176,9 @@
     "badgeTier": "A String", # Whether the company is a Partner.
     "state": "A String", # The state of relationship, in terms of approvals.
     "phoneNumber": "A String", # The phone number for the company's primary address.
+    "managerAccount": "A String", # The AdWords manager account # associated this company.
     "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+    "primaryLanguageCode": "A String", # The primary language code of the company.
     "resolvedTimestamp": "A String", # The timestamp when the user was approved.
         # @OutputOnly
     "segment": [ # The segment the company is classified as.
@@ -148,7 +209,7 @@
     { # A CompanyRelation resource representing information about a user's
         # affiliation and standing with a company in Partners.
       "website": "A String", # The website URL for this company.
-      "managerAccount": "A String", # The AdWords manager account # associated this company.
+      "primaryCountryCode": "A String", # The primary country code of the company.
       "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
         { # Agency specialization status
           "badgeSpecialization": "A String", # The specialization this status is for.
@@ -158,6 +219,65 @@
       "companyId": "A String", # The ID of the company. There may be no id if this is a
           # pending company.5
       "isPending": True or False, # The flag that indicates if the company is pending verification.
+      "primaryAddress": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+          # detailed (multi-field) version of the address.
+        "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+        "addressLine": [ # The following address lines represent the most specific part of any
+            # address.
+          "A String",
+        ],
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
+        "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+            # classification code for sorting mail.
+        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+            # of doubles representing degrees latitude and degrees longitude. Unless
+            # specified otherwise, this must conform to the
+            # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+            # standard</a>. Values must be within normalized ranges.
+            #
+            # Example of normalization code in Python:
+            #
+            #     def NormalizeLongitude(longitude):
+            #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+            #       q, r = divmod(longitude, 360.0)
+            #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+            #         return r - 360.0
+            #       return r
+            #
+            #     def NormalizeLatLng(latitude, longitude):
+            #       """Wraps decimal degrees latitude and longitude to
+            #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+            #       r = latitude % 360.0
+            #       if r <= 90.0:
+            #         return r, NormalizeLongitude(longitude)
+            #       elif r >= 270.0:
+            #         return r - 360, NormalizeLongitude(longitude)
+            #       else:
+            #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+            #
+            #     assert 180.0 == NormalizeLongitude(180.0)
+            #     assert -180.0 == NormalizeLongitude(-180.0)
+            #     assert -179.0 == NormalizeLongitude(181.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+            #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+            #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+            #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+            #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+            #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+            #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+            #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+          "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+          "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+        },
+        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+        "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+        "address": "A String", # The single string version of the address.
+        "postalCode": "A String", # Values are frequently alphanumeric.
+      },
       "address": "A String", # The primary address for this company.
       "creationTime": "A String", # The timestamp of when affiliation was requested.
           # @OutputOnly
@@ -165,7 +285,9 @@
       "badgeTier": "A String", # Whether the company is a Partner.
       "state": "A String", # The state of relationship, in terms of approvals.
       "phoneNumber": "A String", # The phone number for the company's primary address.
+      "managerAccount": "A String", # The AdWords manager account # associated this company.
       "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+      "primaryLanguageCode": "A String", # The primary language code of the company.
       "resolvedTimestamp": "A String", # The timestamp when the user was approved.
           # @OutputOnly
       "segment": [ # The segment the company is classified as.
@@ -241,8 +363,6 @@
   An object of the form:
 
     { # A resource representing a user of the Partners platform.
-    "companyVerificationEmail": "A String", # The email address used by the user used for company verification.
-        # @OutputOnly
     "profile": { # The profile information of a Partners user. # The profile information of a Partners user, contains all the directly
         # editable user information.
         "industries": [ # A list of ids representing which industries the user selected.
@@ -255,7 +375,7 @@
         "languages": [ # The list of languages this user understands.
           "A String",
         ],
-        "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+        "markets": [ # A list of ids representing which markets the user was interested in.
           "A String",
         ],
         "emailOptIns": { # A set of opt-ins for a user. # The list of opt-ins for the user, related to communication preferences.
@@ -279,7 +399,8 @@
               # address.
             "A String",
           ],
-          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
           "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
               # classification code for sorting mail.
           "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -321,14 +442,10 @@
               #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
               #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
               #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-              #
-              # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-              # as if it were annotated as ST_LOCATION.
             "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
             "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
           },
-          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-              # neighborhoods or boroughs in other locations.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
           "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
           "administrativeArea": "A String", # Top-level administrative subdivision of this country.
           "address": "A String", # The single string version of the address.
@@ -336,19 +453,21 @@
         },
         "phoneNumber": "A String", # The user's phone number.
         "givenName": "A String", # The user's given name.
-        "markets": [ # A list of ids representing which markets the user was interested in.
+        "jobFunctions": [ # A list of ids represnting which job categories the user selected.
           "A String",
         ],
         "profilePublic": True or False, # Whether the user's public profile is visible to anyone with the URL.
       },
+    "companyVerificationEmail": "A String", # The email address used by the user used for company verification.
+        # @OutputOnly
     "certificationStatus": [ # The list of achieved certifications. These are calculated based on exam
         # results and other requirements.
         # @OutputOnly
       { # A user's information on a specific certification.
-        "warning": True or False, # Whether this certification is in the state of warning.
-        "certificationType": "A String", # The type of certification, the area of expertise.
         "lastAchieved": "A String", # The date the user last achieved certification.
+        "warning": True or False, # Whether this certification is in the state of warning.
         "expiration": "A String", # Date this certification is due to expire.
+        "certificationType": "A String", # The type of certification, the area of expertise.
         "achieved": True or False, # Whether this certification has been achieved.
       },
     ],
@@ -359,15 +478,15 @@
         # @OutputOnly
       { # Information about a particular AdWords Manager Account.
           # Read more at https://support.google.com/adwords/answer/6139186
-        "customerName": "A String", # Name of the customer this account represents.
         "id": "A String", # The AdWords Manager Account id.
+        "customerName": "A String", # Name of the customer this account represents.
       },
     ],
     "company": { # A CompanyRelation resource representing information about a user's # The company that the user is associated with.
         # If not present, the user is not associated with any company.
           # affiliation and standing with a company in Partners.
         "website": "A String", # The website URL for this company.
-        "managerAccount": "A String", # The AdWords manager account # associated this company.
+        "primaryCountryCode": "A String", # The primary country code of the company.
         "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
           { # Agency specialization status
             "badgeSpecialization": "A String", # The specialization this status is for.
@@ -377,6 +496,65 @@
         "companyId": "A String", # The ID of the company. There may be no id if this is a
             # pending company.5
         "isPending": True or False, # The flag that indicates if the company is pending verification.
+        "primaryAddress": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
+            # detailed (multi-field) version of the address.
+          "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
+          "addressLine": [ # The following address lines represent the most specific part of any
+              # address.
+            "A String",
+          ],
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
+          "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
+              # classification code for sorting mail.
+          "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
+              # of doubles representing degrees latitude and degrees longitude. Unless
+              # specified otherwise, this must conform to the
+              # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
+              # standard</a>. Values must be within normalized ranges.
+              #
+              # Example of normalization code in Python:
+              #
+              #     def NormalizeLongitude(longitude):
+              #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+              #       q, r = divmod(longitude, 360.0)
+              #       if r > 180.0 or (r == 180.0 and q <= -1.0):
+              #         return r - 360.0
+              #       return r
+              #
+              #     def NormalizeLatLng(latitude, longitude):
+              #       """Wraps decimal degrees latitude and longitude to
+              #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+              #       r = latitude % 360.0
+              #       if r <= 90.0:
+              #         return r, NormalizeLongitude(longitude)
+              #       elif r >= 270.0:
+              #         return r - 360, NormalizeLongitude(longitude)
+              #       else:
+              #         return 180 - r, NormalizeLongitude(longitude + 180.0)
+              #
+              #     assert 180.0 == NormalizeLongitude(180.0)
+              #     assert -180.0 == NormalizeLongitude(-180.0)
+              #     assert -179.0 == NormalizeLongitude(181.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+              #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+              #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+              #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+              #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+              #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+              #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+              #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+            "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+            "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+          },
+          "locality": "A String", # Generally refers to the city/town portion of an address.
+          "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
+          "administrativeArea": "A String", # Top-level administrative subdivision of this country.
+          "address": "A String", # The single string version of the address.
+          "postalCode": "A String", # Values are frequently alphanumeric.
+        },
         "address": "A String", # The primary address for this company.
         "creationTime": "A String", # The timestamp of when affiliation was requested.
             # @OutputOnly
@@ -384,7 +562,9 @@
         "badgeTier": "A String", # Whether the company is a Partner.
         "state": "A String", # The state of relationship, in terms of approvals.
         "phoneNumber": "A String", # The phone number for the company's primary address.
+        "managerAccount": "A String", # The AdWords manager account # associated this company.
         "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+        "primaryLanguageCode": "A String", # The primary language code of the company.
         "resolvedTimestamp": "A String", # The timestamp when the user was approved.
             # @OutputOnly
         "segment": [ # The segment the company is classified as.
@@ -440,7 +620,7 @@
     "languages": [ # The list of languages this user understands.
       "A String",
     ],
-    "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+    "markets": [ # A list of ids representing which markets the user was interested in.
       "A String",
     ],
     "emailOptIns": { # A set of opt-ins for a user. # The list of opt-ins for the user, related to communication preferences.
@@ -464,7 +644,8 @@
           # address.
         "A String",
       ],
-      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
       "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
           # classification code for sorting mail.
       "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -506,14 +687,10 @@
           #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
           #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
           #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-          #
-          # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-          # as if it were annotated as ST_LOCATION.
         "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
         "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
       },
-      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-          # neighborhoods or boroughs in other locations.
+      "locality": "A String", # Generally refers to the city/town portion of an address.
       "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
       "administrativeArea": "A String", # Top-level administrative subdivision of this country.
       "address": "A String", # The single string version of the address.
@@ -521,7 +698,7 @@
     },
     "phoneNumber": "A String", # The user's phone number.
     "givenName": "A String", # The user's given name.
-    "markets": [ # A list of ids representing which markets the user was interested in.
+    "jobFunctions": [ # A list of ids represnting which job categories the user selected.
       "A String",
     ],
     "profilePublic": True or False, # Whether the user's public profile is visible to anyone with the URL.
@@ -557,7 +734,7 @@
       "languages": [ # The list of languages this user understands.
         "A String",
       ],
-      "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+      "markets": [ # A list of ids representing which markets the user was interested in.
         "A String",
       ],
       "emailOptIns": { # A set of opt-ins for a user. # The list of opt-ins for the user, related to communication preferences.
@@ -581,7 +758,8 @@
             # address.
           "A String",
         ],
-        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
         "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
             # classification code for sorting mail.
         "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -623,14 +801,10 @@
             #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
             #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
             #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-            #
-            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-            # as if it were annotated as ST_LOCATION.
           "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
           "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
         },
-        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-            # neighborhoods or boroughs in other locations.
+        "locality": "A String", # Generally refers to the city/town portion of an address.
         "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
         "administrativeArea": "A String", # Top-level administrative subdivision of this country.
         "address": "A String", # The single string version of the address.
@@ -638,7 +812,7 @@
       },
       "phoneNumber": "A String", # The user's phone number.
       "givenName": "A String", # The user's given name.
-      "markets": [ # A list of ids representing which markets the user was interested in.
+      "jobFunctions": [ # A list of ids represnting which job categories the user selected.
         "A String",
       ],
       "profilePublic": True or False, # Whether the user's public profile is visible to anyone with the URL.
diff --git a/docs/dyn/partners_v2.v2.html b/docs/dyn/partners_v2.v2.html
index 662f523..344f461 100644
--- a/docs/dyn/partners_v2.v2.html
+++ b/docs/dyn/partners_v2.v2.html
@@ -132,7 +132,7 @@
 
 { # A company resource in the Google Partners API. Once certified, it qualifies
     # for being searched by advertisers.
-  "industries": [ # Industries the company can help with.
+  "companyTypes": [ # Company type labels listed on the company's profile.
     "A String",
   ],
   "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
@@ -147,31 +147,24 @@
         # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
     "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
   },
-  "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
-    "url": "A String", # The URL of the public profile.
-    "profileImage": "A String", # The URL to the main profile image of the public profile.
-    "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
-    "displayName": "A String", # The display name of the public profile.
-    "id": "A String", # The ID which can be used to retrieve more details about the public profile.
-  },
-  "name": "A String", # The name of the company.
-  "badgeTier": "A String", # Partner badge tier
-  "localizedInfos": [ # The list of localized info for the company.
-    { # The localized company information.
-      "countryCodes": [ # List of country codes for the localized company info.
-        "A String",
-      ],
-      "languageCode": "A String", # Language code of the localized company info, as defined by
-          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
-          # (IETF BCP 47, "Tags for Identifying Languages").
-      "displayName": "A String", # Localized display name.
-      "overview": "A String", # Localized brief description that the company uses to advertise themselves.
-    },
-  ],
   "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
       # auto-approved for associating with this company.
     "A String",
   ],
+  "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+    { # Agency specialization status
+      "badgeSpecialization": "A String", # The specialization this status is for.
+      "badgeSpecializationState": "A String", # State of agency specialization.
+    },
+  ],
+  "ranks": [ # Information related to the ranking of the company within the list of
+      # companies.
+    { # Information related to ranking of results.
+      "type": "A String", # The type of rank.
+      "value": 3.14, # The numerical value of the rank.
+    },
+  ],
+  "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
   "locations": [ # The list of all company locations.
       # If set, must include the
       # primary_location
@@ -183,7 +176,8 @@
           # address.
         "A String",
       ],
-      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
       "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
           # classification code for sorting mail.
       "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -225,21 +219,30 @@
           #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
           #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
           #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-          #
-          # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-          # as if it were annotated as ST_LOCATION.
         "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
         "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
       },
-      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-          # neighborhoods or boroughs in other locations.
+      "locality": "A String", # Generally refers to the city/town portion of an address.
       "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
       "administrativeArea": "A String", # Top-level administrative subdivision of this country.
       "address": "A String", # The single string version of the address.
       "postalCode": "A String", # Values are frequently alphanumeric.
     },
   ],
-  "websiteUrl": "A String", # URL of the company's website.
+  "id": "A String", # The ID of the company.
+  "badgeTier": "A String", # Partner badge tier
+  "services": [ # Services the company can help with.
+    "A String",
+  ],
+  "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+      # These are stored as full URLs as entered by the user, but only the TLD will
+      # be used for the actual verification.
+    "A String",
+  ],
+  "profileStatus": "A String", # The public viewability status of the company's profile.
+  "industries": [ # Industries the company can help with.
+    "A String",
+  ],
   "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
       # detailed (multi-field) version of the address.
     "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
@@ -247,7 +250,8 @@
         # address.
       "A String",
     ],
-    "locality": "A String", # Generally refers to the city/town portion of an address.
+    "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+        # neighborhoods or boroughs in other locations.
     "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
         # classification code for sorting mail.
     "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -289,36 +293,16 @@
         #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
         #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
         #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-        #
-        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
-    "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-        # neighborhoods or boroughs in other locations.
+    "locality": "A String", # Generally refers to the city/town portion of an address.
     "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
     "administrativeArea": "A String", # Top-level administrative subdivision of this country.
     "address": "A String", # The single string version of the address.
     "postalCode": "A String", # Values are frequently alphanumeric.
   },
-  "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
-      # These are stored as full URLs as entered by the user, but only the TLD will
-      # be used for the actual verification.
-    "A String",
-  ],
-  "profileStatus": "A String", # The public viewability status of the company's profile.
-  "ranks": [ # Information related to the ranking of the company within the list of
-      # companies.
-    { # Information related to ranking of results.
-      "type": "A String", # The type of rank.
-      "value": 3.14, # The numerical value of the rank.
-    },
-  ],
-  "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
-  "services": [ # Services the company can help with.
-    "A String",
-  ],
+  "websiteUrl": "A String", # URL of the company's website.
   "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
     { # Google Partners certification status.
       "isCertified": True or False, # Whether certification is passing.
@@ -332,8 +316,24 @@
       ],
     },
   ],
-  "companyTypes": [ # Company type labels listed on the company's profile.
-    "A String",
+  "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+    "url": "A String", # The URL of the public profile.
+    "profileImage": "A String", # The URL to the main profile image of the public profile.
+    "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+    "displayName": "A String", # The display name of the public profile.
+    "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+  },
+  "localizedInfos": [ # The list of localized info for the company.
+    { # The localized company information.
+      "countryCodes": [ # List of country codes for the localized company info.
+        "A String",
+      ],
+      "languageCode": "A String", # Language code of the localized company info, as defined by
+          # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+          # (IETF BCP 47, "Tags for Identifying Languages").
+      "displayName": "A String", # Localized display name.
+      "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+    },
   ],
   "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
       # converted to the requested currency code.
@@ -347,16 +347,10 @@
         # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
     "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
   },
-  "id": "A String", # The ID of the company.
   "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
       # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
       # (IETF BCP 47, "Tags for Identifying Languages").
-  "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
-    { # Agency specialization status
-      "badgeSpecialization": "A String", # The specialization this status is for.
-      "badgeSpecializationState": "A String", # State of agency specialization.
-    },
-  ],
+  "name": "A String", # The name of the company.
 }
 
   requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
@@ -382,7 +376,7 @@
 
     { # A company resource in the Google Partners API. Once certified, it qualifies
       # for being searched by advertisers.
-    "industries": [ # Industries the company can help with.
+    "companyTypes": [ # Company type labels listed on the company's profile.
       "A String",
     ],
     "originalMinMonthlyBudget": { # Represents an amount of money with its currency type. # The unconverted minimum monthly budget that the company accepts for partner
@@ -397,31 +391,24 @@
           # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
       "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
     },
-    "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
-      "url": "A String", # The URL of the public profile.
-      "profileImage": "A String", # The URL to the main profile image of the public profile.
-      "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
-      "displayName": "A String", # The display name of the public profile.
-      "id": "A String", # The ID which can be used to retrieve more details about the public profile.
-    },
-    "name": "A String", # The name of the company.
-    "badgeTier": "A String", # Partner badge tier
-    "localizedInfos": [ # The list of localized info for the company.
-      { # The localized company information.
-        "countryCodes": [ # List of country codes for the localized company info.
-          "A String",
-        ],
-        "languageCode": "A String", # Language code of the localized company info, as defined by
-            # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
-            # (IETF BCP 47, "Tags for Identifying Languages").
-        "displayName": "A String", # Localized display name.
-        "overview": "A String", # Localized brief description that the company uses to advertise themselves.
-      },
-    ],
     "autoApprovalEmailDomains": [ # Email domains that allow users with a matching email address to get
         # auto-approved for associating with this company.
       "A String",
     ],
+    "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
+      { # Agency specialization status
+        "badgeSpecialization": "A String", # The specialization this status is for.
+        "badgeSpecializationState": "A String", # State of agency specialization.
+      },
+    ],
+    "ranks": [ # Information related to the ranking of the company within the list of
+        # companies.
+      { # Information related to ranking of results.
+        "type": "A String", # The type of rank.
+        "value": 3.14, # The numerical value of the rank.
+      },
+    ],
+    "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
     "locations": [ # The list of all company locations.
         # If set, must include the
         # primary_location
@@ -433,7 +420,8 @@
             # address.
           "A String",
         ],
-        "locality": "A String", # Generally refers to the city/town portion of an address.
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
         "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
             # classification code for sorting mail.
         "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -475,21 +463,30 @@
             #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
             #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
             #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-            #
-            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-            # as if it were annotated as ST_LOCATION.
           "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
           "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
         },
-        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-            # neighborhoods or boroughs in other locations.
+        "locality": "A String", # Generally refers to the city/town portion of an address.
         "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
         "administrativeArea": "A String", # Top-level administrative subdivision of this country.
         "address": "A String", # The single string version of the address.
         "postalCode": "A String", # Values are frequently alphanumeric.
       },
     ],
-    "websiteUrl": "A String", # URL of the company's website.
+    "id": "A String", # The ID of the company.
+    "badgeTier": "A String", # Partner badge tier
+    "services": [ # Services the company can help with.
+      "A String",
+    ],
+    "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
+        # These are stored as full URLs as entered by the user, but only the TLD will
+        # be used for the actual verification.
+      "A String",
+    ],
+    "profileStatus": "A String", # The public viewability status of the company's profile.
+    "industries": [ # Industries the company can help with.
+      "A String",
+    ],
     "primaryLocation": { # A location with address and geographic coordinates. May optionally contain a # The primary location of the company.
         # detailed (multi-field) version of the address.
       "languageCode": "A String", # Language code of the address. Should be in BCP 47 format.
@@ -497,7 +494,8 @@
           # address.
         "A String",
       ],
-      "locality": "A String", # Generally refers to the city/town portion of an address.
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
       "sortingCode": "A String", # Use of this code is very country-specific, but will refer to a secondary
           # classification code for sorting mail.
       "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The latitude and longitude of the location, in degrees.
@@ -539,36 +537,16 @@
           #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
           #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
           #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-          #
-          # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-          # as if it were annotated as ST_LOCATION.
         "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
         "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
       },
-      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-          # neighborhoods or boroughs in other locations.
+      "locality": "A String", # Generally refers to the city/town portion of an address.
       "regionCode": "A String", # CLDR (Common Locale Data Repository) region code .
       "administrativeArea": "A String", # Top-level administrative subdivision of this country.
       "address": "A String", # The single string version of the address.
       "postalCode": "A String", # Values are frequently alphanumeric.
     },
-    "additionalWebsites": [ # URL of the company's additional websites used to verify the dynamic badges.
-        # These are stored as full URLs as entered by the user, but only the TLD will
-        # be used for the actual verification.
-      "A String",
-    ],
-    "profileStatus": "A String", # The public viewability status of the company's profile.
-    "ranks": [ # Information related to the ranking of the company within the list of
-        # companies.
-      { # Information related to ranking of results.
-        "type": "A String", # The type of rank.
-        "value": 3.14, # The numerical value of the rank.
-      },
-    ],
-    "primaryAdwordsManagerAccountId": "A String", # The Primary AdWords Manager Account id.
-    "services": [ # Services the company can help with.
-      "A String",
-    ],
+    "websiteUrl": "A String", # URL of the company's website.
     "certificationStatuses": [ # The list of Google Partners certification statuses for the company.
       { # Google Partners certification status.
         "isCertified": True or False, # Whether certification is passing.
@@ -582,8 +560,24 @@
         ],
       },
     ],
-    "companyTypes": [ # Company type labels listed on the company's profile.
-      "A String",
+    "publicProfile": { # Basic information from a public profile. # Basic information from the company's public profile.
+      "url": "A String", # The URL of the public profile.
+      "profileImage": "A String", # The URL to the main profile image of the public profile.
+      "displayImageUrl": "A String", # The URL to the main display image of the public profile. Being deprecated.
+      "displayName": "A String", # The display name of the public profile.
+      "id": "A String", # The ID which can be used to retrieve more details about the public profile.
+    },
+    "localizedInfos": [ # The list of localized info for the company.
+      { # The localized company information.
+        "countryCodes": [ # List of country codes for the localized company info.
+          "A String",
+        ],
+        "languageCode": "A String", # Language code of the localized company info, as defined by
+            # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
+            # (IETF BCP 47, "Tags for Identifying Languages").
+        "displayName": "A String", # Localized display name.
+        "overview": "A String", # Localized brief description that the company uses to advertise themselves.
+      },
     ],
     "convertedMinMonthlyBudget": { # Represents an amount of money with its currency type. # The minimum monthly budget that the company accepts for partner business,
         # converted to the requested currency code.
@@ -597,16 +591,10 @@
           # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
       "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
     },
-    "id": "A String", # The ID of the company.
     "primaryLanguageCode": "A String", # The primary language code of the company, as defined by
         # <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
         # (IETF BCP 47, "Tags for Identifying Languages").
-    "specializationStatus": [ # The list of Google Partners specialization statuses for the company.
-      { # Agency specialization status
-        "badgeSpecialization": "A String", # The specialization this status is for.
-        "badgeSpecializationState": "A String", # State of agency specialization.
-      },
-    ],
+    "name": "A String", # The name of the company.
   }</pre>
 </div>
 
@@ -638,17 +626,17 @@
     "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
   },
   "comments": "A String", # Comments lead source gave.
-  "email": "A String", # Email address of lead source.
+  "createTime": "A String", # Timestamp of when this lead was created.
   "websiteUrl": "A String", # Website URL of lead source.
+  "email": "A String", # Email address of lead source.
   "state": "A String", # The lead's state in relation to the company.
   "phoneNumber": "A String", # Phone number of lead source.
   "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
     "A String",
   ],
-  "id": "A String", # ID of the lead.
   "givenName": "A String", # First name of lead source.
   "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
-  "createTime": "A String", # Timestamp of when this lead was created.
+  "id": "A String", # ID of the lead.
 }
 
   requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
@@ -693,17 +681,17 @@
       "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
     },
     "comments": "A String", # Comments lead source gave.
-    "email": "A String", # Email address of lead source.
+    "createTime": "A String", # Timestamp of when this lead was created.
     "websiteUrl": "A String", # Website URL of lead source.
+    "email": "A String", # Email address of lead source.
     "state": "A String", # The lead's state in relation to the company.
     "phoneNumber": "A String", # Phone number of lead source.
     "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
       "A String",
     ],
-    "id": "A String", # ID of the lead.
     "givenName": "A String", # First name of lead source.
     "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
-    "createTime": "A String", # Timestamp of when this lead was created.
+    "id": "A String", # ID of the lead.
   }</pre>
 </div>
 
diff --git a/docs/dyn/people_v1.people.connections.html b/docs/dyn/people_v1.people.connections.html
index 5b9c777..3c62088 100644
--- a/docs/dyn/people_v1.people.connections.html
+++ b/docs/dyn/people_v1.people.connections.html
@@ -89,7 +89,7 @@
 Args:
   resourceName: string, The resource name to return connections for. Only `people/me` is valid. (required)
   pageSize: integer, The number of connections to include in the response. Valid values are
-between 1 and 500, inclusive. Defaults to 100.
+between 1 and 2000, inclusive. Defaults to 100.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -101,28 +101,24 @@
 all changes since the last request.
   syncToken: string, A sync token, returned by a previous call to `people.connections.list`.
 Only resources changed since the sync token was created will be returned.
-  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting
-this field will include all fields except for connections.list requests,
-which have a default mask that includes common fields like metadata, name,
-photo, and profile url.
-Each path should start with `person.`: for example, `person.names` or
-`person.photos`.
+  requestMask_includeField: string, Required. Comma-separated list of person fields to be included in the
+response. Each path should start with `person.`: for example,
+`person.names` or `person.photos`.
 
 Returns:
   An object of the form:
 
     {
-    "totalPeople": 42, # The total number of people in the list without pagination.
+    "totalPeople": 42, # DEPRECATED(Please use total_items). The total number of people in the list
+        # without pagination.
     "nextPageToken": "A String", # The token that can be used to retrieve the next page of results.
     "connections": [ # The list of people that the requestor is connected to.
       { # Information about a person merged from various data sources such as the
-          # authenticated user's contacts and profile data. Fields other than IDs,
-          # metadata, and group memberships are user-edited.
+          # authenticated user's contacts and profile data.
           #
           # Most fields can have multiple items. The items in a field have no guaranteed
           # order, but each non-empty field is guaranteed to have exactly one field with
           # `metadata.primary` set to true.
-          # NEXT_ID: 31
         "braggingRights": [ # The person's bragging rights.
           { # A person's bragging rights.
             "value": "A String", # The bragging rights; for example, `climbed mount everest`.
@@ -235,6 +231,24 @@
           { # A person's phone number.
             "formattedType": "A String", # The read-only type of the phone number translated and formatted in the
                 # viewer's account locale or the the `Accept-Language` HTTP header locale.
+            "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
+                # form of the phone number.
+            "type": "A String", # The type of the phone number. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following:
+                #
+                # * `home`
+                # * `work`
+                # * `mobile`
+                # * `homeFax`
+                # * `workFax`
+                # * `otherFax`
+                # * `pager`
+                # * `workMobile`
+                # * `workPager`
+                # * `main`
+                # * `googleVoice`
+                # * `other`
+            "value": "A String", # The phone number.
             "metadata": { # Metadata about a field. # Metadata about the phone number.
               "source": { # The source of a field. # The source of the field.
                 "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -252,24 +266,6 @@
               "primary": True or False, # True if the field is the primary field; false if the field is a secondary
                   # field.
             },
-            "type": "A String", # The type of the phone number. The type can be custom or predefined.
-                # Possible values include, but are not limited to, the following:
-                #
-                # * `home`
-                # * `work`
-                # * `mobile`
-                # * `homeFax`
-                # * `workFax`
-                # * `otherFax`
-                # * `pager`
-                # * `workMobile`
-                # * `workPager`
-                # * `main`
-                # * `googleVoice`
-                # * `other`
-            "value": "A String", # The phone number.
-            "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
-                # form of the phone number.
           },
         ],
         "names": [ # The person's names.
@@ -310,7 +306,7 @@
           },
         ],
         "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string
-            # with a max length of 27 characters. Always starts with `people/`.
+            # with a max length of 27 characters, in the form of `people/<person_id>`.
         "ageRanges": [ # The person's age ranges.
           { # A person's age range.
             "ageRange": "A String", # The age range.
@@ -372,26 +368,8 @@
         ],
         "relations": [ # The person's relations.
           { # A person's relation to another person.
-            "person": "A String", # The name of the other person this relation refers to.
             "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account
                 # locale or the locale specified in the Accept-Language HTTP header.
-            "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
-                # Possible values include, but are not limited to, the following values:
-                #
-                # * `spouse`
-                # * `child`
-                # * `mother`
-                # * `father`
-                # * `parent`
-                # * `brother`
-                # * `sister`
-                # * `friend`
-                # * `relative`
-                # * `domesticPartner`
-                # * `manager`
-                # * `assistant`
-                # * `referredBy`
-                # * `partner`
             "metadata": { # Metadata about a field. # Metadata about the relation.
               "source": { # The source of a field. # The source of the field.
                 "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -409,6 +387,24 @@
               "primary": True or False, # True if the field is the primary field; false if the field is a secondary
                   # field.
             },
+            "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
+                # Possible values include, but are not limited to, the following values:
+                #
+                # * `spouse`
+                # * `child`
+                # * `mother`
+                # * `father`
+                # * `parent`
+                # * `brother`
+                # * `sister`
+                # * `friend`
+                # * `relative`
+                # * `domesticPartner`
+                # * `manager`
+                # * `assistant`
+                # * `referredBy`
+                # * `partner`
+            "person": "A String", # The name of the other person this relation refers to.
           },
         ],
         "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -611,7 +607,9 @@
         "photos": [ # The person's photos.
           { # A person's read-only photo. A picture shown next to the person's name to
               # help others recognize the person.
-            "url": "A String", # The URL of the photo.
+            "url": "A String", # The URL of the photo. You can change the desired size by appending a query
+                # parameter `sz=<size>` at the end of the url. Example:
+                # `https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50`
             "metadata": { # Metadata about a field. # Metadata about the photo.
               "source": { # The source of a field. # The source of the field.
                 "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -738,8 +736,19 @@
         "organizations": [ # The person's past or current organizations.
           { # A person's past or current organization. Overlapping date ranges are
               # permitted.
-            "formattedType": "A String", # The read-only type of the organization translated and formatted in the
-                # viewer's account locale or the `Accept-Language` HTTP header locale.
+            "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
+                # of day and time zone are either specified elsewhere or are not
+                # significant. The date is relative to the
+                # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                # The day may be 0 to represent a year and month where the day is not
+                # significant. The year may be 0 to represent a month and day independent
+                # of year; for example, anniversary date.
+              "month": 42, # Month of year. Must be from 1 to 12.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+            },
             "domain": "A String", # The domain name associated with the organization; for example, `google.com`.
             "endDate": { # Represents a whole calendar date, for example a date of birth. The time # The end date when the person left the organization.
                 # of day and time zone are either specified elsewhere or are not
@@ -755,27 +764,16 @@
                   # a year.
             },
             "name": "A String", # The name of the organization.
-            "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
-                # of day and time zone are either specified elsewhere or are not
-                # significant. The date is relative to the
-                # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
-                # The day may be 0 to represent a year and month where the day is not
-                # significant. The year may be 0 to represent a month and day independent
-                # of year; for example, anniversary date.
-              "month": 42, # Month of year. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                  # if specifying a year/month where the day is not significant.
-              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                  # a year.
-            },
+            "title": "A String", # The person's job title at the organization.
             "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker
                 # symbol, abbreviation, or acronym.
-            "title": "A String", # The person's job title at the organization.
             "current": True or False, # True if the organization is the person's current organization;
                 # false if the organization is a past organization.
             "jobDescription": "A String", # The person's job description at the organization.
             "location": "A String", # The location of the organization office the person works at.
             "department": "A String", # The person's department at the organization.
+            "formattedType": "A String", # The read-only type of the organization translated and formatted in the
+                # viewer's account locale or the `Accept-Language` HTTP header locale.
             "type": "A String", # The type of the organization. The type can be custom or predefined.
                 # Possible values include, but are not limited to, the following:
                 #
@@ -949,14 +947,14 @@
         ],
         "emailAddresses": [ # The person's email addresses.
           { # A person's email address.
-            "formattedType": "A String", # The read-only type of the email address translated and formatted in the
-                # viewer's account locale or the `Accept-Language` HTTP header locale.
             "type": "A String", # The type of the email address. The type can be custom or predefined.
                 # Possible values include, but are not limited to, the following:
                 #
                 # * `home`
                 # * `work`
                 # * `other`
+            "formattedType": "A String", # The read-only type of the email address translated and formatted in the
+                # viewer's account locale or the `Accept-Language` HTTP header locale.
             "displayName": "A String", # The display name of the email.
             "value": "A String", # The email address.
             "metadata": { # Metadata about a field. # Metadata about the email address.
@@ -981,6 +979,7 @@
       },
     ],
     "nextSyncToken": "A String", # The token that can be used to retrieve changes since the last request.
+    "totalItems": 42, # The total number of items in the list without pagination.
   }</pre>
 </div>
 
diff --git a/docs/dyn/people_v1.people.html b/docs/dyn/people_v1.people.html
index 168b82a..2aa289b 100644
--- a/docs/dyn/people_v1.people.html
+++ b/docs/dyn/people_v1.people.html
@@ -81,14 +81,14 @@
 
 <p class="toc_element">
   <code><a href="#get">get(resourceName, x__xgafv=None, requestMask_includeField=None)</a></code></p>
-<p class="firstline">Provides information about a person resource for a resource name. Use</p>
+<p class="firstline">Provides information about a person by specifying a resource name. Use</p>
 <p class="toc_element">
   <code><a href="#getBatchGet">getBatchGet(resourceNames=None, x__xgafv=None, requestMask_includeField=None)</a></code></p>
 <p class="firstline">Provides information about a list of specific people by specifying a list</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(resourceName, x__xgafv=None, requestMask_includeField=None)</code>
-  <pre>Provides information about a person resource for a resource name. Use
+  <pre>Provides information about a person by specifying a resource name. Use
 `people/me` to indicate the authenticated user.
 
 Args:
@@ -102,24 +102,19 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting
-this field will include all fields except for connections.list requests,
-which have a default mask that includes common fields like metadata, name,
-photo, and profile url.
-Each path should start with `person.`: for example, `person.names` or
-`person.photos`.
+  requestMask_includeField: string, Required. Comma-separated list of person fields to be included in the
+response. Each path should start with `person.`: for example,
+`person.names` or `person.photos`.
 
 Returns:
   An object of the form:
 
     { # Information about a person merged from various data sources such as the
-      # authenticated user's contacts and profile data. Fields other than IDs,
-      # metadata, and group memberships are user-edited.
+      # authenticated user's contacts and profile data.
       #
       # Most fields can have multiple items. The items in a field have no guaranteed
       # order, but each non-empty field is guaranteed to have exactly one field with
       # `metadata.primary` set to true.
-      # NEXT_ID: 31
     "braggingRights": [ # The person's bragging rights.
       { # A person's bragging rights.
         "value": "A String", # The bragging rights; for example, `climbed mount everest`.
@@ -232,6 +227,24 @@
       { # A person's phone number.
         "formattedType": "A String", # The read-only type of the phone number translated and formatted in the
             # viewer's account locale or the the `Accept-Language` HTTP header locale.
+        "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
+            # form of the phone number.
+        "type": "A String", # The type of the phone number. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following:
+            #
+            # * `home`
+            # * `work`
+            # * `mobile`
+            # * `homeFax`
+            # * `workFax`
+            # * `otherFax`
+            # * `pager`
+            # * `workMobile`
+            # * `workPager`
+            # * `main`
+            # * `googleVoice`
+            # * `other`
+        "value": "A String", # The phone number.
         "metadata": { # Metadata about a field. # Metadata about the phone number.
           "source": { # The source of a field. # The source of the field.
             "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -249,24 +262,6 @@
           "primary": True or False, # True if the field is the primary field; false if the field is a secondary
               # field.
         },
-        "type": "A String", # The type of the phone number. The type can be custom or predefined.
-            # Possible values include, but are not limited to, the following:
-            #
-            # * `home`
-            # * `work`
-            # * `mobile`
-            # * `homeFax`
-            # * `workFax`
-            # * `otherFax`
-            # * `pager`
-            # * `workMobile`
-            # * `workPager`
-            # * `main`
-            # * `googleVoice`
-            # * `other`
-        "value": "A String", # The phone number.
-        "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
-            # form of the phone number.
       },
     ],
     "names": [ # The person's names.
@@ -307,7 +302,7 @@
       },
     ],
     "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string
-        # with a max length of 27 characters. Always starts with `people/`.
+        # with a max length of 27 characters, in the form of `people/<person_id>`.
     "ageRanges": [ # The person's age ranges.
       { # A person's age range.
         "ageRange": "A String", # The age range.
@@ -369,26 +364,8 @@
     ],
     "relations": [ # The person's relations.
       { # A person's relation to another person.
-        "person": "A String", # The name of the other person this relation refers to.
         "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account
             # locale or the locale specified in the Accept-Language HTTP header.
-        "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
-            # Possible values include, but are not limited to, the following values:
-            #
-            # * `spouse`
-            # * `child`
-            # * `mother`
-            # * `father`
-            # * `parent`
-            # * `brother`
-            # * `sister`
-            # * `friend`
-            # * `relative`
-            # * `domesticPartner`
-            # * `manager`
-            # * `assistant`
-            # * `referredBy`
-            # * `partner`
         "metadata": { # Metadata about a field. # Metadata about the relation.
           "source": { # The source of a field. # The source of the field.
             "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -406,6 +383,24 @@
           "primary": True or False, # True if the field is the primary field; false if the field is a secondary
               # field.
         },
+        "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
+            # Possible values include, but are not limited to, the following values:
+            #
+            # * `spouse`
+            # * `child`
+            # * `mother`
+            # * `father`
+            # * `parent`
+            # * `brother`
+            # * `sister`
+            # * `friend`
+            # * `relative`
+            # * `domesticPartner`
+            # * `manager`
+            # * `assistant`
+            # * `referredBy`
+            # * `partner`
+        "person": "A String", # The name of the other person this relation refers to.
       },
     ],
     "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -608,7 +603,9 @@
     "photos": [ # The person's photos.
       { # A person's read-only photo. A picture shown next to the person's name to
           # help others recognize the person.
-        "url": "A String", # The URL of the photo.
+        "url": "A String", # The URL of the photo. You can change the desired size by appending a query
+            # parameter `sz=<size>` at the end of the url. Example:
+            # `https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50`
         "metadata": { # Metadata about a field. # Metadata about the photo.
           "source": { # The source of a field. # The source of the field.
             "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -735,8 +732,19 @@
     "organizations": [ # The person's past or current organizations.
       { # A person's past or current organization. Overlapping date ranges are
           # permitted.
-        "formattedType": "A String", # The read-only type of the organization translated and formatted in the
-            # viewer's account locale or the `Accept-Language` HTTP header locale.
+        "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
+            # of day and time zone are either specified elsewhere or are not
+            # significant. The date is relative to the
+            # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+            # The day may be 0 to represent a year and month where the day is not
+            # significant. The year may be 0 to represent a month and day independent
+            # of year; for example, anniversary date.
+          "month": 42, # Month of year. Must be from 1 to 12.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+        },
         "domain": "A String", # The domain name associated with the organization; for example, `google.com`.
         "endDate": { # Represents a whole calendar date, for example a date of birth. The time # The end date when the person left the organization.
             # of day and time zone are either specified elsewhere or are not
@@ -752,27 +760,16 @@
               # a year.
         },
         "name": "A String", # The name of the organization.
-        "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
-            # of day and time zone are either specified elsewhere or are not
-            # significant. The date is relative to the
-            # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
-            # The day may be 0 to represent a year and month where the day is not
-            # significant. The year may be 0 to represent a month and day independent
-            # of year; for example, anniversary date.
-          "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-              # if specifying a year/month where the day is not significant.
-          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-              # a year.
-        },
+        "title": "A String", # The person's job title at the organization.
         "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker
             # symbol, abbreviation, or acronym.
-        "title": "A String", # The person's job title at the organization.
         "current": True or False, # True if the organization is the person's current organization;
             # false if the organization is a past organization.
         "jobDescription": "A String", # The person's job description at the organization.
         "location": "A String", # The location of the organization office the person works at.
         "department": "A String", # The person's department at the organization.
+        "formattedType": "A String", # The read-only type of the organization translated and formatted in the
+            # viewer's account locale or the `Accept-Language` HTTP header locale.
         "type": "A String", # The type of the organization. The type can be custom or predefined.
             # Possible values include, but are not limited to, the following:
             #
@@ -946,14 +943,14 @@
     ],
     "emailAddresses": [ # The person's email addresses.
       { # A person's email address.
-        "formattedType": "A String", # The read-only type of the email address translated and formatted in the
-            # viewer's account locale or the `Accept-Language` HTTP header locale.
         "type": "A String", # The type of the email address. The type can be custom or predefined.
             # Possible values include, but are not limited to, the following:
             #
             # * `home`
             # * `work`
             # * `other`
+        "formattedType": "A String", # The read-only type of the email address translated and formatted in the
+            # viewer's account locale or the `Accept-Language` HTTP header locale.
         "displayName": "A String", # The display name of the email.
         "value": "A String", # The email address.
         "metadata": { # Metadata about a field. # Metadata about the email address.
@@ -993,12 +990,9 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  requestMask_includeField: string, Comma-separated list of fields to be included in the response. Omitting
-this field will include all fields except for connections.list requests,
-which have a default mask that includes common fields like metadata, name,
-photo, and profile url.
-Each path should start with `person.`: for example, `person.names` or
-`person.photos`.
+  requestMask_includeField: string, Required. Comma-separated list of person fields to be included in the
+response. Each path should start with `person.`: for example,
+`person.names` or `person.photos`.
 
 Returns:
   An object of the form:
@@ -1013,13 +1007,11 @@
             # contact and profile such as a verified email, verified phone number, or a
             # profile URL.
         "person": { # Information about a person merged from various data sources such as the # The person.
-            # authenticated user's contacts and profile data. Fields other than IDs,
-            # metadata, and group memberships are user-edited.
+            # authenticated user's contacts and profile data.
             #
             # Most fields can have multiple items. The items in a field have no guaranteed
             # order, but each non-empty field is guaranteed to have exactly one field with
             # `metadata.primary` set to true.
-            # NEXT_ID: 31
           "braggingRights": [ # The person's bragging rights.
             { # A person's bragging rights.
               "value": "A String", # The bragging rights; for example, `climbed mount everest`.
@@ -1132,6 +1124,24 @@
             { # A person's phone number.
               "formattedType": "A String", # The read-only type of the phone number translated and formatted in the
                   # viewer's account locale or the the `Accept-Language` HTTP header locale.
+              "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
+                  # form of the phone number.
+              "type": "A String", # The type of the phone number. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following:
+                  #
+                  # * `home`
+                  # * `work`
+                  # * `mobile`
+                  # * `homeFax`
+                  # * `workFax`
+                  # * `otherFax`
+                  # * `pager`
+                  # * `workMobile`
+                  # * `workPager`
+                  # * `main`
+                  # * `googleVoice`
+                  # * `other`
+              "value": "A String", # The phone number.
               "metadata": { # Metadata about a field. # Metadata about the phone number.
                 "source": { # The source of a field. # The source of the field.
                   "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -1149,24 +1159,6 @@
                 "primary": True or False, # True if the field is the primary field; false if the field is a secondary
                     # field.
               },
-              "type": "A String", # The type of the phone number. The type can be custom or predefined.
-                  # Possible values include, but are not limited to, the following:
-                  #
-                  # * `home`
-                  # * `work`
-                  # * `mobile`
-                  # * `homeFax`
-                  # * `workFax`
-                  # * `otherFax`
-                  # * `pager`
-                  # * `workMobile`
-                  # * `workPager`
-                  # * `main`
-                  # * `googleVoice`
-                  # * `other`
-              "value": "A String", # The phone number.
-              "canonicalForm": "A String", # The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)
-                  # form of the phone number.
             },
           ],
           "names": [ # The person's names.
@@ -1207,7 +1199,7 @@
             },
           ],
           "resourceName": "A String", # The resource name for the person, assigned by the server. An ASCII string
-              # with a max length of 27 characters. Always starts with `people/`.
+              # with a max length of 27 characters, in the form of `people/<person_id>`.
           "ageRanges": [ # The person's age ranges.
             { # A person's age range.
               "ageRange": "A String", # The age range.
@@ -1269,26 +1261,8 @@
           ],
           "relations": [ # The person's relations.
             { # A person's relation to another person.
-              "person": "A String", # The name of the other person this relation refers to.
               "formattedType": "A String", # The type of the relation translated and formatted in the viewer's account
                   # locale or the locale specified in the Accept-Language HTTP header.
-              "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
-                  # Possible values include, but are not limited to, the following values:
-                  #
-                  # * `spouse`
-                  # * `child`
-                  # * `mother`
-                  # * `father`
-                  # * `parent`
-                  # * `brother`
-                  # * `sister`
-                  # * `friend`
-                  # * `relative`
-                  # * `domesticPartner`
-                  # * `manager`
-                  # * `assistant`
-                  # * `referredBy`
-                  # * `partner`
               "metadata": { # Metadata about a field. # Metadata about the relation.
                 "source": { # The source of a field. # The source of the field.
                   "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -1306,6 +1280,24 @@
                 "primary": True or False, # True if the field is the primary field; false if the field is a secondary
                     # field.
               },
+              "type": "A String", # The person's relation to the other person. The type can be custom or predefined.
+                  # Possible values include, but are not limited to, the following values:
+                  #
+                  # * `spouse`
+                  # * `child`
+                  # * `mother`
+                  # * `father`
+                  # * `parent`
+                  # * `brother`
+                  # * `sister`
+                  # * `friend`
+                  # * `relative`
+                  # * `domesticPartner`
+                  # * `manager`
+                  # * `assistant`
+                  # * `referredBy`
+                  # * `partner`
+              "person": "A String", # The name of the other person this relation refers to.
             },
           ],
           "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -1508,7 +1500,9 @@
           "photos": [ # The person's photos.
             { # A person's read-only photo. A picture shown next to the person's name to
                 # help others recognize the person.
-              "url": "A String", # The URL of the photo.
+              "url": "A String", # The URL of the photo. You can change the desired size by appending a query
+                  # parameter `sz=<size>` at the end of the url. Example:
+                  # `https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50`
               "metadata": { # Metadata about a field. # Metadata about the photo.
                 "source": { # The source of a field. # The source of the field.
                   "etag": "A String", # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the
@@ -1635,8 +1629,19 @@
           "organizations": [ # The person's past or current organizations.
             { # A person's past or current organization. Overlapping date ranges are
                 # permitted.
-              "formattedType": "A String", # The read-only type of the organization translated and formatted in the
-                  # viewer's account locale or the `Accept-Language` HTTP header locale.
+              "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
+                  # of day and time zone are either specified elsewhere or are not
+                  # significant. The date is relative to the
+                  # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
+                  # The day may be 0 to represent a year and month where the day is not
+                  # significant. The year may be 0 to represent a month and day independent
+                  # of year; for example, anniversary date.
+                "month": 42, # Month of year. Must be from 1 to 12.
+                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                    # if specifying a year/month where the day is not significant.
+                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                    # a year.
+              },
               "domain": "A String", # The domain name associated with the organization; for example, `google.com`.
               "endDate": { # Represents a whole calendar date, for example a date of birth. The time # The end date when the person left the organization.
                   # of day and time zone are either specified elsewhere or are not
@@ -1652,27 +1657,16 @@
                     # a year.
               },
               "name": "A String", # The name of the organization.
-              "startDate": { # Represents a whole calendar date, for example a date of birth. The time # The start date when the person joined the organization.
-                  # of day and time zone are either specified elsewhere or are not
-                  # significant. The date is relative to the
-                  # [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).
-                  # The day may be 0 to represent a year and month where the day is not
-                  # significant. The year may be 0 to represent a month and day independent
-                  # of year; for example, anniversary date.
-                "month": 42, # Month of year. Must be from 1 to 12.
-                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-                    # if specifying a year/month where the day is not significant.
-                "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
-                    # a year.
-              },
+              "title": "A String", # The person's job title at the organization.
               "symbol": "A String", # The symbol associated with the organization; for example, a stock ticker
                   # symbol, abbreviation, or acronym.
-              "title": "A String", # The person's job title at the organization.
               "current": True or False, # True if the organization is the person's current organization;
                   # false if the organization is a past organization.
               "jobDescription": "A String", # The person's job description at the organization.
               "location": "A String", # The location of the organization office the person works at.
               "department": "A String", # The person's department at the organization.
+              "formattedType": "A String", # The read-only type of the organization translated and formatted in the
+                  # viewer's account locale or the `Accept-Language` HTTP header locale.
               "type": "A String", # The type of the organization. The type can be custom or predefined.
                   # Possible values include, but are not limited to, the following:
                   #
@@ -1846,14 +1840,14 @@
           ],
           "emailAddresses": [ # The person's email addresses.
             { # A person's email address.
-              "formattedType": "A String", # The read-only type of the email address translated and formatted in the
-                  # viewer's account locale or the `Accept-Language` HTTP header locale.
               "type": "A String", # The type of the email address. The type can be custom or predefined.
                   # Possible values include, but are not limited to, the following:
                   #
                   # * `home`
                   # * `work`
                   # * `other`
+              "formattedType": "A String", # The read-only type of the email address translated and formatted in the
+                  # viewer's account locale or the `Accept-Language` HTTP header locale.
               "displayName": "A String", # The display name of the email.
               "value": "A String", # The email address.
               "metadata": { # Metadata about a field. # Metadata about the email address.
@@ -1876,7 +1870,72 @@
             },
           ],
         },
-        "httpStatusCode": 42, # [HTTP 1.1 status code](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).
+        "httpStatusCode": 42, # DEPRECATED(Please use status instead).
+            # [HTTP 1.1 status
+            # code](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).
+        "status": { # The `Status` type defines a logical error model that is suitable for different # The status of the response.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` that can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
       },
     ],
   }</pre>
diff --git a/docs/dyn/playmoviespartner_v1.accounts.avails.html b/docs/dyn/playmoviespartner_v1.accounts.avails.html
index b700a91..3d8d6f6 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.avails.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.avails.html
@@ -243,8 +243,8 @@
   An object of the form:
 
     { # Response to the 'ListAvails' method.
-    "totalSize": 42, # See _List methods rules_ for more information about this field.
     "nextPageToken": "A String", # See _List methods rules_ for info about this field.
+    "totalSize": 42, # See _List methods rules_ for more information about this field.
     "avails": [ # List of Avails that match the request criteria.
       { # An Avail describes the Availability Window of a specific Edit in a given
           # country, which means the period Google is allowed to sell or rent the Edit.
diff --git a/docs/dyn/playmoviespartner_v1.accounts.components.html b/docs/dyn/playmoviespartner_v1.accounts.components.html
deleted file mode 100644
index 05ac459..0000000
--- a/docs/dyn/playmoviespartner_v1.accounts.components.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<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="playmoviespartner_v1.html">Google Play Movies Partner API</a> . <a href="playmoviespartner_v1.accounts.html">accounts</a> . <a href="playmoviespartner_v1.accounts.components.html">components</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="playmoviespartner_v1.accounts.components.type.html">type()</a></code>
-</p>
-<p class="firstline">Returns the type Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#list">list(accountId, pphNames=None, pageSize=None, editLevelEidr=None, x__xgafv=None, playableSequenceId=None, studioNames=None, filename=None, pageToken=None, customId=None, status=None, titleLevelEidr=None, presentationId=None, inventoryId=None, altCutId=None, elId=None)</a></code></p>
-<p class="firstline">List Components owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.</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="list">list(accountId, pphNames=None, pageSize=None, editLevelEidr=None, x__xgafv=None, playableSequenceId=None, studioNames=None, filename=None, pageToken=None, customId=None, status=None, titleLevelEidr=None, presentationId=None, inventoryId=None, altCutId=None, elId=None)</code>
-  <pre>List Components owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.
-
-Args:
-  accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
-  pphNames: string, See _List methods rules_ for info about this field. (repeated)
-  pageSize: integer, See _List methods rules_ for info about this field.
-  editLevelEidr: string, Filter Components that match a given edit-level EIDR.
-  x__xgafv: string, V1 error format.
-  playableSequenceId: string, PlayableSequenceID available in Common Manifest.
-  studioNames: string, See _List methods rules_ for info about this field. (repeated)
-  filename: string, Filter Components that match a case-insensitive substring of the physical name of the delivered file.
-  pageToken: string, See _List methods rules_ for info about this field.
-  customId: string, Filter Components that match a case-insensitive partner-specific custom id.
-  status: string, Filter Components that match one of the given status. (repeated)
-  titleLevelEidr: string, Filter Components that match a given title-level EIDR.
-  presentationId: string, PresentationID available in Common Manifest.
-  inventoryId: string, InventoryID available in Common Manifest.
-  altCutId: string, Filter Components that match a case-insensitive, partner-specific Alternative Cut ID.
-  elId: string, Experience ID, as defined by Google.
-
-Returns:
-  An object of the form:
-
-    { # Response to the 'ListComponents' method.
-    "nextPageToken": "A String", # See _List methods rules_ for info about this field.
-    "totalSize": 42, # See _List methods rules_ for more information about this field.
-    "components": [ # List of Components that match the request criteria.
-      { # A Component is an element (audio, video, subtitle, artwork, trailer, etc...) that is used in a set of ExperienceLocales. A Component is owned by a Studio and managed either by the Studio itself or by one Post-Production House. Each Component is identified by a `component_id` and its `type`.
-        "altCutIds": [ # List of Alternative Cut IDs, sometimes available in lieu of the main Edit-level EIDR IDs. This is not an EIDR ID, but a Partner-provided ID. Example: "206346_79838".
-          "A String",
-        ],
-        "processingErrors": [ # Processing errors during XML file parsing. Example: 'Invalid input file'
-          "A String",
-        ],
-        "studioName": "A String", # Name of the studio that owns the Component.
-        "rejectionNote": "A String", # Notes explaining why a Component has been rejected.
-        "titleLevelEidrs": [ # List of Title-level EIDR IDs. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
-          "A String",
-        ],
-        "playableUnitType": "A String", # Type of the playable unit for which the Component is intended.
-        "receivedTime": "A String", # Timestamp when the Component was received.
-        "filename": "A String", # File name of the Component when delivered.
-        "priority": 3.14, # Component priority, as defined by Google. The higher the value, the higher the priority.
-        "editLevelEidrs": [ # List of Edit-level EIDR IDs. Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
-          "A String",
-        ],
-        "type": "A String", # Type of the Component. Example: AUDIO_51
-        "componentId": "A String", # ID internally generated by Google to uniquely identify the Component. Example: 'wteyrc_647xc'
-        "status": "A String", # High-level status of the Component.
-        "statusDetail": "A String", # Detailed status of the Component
-        "approvedTime": "A String", # Timestamp when the Component was approved.
-        "elIds": [ # IDs internally generated by Google to uniquely identify the ExperienceLocales for which the Component is used. Example: 'KRZiVjY9h7t'
-          "A String",
-        ],
-        "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-        "language": "A String", # Language of the component, using the "BCP 47" format. Examples: "en", "en-US", "es", "es-419".
-        "componentDetailType": "A String", # Detail about the type of the Component.
-        "customIds": [ # List of custom IDs (defined by the partner) linked to the ExperienceLocale using this Component. Example: "R86241"
-          "A String",
-        ],
-        "pphName": "A String", # Name of the post-production house that manages the Component.
-        "normalizedPriority": "A String", # A simpler representation of the priority.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/playmoviespartner_v1.accounts.components.type.html b/docs/dyn/playmoviespartner_v1.accounts.components.type.html
deleted file mode 100644
index 8ec01d2..0000000
--- a/docs/dyn/playmoviespartner_v1.accounts.components.type.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<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="playmoviespartner_v1.html">Google Play Movies Partner API</a> . <a href="playmoviespartner_v1.accounts.html">accounts</a> . <a href="playmoviespartner_v1.accounts.components.html">components</a> . <a href="playmoviespartner_v1.accounts.components.type.html">type</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(accountId, componentId, type, x__xgafv=None)</a></code></p>
-<p class="firstline">Get a Component given its id.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="get">get(accountId, componentId, type, x__xgafv=None)</code>
-  <pre>Get a Component given its id.
-
-Args:
-  accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
-  componentId: string, REQUIRED. Component ID. (required)
-  type: string, REQUIRED. Component Type. (required)
-  x__xgafv: string, V1 error format.
-
-Returns:
-  An object of the form:
-
-    { # A Component is an element (audio, video, subtitle, artwork, trailer, etc...) that is used in a set of ExperienceLocales. A Component is owned by a Studio and managed either by the Studio itself or by one Post-Production House. Each Component is identified by a `component_id` and its `type`.
-    "altCutIds": [ # List of Alternative Cut IDs, sometimes available in lieu of the main Edit-level EIDR IDs. This is not an EIDR ID, but a Partner-provided ID. Example: "206346_79838".
-      "A String",
-    ],
-    "processingErrors": [ # Processing errors during XML file parsing. Example: 'Invalid input file'
-      "A String",
-    ],
-    "studioName": "A String", # Name of the studio that owns the Component.
-    "rejectionNote": "A String", # Notes explaining why a Component has been rejected.
-    "titleLevelEidrs": [ # List of Title-level EIDR IDs. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
-      "A String",
-    ],
-    "playableUnitType": "A String", # Type of the playable unit for which the Component is intended.
-    "receivedTime": "A String", # Timestamp when the Component was received.
-    "filename": "A String", # File name of the Component when delivered.
-    "priority": 3.14, # Component priority, as defined by Google. The higher the value, the higher the priority.
-    "editLevelEidrs": [ # List of Edit-level EIDR IDs. Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
-      "A String",
-    ],
-    "type": "A String", # Type of the Component. Example: AUDIO_51
-    "componentId": "A String", # ID internally generated by Google to uniquely identify the Component. Example: 'wteyrc_647xc'
-    "status": "A String", # High-level status of the Component.
-    "statusDetail": "A String", # Detailed status of the Component
-    "approvedTime": "A String", # Timestamp when the Component was approved.
-    "elIds": [ # IDs internally generated by Google to uniquely identify the ExperienceLocales for which the Component is used. Example: 'KRZiVjY9h7t'
-      "A String",
-    ],
-    "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-    "language": "A String", # Language of the component, using the "BCP 47" format. Examples: "en", "en-US", "es", "es-419".
-    "componentDetailType": "A String", # Detail about the type of the Component.
-    "customIds": [ # List of custom IDs (defined by the partner) linked to the ExperienceLocale using this Component. Example: "R86241"
-      "A String",
-    ],
-    "pphName": "A String", # Name of the post-production house that manages the Component.
-    "normalizedPriority": "A String", # A simpler representation of the priority.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/playmoviespartner_v1.accounts.experienceLocales.html b/docs/dyn/playmoviespartner_v1.accounts.experienceLocales.html
deleted file mode 100644
index 2a13be1..0000000
--- a/docs/dyn/playmoviespartner_v1.accounts.experienceLocales.html
+++ /dev/null
@@ -1,201 +0,0 @@
-<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="playmoviespartner_v1.html">Google Play Movies Partner API</a> . <a href="playmoviespartner_v1.accounts.html">accounts</a> . <a href="playmoviespartner_v1.accounts.experienceLocales.html">experienceLocales</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#get">get(accountId, elId, x__xgafv=None)</a></code></p>
-<p class="firstline">Get an ExperienceLocale given its id. See _Authentication and Authorization rules_ and _Get methods rules_ for more information about this method.</p>
-<p class="toc_element">
-  <code><a href="#list">list(accountId, pphNames=None, pageSize=None, editLevelEidr=None, x__xgafv=None, studioNames=None, pageToken=None, customId=None, status=None, titleLevelEidr=None, altCutId=None)</a></code></p>
-<p class="firstline">List ExperienceLocales owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.</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="get">get(accountId, elId, x__xgafv=None)</code>
-  <pre>Get an ExperienceLocale given its id. See _Authentication and Authorization rules_ and _Get methods rules_ for more information about this method.
-
-Args:
-  accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
-  elId: string, REQUIRED. ExperienceLocale ID, as defined by Google. (required)
-  x__xgafv: string, V1 error format.
-
-Returns:
-  An object of the form:
-
-    { # An ExperienceLocale tracks the fulfillment of a Title in a country using a specific language, when delivered using component-based delivery. For example, a Title in Switzerland might have 3 ExperienceLocales: they both share the same country ("CH"), but each has different languages ("de", "fr", and "it"). Each ExperienceLocale is uniquely identified by an `el_id`, which is generated by Google. Externally, an ExperienceLocale can also be identified by partners using its EIDR IDs, AltCutID or `custom_id` (when provided).
-    "pphNames": [ # Name of the post-production houses that manage the ExperienceLocale.
-      "A String",
-    ],
-    "channelId": "A String", # YouTube Channel ID linked to the ExperienceLocale. Example: "UCRG64darCZhb".
-    "studioName": "A String", # Name of the studio that owns the ExperienceLocale.
-    "editLevelEidr": "A String", # Edit-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
-    "playableSequenceId": "A String", # PlayableSequenceID as defined in the EMA specs.
-    "presentationId": "A String", # PresentationID as defined in the EMA specs.
-    "priority": 3.14, # ExperienceLocale priority, as defined by Google. The higher the value, the higher the priority. Example: 90
-    "type": "A String", # Type of the Edit linked to the ExperienceLocale.
-    "status": "A String", # High-level status of the ExperienceLocale.
-    "titleLevelEidr": "A String", # Title-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
-    "trailerId": "A String", # Trailer ID, as defined by Google, linked to the trailer video in the ExperienceLocale. Example: 'gtry457_tr'.
-    "videoId": "A String", # Video ID, as defined by Google, linked to the feature video in the ExperienceLocale. Example: 'gtry456_xc'.
-    "approvedTime": "A String", # Timestamp when the ExperienceLocale was approved.
-    "inventoryId": "A String", # InventoryID as defined in the EMA specs.
-    "altCutId": "A String", # Alternative Cut ID, sometimes available in lieu of the main Edit-level EIDR ID. This is not an EIDR ID, but a Partner-provided ID. Example: "206346_79838".
-    "earliestAvailStartTime": "A String", # Timestamp of the earliest start date of the Avails linked to this ExperienceLocale.
-    "elId": "A String", # ID internally generated by Google to uniquely identify a ExperienceLocale. Example: 'KRZiVjY9h7t'
-    "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-    "language": "A String", # Language of the ExperienceLocale, using the "BCP 47" format. Examples: "en", "en-US", "es", "es-419".
-    "country": "A String", # Country where the ExperienceLocale is available, using the "ISO 3166-1 alpha-2" format. Example: "US".
-    "customIds": [ # List of custom IDs (defined by the partner) linked to this ExperienceLocale. Example: "R86241"
-      "A String",
-    ],
-    "normalizedPriority": "A String", # A simpler representation of the priority.
-    "createdTime": "A String", # Timestamp when the ExperienceLocale was created.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(accountId, pphNames=None, pageSize=None, editLevelEidr=None, x__xgafv=None, studioNames=None, pageToken=None, customId=None, status=None, titleLevelEidr=None, altCutId=None)</code>
-  <pre>List ExperienceLocales owned or managed by the partner. See _Authentication and Authorization rules_ and _List methods rules_ for more information about this method.
-
-Args:
-  accountId: string, REQUIRED. See _General rules_ for more information about this field. (required)
-  pphNames: string, See _List methods rules_ for info about this field. (repeated)
-  pageSize: integer, See _List methods rules_ for info about this field.
-  editLevelEidr: string, Filter ExperienceLocales that match a given edit-level EIDR.
-  x__xgafv: string, V1 error format.
-  studioNames: string, See _List methods rules_ for info about this field. (repeated)
-  pageToken: string, See _List methods rules_ for info about this field.
-  customId: string, Filter ExperienceLocales that match a case-insensitive, partner-specific custom id.
-  status: string, Filter ExperienceLocales that match one of the given status. (repeated)
-  titleLevelEidr: string, Filter ExperienceLocales that match a given title-level EIDR.
-  altCutId: string, Filter ExperienceLocales that match a case-insensitive, partner-specific Alternative Cut ID.
-
-Returns:
-  An object of the form:
-
-    { # Response to the 'ListExperienceLocales' method.
-    "nextPageToken": "A String", # See _List methods rules_ for info about this field.
-    "totalSize": 42, # See _List methods rules_ for more information about this field.
-    "experienceLocales": [ # List of ExperienceLocales that match the request criteria.
-      { # An ExperienceLocale tracks the fulfillment of a Title in a country using a specific language, when delivered using component-based delivery. For example, a Title in Switzerland might have 3 ExperienceLocales: they both share the same country ("CH"), but each has different languages ("de", "fr", and "it"). Each ExperienceLocale is uniquely identified by an `el_id`, which is generated by Google. Externally, an ExperienceLocale can also be identified by partners using its EIDR IDs, AltCutID or `custom_id` (when provided).
-        "pphNames": [ # Name of the post-production houses that manage the ExperienceLocale.
-          "A String",
-        ],
-        "channelId": "A String", # YouTube Channel ID linked to the ExperienceLocale. Example: "UCRG64darCZhb".
-        "studioName": "A String", # Name of the studio that owns the ExperienceLocale.
-        "editLevelEidr": "A String", # Edit-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-6".
-        "playableSequenceId": "A String", # PlayableSequenceID as defined in the EMA specs.
-        "presentationId": "A String", # PresentationID as defined in the EMA specs.
-        "priority": 3.14, # ExperienceLocale priority, as defined by Google. The higher the value, the higher the priority. Example: 90
-        "type": "A String", # Type of the Edit linked to the ExperienceLocale.
-        "status": "A String", # High-level status of the ExperienceLocale.
-        "titleLevelEidr": "A String", # Title-level EIDR ID. Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
-        "trailerId": "A String", # Trailer ID, as defined by Google, linked to the trailer video in the ExperienceLocale. Example: 'gtry457_tr'.
-        "videoId": "A String", # Video ID, as defined by Google, linked to the feature video in the ExperienceLocale. Example: 'gtry456_xc'.
-        "approvedTime": "A String", # Timestamp when the ExperienceLocale was approved.
-        "inventoryId": "A String", # InventoryID as defined in the EMA specs.
-        "altCutId": "A String", # Alternative Cut ID, sometimes available in lieu of the main Edit-level EIDR ID. This is not an EIDR ID, but a Partner-provided ID. Example: "206346_79838".
-        "earliestAvailStartTime": "A String", # Timestamp of the earliest start date of the Avails linked to this ExperienceLocale.
-        "elId": "A String", # ID internally generated by Google to uniquely identify a ExperienceLocale. Example: 'KRZiVjY9h7t'
-        "name": "A String", # Default Edit name, usually in the language of the country of origin. Example: "Googlers, The".
-        "language": "A String", # Language of the ExperienceLocale, using the "BCP 47" format. Examples: "en", "en-US", "es", "es-419".
-        "country": "A String", # Country where the ExperienceLocale is available, using the "ISO 3166-1 alpha-2" format. Example: "US".
-        "customIds": [ # List of custom IDs (defined by the partner) linked to this ExperienceLocale. Example: "R86241"
-          "A String",
-        ],
-        "normalizedPriority": "A String", # A simpler representation of the priority.
-        "createdTime": "A String", # Timestamp when the ExperienceLocale was created.
-      },
-    ],
-  }</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
diff --git a/docs/dyn/playmoviespartner_v1.accounts.orders.html b/docs/dyn/playmoviespartner_v1.accounts.orders.html
index ed1592a..1353fa1 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.orders.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.orders.html
@@ -189,8 +189,8 @@
   An object of the form:
 
     { # Response to the 'ListOrders' method.
-    "nextPageToken": "A String", # See _List methods rules_ for info about this field.
     "totalSize": 42, # See _List methods rules_ for more information about this field.
+    "nextPageToken": "A String", # See _List methods rules_ for info about this field.
     "orders": [ # List of Orders that match the request criteria.
       { # An Order tracks the fulfillment of an Edit when delivered using the
           # legacy, non-component-based delivery.
diff --git a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html
index 35b0b48..0708953 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.country.html
@@ -125,9 +125,7 @@
     "hasAudio51": True or False, # Whether the Edit has a 5.1 channel audio track.
     "hasInfoCards": True or False, # Whether the Edit has info cards.
     "type": "A String", # Edit type, like Movie, Episode or Season.
-    "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit.
-        # Only available for TV Edits.
-        # Example: 'ster23ex'
+    "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
     "titleLevelEidr": "A String", # Title-level EIDR ID.
         # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
     "hasSdOffer": True or False, # Whether the Edit has a SD offer.
@@ -151,6 +149,9 @@
     "country": "A String", # Country where Edit is available in ISO 3166-1 alpha-2 country
         # code.
         # Example: "US".
+    "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit.
+        # Only available for TV Edits.
+        # Example: 'ster23ex'
     "seasonName": "A String", # Default Season name, usually in the language of the country of
         # origin.
         # Only available for TV Edits
@@ -158,7 +159,6 @@
     "audioTracks": [ # Audio tracks available for this Edit.
       "A String",
     ],
-    "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
     "showName": "A String", # Default Show name, usually in the language of the country of
         # origin.
         # Only available for TV Edits
diff --git a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
index 4007c16..dc0c19f 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
@@ -148,9 +148,7 @@
         "hasAudio51": True or False, # Whether the Edit has a 5.1 channel audio track.
         "hasInfoCards": True or False, # Whether the Edit has info cards.
         "type": "A String", # Edit type, like Movie, Episode or Season.
-        "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit.
-            # Only available for TV Edits.
-            # Example: 'ster23ex'
+        "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
         "titleLevelEidr": "A String", # Title-level EIDR ID.
             # Example: "10.5240/1489-49A2-3956-4B2D-FE16-5".
         "hasSdOffer": True or False, # Whether the Edit has a SD offer.
@@ -174,6 +172,9 @@
         "country": "A String", # Country where Edit is available in ISO 3166-1 alpha-2 country
             # code.
             # Example: "US".
+        "seasonId": "A String", # Google-generated ID identifying the season linked to the Edit.
+            # Only available for TV Edits.
+            # Example: 'ster23ex'
         "seasonName": "A String", # Default Season name, usually in the language of the country of
             # origin.
             # Only available for TV Edits
@@ -181,7 +182,6 @@
         "audioTracks": [ # Audio tracks available for this Edit.
           "A String",
         ],
-        "hasVodOffer": True or False, # Whether the Edit has a VOD offer.
         "showName": "A String", # Default Show name, usually in the language of the country of
             # origin.
             # Only available for TV Edits
diff --git a/docs/dyn/plus_v1.activities.html b/docs/dyn/plus_v1.activities.html
index 386d1c6..d52a12b 100644
--- a/docs/dyn/plus_v1.activities.html
+++ b/docs/dyn/plus_v1.activities.html
@@ -109,7 +109,6 @@
     },
     "title": "A String", # Title of this activity.
     "url": "A String", # The link to this activity.
-    "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
     "object": { # The object of this activity.
       "resharers": { # People who reshared this activity.
         "totalItems": 42, # Total number of people who reshared this activity.
@@ -117,97 +116,75 @@
       },
       "attachments": [ # The media objects attached to this activity.
         {
-          "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
-          "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
-            {
-              "url": "A String", # URL of the webpage containing the image.
-              "image": { # Image resource.
-                "url": "A String", # Image url.
-                "width": 42, # The width, in pixels, of the linked resource.
-                "type": "A String", # Media type of the link.
-                "height": 42, # The height, in pixels, of the linked resource.
-              },
-              "description": "A String", # Potential name of the thumbnail.
-            },
-          ],
-          "fullImage": { # The full image URL for photo attachments.
-            "url": "A String", # URL of the image.
+          "displayName": "A String", # The title of the attachment (such as a photo caption or an article title).
+          "contentsource": { # If the attachment is audio, the link to the content.
+            "url": "A String", # URL of the link.
+            "type": "A String", # Media type of the link.
+          },
+          "fullImage": { # The full image url for photo attachments.
+            "url": "A String", # URL of the link.
             "width": 42, # The width, in pixels, of the linked resource.
             "type": "A String", # Media type of the link.
             "height": 42, # The height, in pixels, of the linked resource.
           },
-          "url": "A String", # The link to the attachment, which should be of type text/html.
+          "url": "A String", # The link to the attachment, should be of type text/html.
           "image": { # The preview image for photos or videos.
-            "url": "A String", # Image URL.
+            "url": "A String", # URL of the link.
             "width": 42, # The width, in pixels, of the linked resource.
             "type": "A String", # Media type of the link.
             "height": 42, # The height, in pixels, of the linked resource.
           },
-          "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+          "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article.
           "embed": { # If the attachment is a video, the embeddable link.
             "url": "A String", # URL of the link.
             "type": "A String", # Media type of the link.
           },
-          "id": "A String", # The ID of the attachment.
-          "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+          "id": "A String", # The ID of the media object's resource.
+          "categories": [ # Specifies zero or more categories the attachment belongs to.
+            {
+              "term": "A String", # The tag, e.g. album.
+              "schema": "A String", # Domain of schema, e.g. http://google.com.
+              "label": "A String", # The category label, suitable for display (e.g. "album cover").
+            },
+          ],
+          "objectType": "A String", # The type of media object. Possible values are:
               # - "photo" - A photo.
-              # - "album" - A photo album.
               # - "video" - A video.
               # - "article" - An article, specified by a link.
         },
       ],
-      "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+      "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When updating an activity's content, use the value of originalContent as the starting point from which to make edits.
       "plusoners": { # People who +1'd this activity.
         "totalItems": 42, # Total number of people who +1'd this activity.
         "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
       },
-      "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
-        "displayName": "A String", # The original actor's name, which is suitable for display.
+      "actor": { # If this activity's object is itself another activity (for example, when a person reshares an activity), this property specifies the original activity's actor.
         "url": "A String", # A link to the original actor's Google profile.
         "image": { # The image representation of the original actor.
           "url": "A String", # A URL that points to a thumbnail photo of the original actor.
         },
-        "clientSpecificActorInfo": { # Actor info specific to particular clients.
-          "youtubeActorInfo": { # Actor info specific to YouTube clients.
-            "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-          },
-        },
-        "verification": { # Verification status of actor.
-          "adHocVerified": "A String", # Verification for one-time or manual processes.
-        },
+        "displayName": "A String", # The original actor's name, suitable for display.
         "id": "A String", # ID of the original actor.
       },
-      "content": "A String", # The HTML-formatted content, which is suitable for display.
+      "content": "A String", # The HTML-formatted content, suitable for display. When creating or updating an activity, this value must be supplied as plain text in the request. If successful, the response will contain the HTML-formatted content. When updating an activity, use originalContent as the starting value, then assign the updated text to this property.
       "url": "A String", # The URL that points to the linked resource.
       "replies": { # Comments in reply to this activity.
         "totalItems": 42, # Total number of comments on this activity.
         "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
       },
-      "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
-      "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+      "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity being reshared.
+      "objectType": "A String", # The type of the object. Possible values are:
           # - "note" - Textual content.
           # - "activity" - A Google+ activity.
     },
     "placeId": "A String", # ID of the place where this activity occurred.
     "actor": { # The person who performed this activity.
-      "displayName": "A String", # The name of the actor, suitable for display.
-      "name": { # An object representation of the individual components of name.
-        "givenName": "A String", # The given name ("first name") of the actor.
-        "familyName": "A String", # The family name ("last name") of the actor.
-      },
       "url": "A String", # The link to the actor's Google profile.
       "image": { # The image representation of the actor.
-        "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        "url": "A String", # The URL of the actor's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
       },
-      "clientSpecificActorInfo": { # Actor info specific to particular clients.
-        "youtubeActorInfo": { # Actor info specific to YouTube clients.
-          "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-        },
-      },
-      "verification": { # Verification status of actor.
-        "adHocVerified": "A String", # Verification for one-time or manual processes.
-      },
-      "id": "A String", # The ID of the actor's Person resource.
+      "displayName": "A String", # The name of the actor, suitable for display.
+      "id": "A String", # The ID of the actor's person resource.
     },
     "id": "A String", # The ID of this activity.
     "access": { # Identifies who has access to see this activity.
@@ -217,35 +194,23 @@
               # - "person" - Access to an individual.
               # - "circle" - Access to members of a circle.
               # - "myCircles" - Access to members of all the person's circles.
-              # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
-              # - "domain" - Access to members of the person's Google Apps domain.
+              # - "extendedCircles" - Access to members of everyone in a person's circles, plus all of the people in their circles.
               # - "public" - Access to anyone on the web.
-          "displayName": "A String", # A descriptive name for this entry. Suitable for display.
           "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
         },
       ],
       "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
       "description": "A String", # Description of the access granted, suitable for display.
     },
-    "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+    "verb": "A String", # This activity's verb, indicating what action was performed. Possible values are:
         # - "post" - Publish content to the stream.
+        # - "checkin" - Check in to a location.
         # - "share" - Reshare an activity.
-    "etag": "A String", # ETag of this response for caching purposes.
+    "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
     "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
-    "location": { # The location where this activity occurred.
-      "position": { # The position of the place.
-        "latitude": 3.14, # The latitude of this position.
-        "longitude": 3.14, # The longitude of this position.
-      },
-      "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
-      "displayName": "A String", # The display name of the place.
-      "id": "A String", # The id of the place.
-      "address": { # The physical address of the place.
-        "formatted": "A String", # The formatted address for display.
-      },
-    },
     "address": "A String", # Street address where this activity occurred.
     "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+    "placeholder": True or False, # True if this activity is a placeholder.
     "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
     "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
   }</pre>
@@ -260,16 +225,16 @@
   collection: string, The collection of activities to list. (required)
     Allowed values
       public - All public activities created by the specified user.
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
-  maxResults: integer, The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of activities to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
     "kind": "plus#activityFeed", # Identifies this resource as a collection of activities. Value: "plus#activityFeed".
-    "title": "A String", # The title of this collection of activities, which is a truncated portion of the content.
+    "title": "A String", # The title of this collection of activities.
     "items": [ # The activities in this page of results.
       {
         "placeName": "A String", # Name of the place where this activity occurred.
@@ -280,7 +245,6 @@
         },
         "title": "A String", # Title of this activity.
         "url": "A String", # The link to this activity.
-        "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
         "object": { # The object of this activity.
           "resharers": { # People who reshared this activity.
             "totalItems": 42, # Total number of people who reshared this activity.
@@ -288,97 +252,75 @@
           },
           "attachments": [ # The media objects attached to this activity.
             {
-              "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
-              "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
-                {
-                  "url": "A String", # URL of the webpage containing the image.
-                  "image": { # Image resource.
-                    "url": "A String", # Image url.
-                    "width": 42, # The width, in pixels, of the linked resource.
-                    "type": "A String", # Media type of the link.
-                    "height": 42, # The height, in pixels, of the linked resource.
-                  },
-                  "description": "A String", # Potential name of the thumbnail.
-                },
-              ],
-              "fullImage": { # The full image URL for photo attachments.
-                "url": "A String", # URL of the image.
+              "displayName": "A String", # The title of the attachment (such as a photo caption or an article title).
+              "contentsource": { # If the attachment is audio, the link to the content.
+                "url": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+              },
+              "fullImage": { # The full image url for photo attachments.
+                "url": "A String", # URL of the link.
                 "width": 42, # The width, in pixels, of the linked resource.
                 "type": "A String", # Media type of the link.
                 "height": 42, # The height, in pixels, of the linked resource.
               },
-              "url": "A String", # The link to the attachment, which should be of type text/html.
+              "url": "A String", # The link to the attachment, should be of type text/html.
               "image": { # The preview image for photos or videos.
-                "url": "A String", # Image URL.
+                "url": "A String", # URL of the link.
                 "width": 42, # The width, in pixels, of the linked resource.
                 "type": "A String", # Media type of the link.
                 "height": 42, # The height, in pixels, of the linked resource.
               },
-              "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+              "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article.
               "embed": { # If the attachment is a video, the embeddable link.
                 "url": "A String", # URL of the link.
                 "type": "A String", # Media type of the link.
               },
-              "id": "A String", # The ID of the attachment.
-              "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+              "id": "A String", # The ID of the media object's resource.
+              "categories": [ # Specifies zero or more categories the attachment belongs to.
+                {
+                  "term": "A String", # The tag, e.g. album.
+                  "schema": "A String", # Domain of schema, e.g. http://google.com.
+                  "label": "A String", # The category label, suitable for display (e.g. "album cover").
+                },
+              ],
+              "objectType": "A String", # The type of media object. Possible values are:
                   # - "photo" - A photo.
-                  # - "album" - A photo album.
                   # - "video" - A video.
                   # - "article" - An article, specified by a link.
             },
           ],
-          "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+          "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When updating an activity's content, use the value of originalContent as the starting point from which to make edits.
           "plusoners": { # People who +1'd this activity.
             "totalItems": 42, # Total number of people who +1'd this activity.
             "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
           },
-          "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
-            "displayName": "A String", # The original actor's name, which is suitable for display.
+          "actor": { # If this activity's object is itself another activity (for example, when a person reshares an activity), this property specifies the original activity's actor.
             "url": "A String", # A link to the original actor's Google profile.
             "image": { # The image representation of the original actor.
               "url": "A String", # A URL that points to a thumbnail photo of the original actor.
             },
-            "clientSpecificActorInfo": { # Actor info specific to particular clients.
-              "youtubeActorInfo": { # Actor info specific to YouTube clients.
-                "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-              },
-            },
-            "verification": { # Verification status of actor.
-              "adHocVerified": "A String", # Verification for one-time or manual processes.
-            },
+            "displayName": "A String", # The original actor's name, suitable for display.
             "id": "A String", # ID of the original actor.
           },
-          "content": "A String", # The HTML-formatted content, which is suitable for display.
+          "content": "A String", # The HTML-formatted content, suitable for display. When creating or updating an activity, this value must be supplied as plain text in the request. If successful, the response will contain the HTML-formatted content. When updating an activity, use originalContent as the starting value, then assign the updated text to this property.
           "url": "A String", # The URL that points to the linked resource.
           "replies": { # Comments in reply to this activity.
             "totalItems": 42, # Total number of comments on this activity.
             "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
           },
-          "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
-          "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+          "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity being reshared.
+          "objectType": "A String", # The type of the object. Possible values are:
               # - "note" - Textual content.
               # - "activity" - A Google+ activity.
         },
         "placeId": "A String", # ID of the place where this activity occurred.
         "actor": { # The person who performed this activity.
-          "displayName": "A String", # The name of the actor, suitable for display.
-          "name": { # An object representation of the individual components of name.
-            "givenName": "A String", # The given name ("first name") of the actor.
-            "familyName": "A String", # The family name ("last name") of the actor.
-          },
           "url": "A String", # The link to the actor's Google profile.
           "image": { # The image representation of the actor.
-            "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+            "url": "A String", # The URL of the actor's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
           },
-          "clientSpecificActorInfo": { # Actor info specific to particular clients.
-            "youtubeActorInfo": { # Actor info specific to YouTube clients.
-              "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-            },
-          },
-          "verification": { # Verification status of actor.
-            "adHocVerified": "A String", # Verification for one-time or manual processes.
-          },
-          "id": "A String", # The ID of the actor's Person resource.
+          "displayName": "A String", # The name of the actor, suitable for display.
+          "id": "A String", # The ID of the actor's person resource.
         },
         "id": "A String", # The ID of this activity.
         "access": { # Identifies who has access to see this activity.
@@ -388,43 +330,30 @@
                   # - "person" - Access to an individual.
                   # - "circle" - Access to members of a circle.
                   # - "myCircles" - Access to members of all the person's circles.
-                  # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
-                  # - "domain" - Access to members of the person's Google Apps domain.
+                  # - "extendedCircles" - Access to members of everyone in a person's circles, plus all of the people in their circles.
                   # - "public" - Access to anyone on the web.
-              "displayName": "A String", # A descriptive name for this entry. Suitable for display.
               "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
             },
           ],
           "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
           "description": "A String", # Description of the access granted, suitable for display.
         },
-        "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+        "verb": "A String", # This activity's verb, indicating what action was performed. Possible values are:
             # - "post" - Publish content to the stream.
+            # - "checkin" - Check in to a location.
             # - "share" - Reshare an activity.
-        "etag": "A String", # ETag of this response for caching purposes.
+        "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
         "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
-        "location": { # The location where this activity occurred.
-          "position": { # The position of the place.
-            "latitude": 3.14, # The latitude of this position.
-            "longitude": 3.14, # The longitude of this position.
-          },
-          "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
-          "displayName": "A String", # The display name of the place.
-          "id": "A String", # The id of the place.
-          "address": { # The physical address of the place.
-            "formatted": "A String", # The formatted address for display.
-          },
-        },
         "address": "A String", # Street address where this activity occurred.
         "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+        "placeholder": True or False, # True if this activity is a placeholder.
         "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
         "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
       },
     ],
     "updated": "A String", # The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.
     "nextLink": "A String", # Link to the next page of activities.
-    "etag": "A String", # ETag of this response for caching purposes.
-    "id": "A String", # The ID of this collection of activities. Deprecated.
+    "id": "A String", # The ID of this collection of activities.
     "selfLink": "A String", # Link to this activity resource.
   }</pre>
 </div>
@@ -453,17 +382,17 @@
     Allowed values
       best - Sort activities by relevance to the user, most relevant first.
       recent - Sort activities by published date, most recent first.
-  language: string, Specify the preferred language to search with. See search language codes for available values.
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token can be of any length.
-  maxResults: integer, The maximum number of activities to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  language: string, Specify the preferred language to search with. See Language Codes for available values.
+  pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token may be of any length.
+  maxResults: integer, The maximum number of activities to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
     "kind": "plus#activityFeed", # Identifies this resource as a collection of activities. Value: "plus#activityFeed".
-    "title": "A String", # The title of this collection of activities, which is a truncated portion of the content.
+    "title": "A String", # The title of this collection of activities.
     "items": [ # The activities in this page of results.
       {
         "placeName": "A String", # Name of the place where this activity occurred.
@@ -474,7 +403,6 @@
         },
         "title": "A String", # Title of this activity.
         "url": "A String", # The link to this activity.
-        "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
         "object": { # The object of this activity.
           "resharers": { # People who reshared this activity.
             "totalItems": 42, # Total number of people who reshared this activity.
@@ -482,97 +410,75 @@
           },
           "attachments": [ # The media objects attached to this activity.
             {
-              "displayName": "A String", # The title of the attachment, such as a photo caption or an article title.
-              "thumbnails": [ # If the attachment is an album, this property is a list of potential additional thumbnails from the album.
-                {
-                  "url": "A String", # URL of the webpage containing the image.
-                  "image": { # Image resource.
-                    "url": "A String", # Image url.
-                    "width": 42, # The width, in pixels, of the linked resource.
-                    "type": "A String", # Media type of the link.
-                    "height": 42, # The height, in pixels, of the linked resource.
-                  },
-                  "description": "A String", # Potential name of the thumbnail.
-                },
-              ],
-              "fullImage": { # The full image URL for photo attachments.
-                "url": "A String", # URL of the image.
+              "displayName": "A String", # The title of the attachment (such as a photo caption or an article title).
+              "contentsource": { # If the attachment is audio, the link to the content.
+                "url": "A String", # URL of the link.
+                "type": "A String", # Media type of the link.
+              },
+              "fullImage": { # The full image url for photo attachments.
+                "url": "A String", # URL of the link.
                 "width": 42, # The width, in pixels, of the linked resource.
                 "type": "A String", # Media type of the link.
                 "height": 42, # The height, in pixels, of the linked resource.
               },
-              "url": "A String", # The link to the attachment, which should be of type text/html.
+              "url": "A String", # The link to the attachment, should be of type text/html.
               "image": { # The preview image for photos or videos.
-                "url": "A String", # Image URL.
+                "url": "A String", # URL of the link.
                 "width": 42, # The width, in pixels, of the linked resource.
                 "type": "A String", # Media type of the link.
                 "height": 42, # The height, in pixels, of the linked resource.
               },
-              "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article. It can also include descriptions for other types.
+              "content": "A String", # If the attachment is an article, this property contains a snippet of text from the article.
               "embed": { # If the attachment is a video, the embeddable link.
                 "url": "A String", # URL of the link.
                 "type": "A String", # Media type of the link.
               },
-              "id": "A String", # The ID of the attachment.
-              "objectType": "A String", # The type of media object. Possible values include, but are not limited to, the following values:
+              "id": "A String", # The ID of the media object's resource.
+              "categories": [ # Specifies zero or more categories the attachment belongs to.
+                {
+                  "term": "A String", # The tag, e.g. album.
+                  "schema": "A String", # Domain of schema, e.g. http://google.com.
+                  "label": "A String", # The category label, suitable for display (e.g. "album cover").
+                },
+              ],
+              "objectType": "A String", # The type of media object. Possible values are:
                   # - "photo" - A photo.
-                  # - "album" - A photo album.
                   # - "video" - A video.
                   # - "article" - An article, specified by a link.
             },
           ],
-          "originalContent": "A String", # The content (text) as provided by the author, which is stored without any HTML formatting. When creating or updating an activity, this value must be supplied as plain text in the request.
+          "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When updating an activity's content, use the value of originalContent as the starting point from which to make edits.
           "plusoners": { # People who +1'd this activity.
             "totalItems": 42, # Total number of people who +1'd this activity.
             "selfLink": "A String", # The URL for the collection of people who +1'd this activity.
           },
-          "actor": { # If this activity's object is itself another activity, such as when a person reshares an activity, this property specifies the original activity's actor.
-            "displayName": "A String", # The original actor's name, which is suitable for display.
+          "actor": { # If this activity's object is itself another activity (for example, when a person reshares an activity), this property specifies the original activity's actor.
             "url": "A String", # A link to the original actor's Google profile.
             "image": { # The image representation of the original actor.
               "url": "A String", # A URL that points to a thumbnail photo of the original actor.
             },
-            "clientSpecificActorInfo": { # Actor info specific to particular clients.
-              "youtubeActorInfo": { # Actor info specific to YouTube clients.
-                "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-              },
-            },
-            "verification": { # Verification status of actor.
-              "adHocVerified": "A String", # Verification for one-time or manual processes.
-            },
+            "displayName": "A String", # The original actor's name, suitable for display.
             "id": "A String", # ID of the original actor.
           },
-          "content": "A String", # The HTML-formatted content, which is suitable for display.
+          "content": "A String", # The HTML-formatted content, suitable for display. When creating or updating an activity, this value must be supplied as plain text in the request. If successful, the response will contain the HTML-formatted content. When updating an activity, use originalContent as the starting value, then assign the updated text to this property.
           "url": "A String", # The URL that points to the linked resource.
           "replies": { # Comments in reply to this activity.
             "totalItems": 42, # Total number of comments on this activity.
             "selfLink": "A String", # The URL for the collection of comments in reply to this activity.
           },
-          "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity that is being reshared.
-          "objectType": "A String", # The type of the object. Possible values include, but are not limited to, the following values:
+          "id": "A String", # The ID of the object. When resharing an activity, this is the ID of the activity being reshared.
+          "objectType": "A String", # The type of the object. Possible values are:
               # - "note" - Textual content.
               # - "activity" - A Google+ activity.
         },
         "placeId": "A String", # ID of the place where this activity occurred.
         "actor": { # The person who performed this activity.
-          "displayName": "A String", # The name of the actor, suitable for display.
-          "name": { # An object representation of the individual components of name.
-            "givenName": "A String", # The given name ("first name") of the actor.
-            "familyName": "A String", # The family name ("last name") of the actor.
-          },
           "url": "A String", # The link to the actor's Google profile.
           "image": { # The image representation of the actor.
-            "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+            "url": "A String", # The URL of the actor's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
           },
-          "clientSpecificActorInfo": { # Actor info specific to particular clients.
-            "youtubeActorInfo": { # Actor info specific to YouTube clients.
-              "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-            },
-          },
-          "verification": { # Verification status of actor.
-            "adHocVerified": "A String", # Verification for one-time or manual processes.
-          },
-          "id": "A String", # The ID of the actor's Person resource.
+          "displayName": "A String", # The name of the actor, suitable for display.
+          "id": "A String", # The ID of the actor's person resource.
         },
         "id": "A String", # The ID of this activity.
         "access": { # Identifies who has access to see this activity.
@@ -582,43 +488,30 @@
                   # - "person" - Access to an individual.
                   # - "circle" - Access to members of a circle.
                   # - "myCircles" - Access to members of all the person's circles.
-                  # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
-                  # - "domain" - Access to members of the person's Google Apps domain.
+                  # - "extendedCircles" - Access to members of everyone in a person's circles, plus all of the people in their circles.
                   # - "public" - Access to anyone on the web.
-              "displayName": "A String", # A descriptive name for this entry. Suitable for display.
               "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
             },
           ],
           "kind": "plus#acl", # Identifies this resource as a collection of access controls. Value: "plus#acl".
           "description": "A String", # Description of the access granted, suitable for display.
         },
-        "verb": "A String", # This activity's verb, which indicates the action that was performed. Possible values include, but are not limited to, the following values:
+        "verb": "A String", # This activity's verb, indicating what action was performed. Possible values are:
             # - "post" - Publish content to the stream.
+            # - "checkin" - Check in to a location.
             # - "share" - Reshare an activity.
-        "etag": "A String", # ETag of this response for caching purposes.
+        "geocode": "A String", # Latitude and longitude where this activity occurred. Format is latitude followed by longitude, space separated.
         "radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.
-        "location": { # The location where this activity occurred.
-          "position": { # The position of the place.
-            "latitude": 3.14, # The latitude of this position.
-            "longitude": 3.14, # The longitude of this position.
-          },
-          "kind": "plus#place", # Identifies this resource as a place. Value: "plus#place".
-          "displayName": "A String", # The display name of the place.
-          "id": "A String", # The id of the place.
-          "address": { # The physical address of the place.
-            "formatted": "A String", # The formatted address for display.
-          },
-        },
         "address": "A String", # Street address where this activity occurred.
         "crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.
+        "placeholder": True or False, # True if this activity is a placeholder.
         "annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.
         "published": "A String", # The time at which this activity was initially published. Formatted as an RFC 3339 timestamp.
       },
     ],
     "updated": "A String", # The time at which this collection of activities was last updated. Formatted as an RFC 3339 timestamp.
     "nextLink": "A String", # Link to the next page of activities.
-    "etag": "A String", # ETag of this response for caching purposes.
-    "id": "A String", # The ID of this collection of activities. Deprecated.
+    "id": "A String", # The ID of this collection of activities.
     "selfLink": "A String", # Link to this activity resource.
   }</pre>
 </div>
diff --git a/docs/dyn/plus_v1.comments.html b/docs/dyn/plus_v1.comments.html
index 7565bdb..e0e0e1b 100644
--- a/docs/dyn/plus_v1.comments.html
+++ b/docs/dyn/plus_v1.comments.html
@@ -78,7 +78,7 @@
   <code><a href="#get">get(commentId)</a></code></p>
 <p class="firstline">Get a comment.</p>
 <p class="toc_element">
-  <code><a href="#list">list(activityId, pageToken=None, maxResults=None, sortOrder=None)</a></code></p>
+  <code><a href="#list">list(activityId, pageToken=None, maxResults=None)</a></code></p>
 <p class="firstline">List all of the comments for an activity.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -97,40 +97,27 @@
     {
     "inReplyTo": [ # The activity this comment replied to.
       {
-        "url": "A String", # The URL of the activity.
-        "id": "A String", # The ID of the activity.
+        "url": "A String", # The url of the activity.
+        "id": "A String", # The id of the activity.
       },
     ],
     "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
-    "plusoners": { # People who +1'd this comment.
-      "totalItems": 42, # Total number of people who +1'd this comment.
-    },
     "object": { # The object of this comment.
-      "content": "A String", # The HTML-formatted content, suitable for display.
-      "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+      "content": "A String", # The content of this comment.
       "objectType": "comment", # The object type of this comment. Possible values are:
           # - "comment" - A comment in reply to an activity.
     },
     "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
     "actor": { # The person who posted this comment.
-      "displayName": "A String", # The name of this actor, suitable for display.
-      "url": "A String", # A link to the Person resource for this actor.
+      "url": "A String", # A link to the person resource for this actor.
       "image": { # The image representation of this actor.
-        "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+        "url": "A String", # The URL of the actor's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
       },
-      "clientSpecificActorInfo": { # Actor info specific to particular clients.
-        "youtubeActorInfo": { # Actor info specific to YouTube clients.
-          "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-        },
-      },
-      "verification": { # Verification status of actor.
-        "adHocVerified": "A String", # Verification for one-time or manual processes.
-      },
+      "displayName": "A String", # The name of this actor, suitable for display.
       "id": "A String", # The ID of the actor.
     },
     "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
         # - "post" - Publish content to the stream.
-    "etag": "A String", # ETag of this response for caching purposes.
     "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
     "id": "A String", # The ID of this comment.
     "selfLink": "A String", # Link to this comment resource.
@@ -138,63 +125,46 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(activityId, pageToken=None, maxResults=None, sortOrder=None)</code>
+    <code class="details" id="list">list(activityId, pageToken=None, maxResults=None)</code>
   <pre>List all of the comments for an activity.
 
 Args:
   activityId: string, The ID of the activity to get comments for. (required)
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
-  maxResults: integer, The maximum number of comments to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
-  sortOrder: string, The order in which to sort the list of comments.
-    Allowed values
-      ascending - Sort oldest comments first.
-      descending - Sort newest comments first.
+  pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of comments to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
     "kind": "plus#commentFeed", # Identifies this resource as a collection of comments. Value: "plus#commentFeed".
     "title": "A String", # The title of this collection of comments.
     "items": [ # The comments in this page of results.
       {
         "inReplyTo": [ # The activity this comment replied to.
           {
-            "url": "A String", # The URL of the activity.
-            "id": "A String", # The ID of the activity.
+            "url": "A String", # The url of the activity.
+            "id": "A String", # The id of the activity.
           },
         ],
         "kind": "plus#comment", # Identifies this resource as a comment. Value: "plus#comment".
-        "plusoners": { # People who +1'd this comment.
-          "totalItems": 42, # Total number of people who +1'd this comment.
-        },
         "object": { # The object of this comment.
-          "content": "A String", # The HTML-formatted content, suitable for display.
-          "originalContent": "A String", # The content (text) as provided by the author, stored without any HTML formatting. When creating or updating a comment, this value must be supplied as plain text in the request.
+          "content": "A String", # The content of this comment.
           "objectType": "comment", # The object type of this comment. Possible values are:
               # - "comment" - A comment in reply to an activity.
         },
         "updated": "A String", # The time at which this comment was last updated. Formatted as an RFC 3339 timestamp.
         "actor": { # The person who posted this comment.
-          "displayName": "A String", # The name of this actor, suitable for display.
-          "url": "A String", # A link to the Person resource for this actor.
+          "url": "A String", # A link to the person resource for this actor.
           "image": { # The image representation of this actor.
-            "url": "A String", # The URL of the actor's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+            "url": "A String", # The URL of the actor's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
           },
-          "clientSpecificActorInfo": { # Actor info specific to particular clients.
-            "youtubeActorInfo": { # Actor info specific to YouTube clients.
-              "channelId": "A String", # ID of the YouTube channel owned by the Actor.
-            },
-          },
-          "verification": { # Verification status of actor.
-            "adHocVerified": "A String", # Verification for one-time or manual processes.
-          },
+          "displayName": "A String", # The name of this actor, suitable for display.
           "id": "A String", # The ID of the actor.
         },
         "verb": "post", # This comment's verb, indicating what action was performed. Possible values are:
             # - "post" - Publish content to the stream.
-        "etag": "A String", # ETag of this response for caching purposes.
         "published": "A String", # The time at which this comment was initially published. Formatted as an RFC 3339 timestamp.
         "id": "A String", # The ID of this comment.
         "selfLink": "A String", # Link to this comment resource.
@@ -202,7 +172,6 @@
     ],
     "updated": "A String", # The time at which this collection of comments was last updated. Formatted as an RFC 3339 timestamp.
     "nextLink": "A String", # Link to the next page of activities.
-    "etag": "A String", # ETag of this response for caching purposes.
     "id": "A String", # The ID of this collection of comments.
   }</pre>
 </div>
diff --git a/docs/dyn/plus_v1.people.html b/docs/dyn/plus_v1.people.html
index e23259e..9e4638e 100644
--- a/docs/dyn/plus_v1.people.html
+++ b/docs/dyn/plus_v1.people.html
@@ -76,10 +76,7 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(userId)</a></code></p>
-<p class="firstline">Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.</p>
-<p class="toc_element">
-  <code><a href="#list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</a></code></p>
-<p class="firstline">List all of the people in the specified collection.</p>
+<p class="firstline">Get a person's profile.</p>
 <p class="toc_element">
   <code><a href="#listByActivity">listByActivity(activityId, collection, pageToken=None, maxResults=None)</a></code></p>
 <p class="firstline">List all of the people in the specified collection for a particular activity.</p>
@@ -87,9 +84,6 @@
   <code><a href="#listByActivity_next">listByActivity_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</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>
-<p class="toc_element">
   <code><a href="#search">search(query, pageToken=None, language=None, maxResults=None)</a></code></p>
 <p class="firstline">Search all public profiles.</p>
 <p class="toc_element">
@@ -98,7 +92,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(userId)</code>
-  <pre>Get a person's profile. If your app uses scope https://www.googleapis.com/auth/plus.login, this method is guaranteed to return ageRange and language.
+  <pre>Get a person's profile.
 
 Args:
   userId: string, The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user. (required)
@@ -107,23 +101,7 @@
   An object of the form:
 
     {
-    "braggingRights": "A String", # The "bragging rights" line of this person.
-    "image": { # The representation of the person's profile photo.
-      "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
-      "isDefault": True or False, # Whether the person's profile photo is the default one
-    },
-    "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
-    "id": "A String", # The ID of this person.
-    "occupation": "A String", # The occupation of this person.
-    "verified": True or False, # Whether the person or Google+ Page has been verified.
-    "tagline": "A String", # The brief description (tagline) of this person.
-    "currentLocation": "A String", # (this field is not currently used)
-    "etag": "A String", # ETag of this response for caching purposes.
-    "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
-    "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
-        # - "person" - represents an actual person.
-        # - "page" - represents a page.
-    "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+    "relationshipStatus": "A String", # The person's relationship status. Possible values are:
         # - "single" - Person is single.
         # - "in_a_relationship" - Person is in a relationship.
         # - "engaged" - Person is engaged.
@@ -133,42 +111,23 @@
         # - "widowed" - Person is widowed.
         # - "in_domestic_partnership" - Person is in a domestic partnership.
         # - "in_civil_union" - Person is in a civil union.
-    "aboutMe": "A String", # A short biography for this person.
-    "placesLived": [ # A list of places where this person has lived.
-      {
-        "primary": True or False, # If "true", this place of residence is this person's primary residence.
-        "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
-      },
-    ],
-    "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
-    "nickname": "A String", # The nickname of this person.
-    "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
-      {
-        "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
-            # - "account" - Google account email address.
-            # - "home" - Home email address.
-            # - "work" - Work email address.
-            # - "other" - Other.
-        "value": "A String", # The email address.
-      },
-    ],
     "organizations": [ # A list of current or past organizations with which this person is associated.
       {
-        "startDate": "A String", # The date that the person joined this organization.
-        "endDate": "A String", # The date that the person left this organization.
-        "description": "A String", # A short description of the person's role in this organization. Deprecated.
+        "startDate": "A String", # The date the person joined this organization.
+        "endDate": "A String", # The date the person left this organization.
+        "description": "A String", # A short description of the person's role in this organization.
         "title": "A String", # The person's job title or role within the organization.
-        "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
-        "location": "A String", # The location of this organization. Deprecated.
-        "department": "A String", # The department within the organization. Deprecated.
-        "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+        "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
+        "location": "A String", # The location of this organization.
+        "department": "A String", # The department within the organization.
+        "type": "A String", # The type of organization. Possible values are:
             # - "work" - Work.
             # - "school" - School.
         "name": "A String", # The name of the organization.
       },
     ],
     "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
-    "displayName": "A String", # The name of this person, which is suitable for display.
+    "displayName": "A String", # The name of this person, suitable for display.
     "name": { # An object representation of the individual components of a person's name.
       "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
       "middleName": "A String", # The middle name of this person.
@@ -177,192 +136,52 @@
       "givenName": "A String", # The given name (first name) of this person.
       "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
     },
-    "language": "A String", # The user's preferred language for rendering.
-    "skills": "A String", # The person's skills.
-    "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+    "url": "A String", # The URL of this person's profile.
+    "gender": "A String", # The person's gender. Possible values are:
         # - "male" - Male gender.
         # - "female" - Female gender.
         # - "other" - Other.
-    "cover": { # The cover photo content.
-      "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
-          # - "banner" - One large image banner.
-      "coverInfo": { # Extra information about the cover photo.
-        "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
-        "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
+    "aboutMe": "A String", # A short biography for this person.
+    "tagline": "A String", # The brief description (tagline) of this person.
+    "placesLived": [ # A list of places where this person has lived.
+      {
+        "primary": True or False, # If "true", this place of residence is this person's primary residence.
+        "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
       },
-      "coverPhoto": { # The person's primary cover image.
-        "url": "A String", # The URL of the image.
-        "width": 42, # The width of the image.
-        "height": 42, # The height of the image.
+    ],
+    "emails": [ # A list of email addresses for this person.
+      {
+        "type": "A String", # The type of address. Possible values are:
+            # - "home" - Home email address.
+            # - "work" - Work email address.
+            # - "other" - Other.
+        "primary": True or False, # If "true", indicates this email address is the person's primary one.
+        "value": "A String", # The email address.
       },
-    },
-    "url": "A String", # The URL of this person's profile.
-    "isPlusUser": True or False, # Whether this user has signed up for Google+.
-    "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
+    ],
+    "nickname": "A String", # The nickname of this person.
+    "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
     "urls": [ # A list of URLs for this person.
       {
-        "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
-            # - "otherProfile" - URL for another profile.
-            # - "contributor" - URL to a site for which this person is a contributor.
-            # - "website" - URL for this Google+ Page's primary website.
-            # - "other" - Other URL.
-        "value": "A String", # The URL value.
-        "label": "A String", # The label of the URL.
-      },
-    ],
-    "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
-      "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
-          # - "17" - for age 17
-          # - "20" - for age 20
-      "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
-          # - "21" - for age 21
-          # - "18" - for age 18
-    },
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(userId, collection, orderBy=None, pageToken=None, maxResults=None)</code>
-  <pre>List all of the people in the specified collection.
-
-Args:
-  userId: string, Get the collection of people for the person identified. Use "me" to indicate the authenticated user. (required)
-  collection: string, The collection of people to list. (required)
-    Allowed values
-      connected - The list of visible people in the authenticated user's circles who also use the requesting app. This list is limited to users who made their app activities visible to the authenticated user.
-      visible - The list of people who this user has added to one or more circles, limited to the circles visible to the requesting application.
-  orderBy: string, The order to return people in.
-    Allowed values
-      alphabetical - Order the people by their display name.
-      best - Order people based on the relevence to the viewer.
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
-  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
-
-Returns:
-  An object of the form:
-
-    {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
-    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
-    "title": "A String", # The title of this collection of people.
-    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
-      {
-        "braggingRights": "A String", # The "bragging rights" line of this person.
-        "image": { # The representation of the person's profile photo.
-          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
-          "isDefault": True or False, # Whether the person's profile photo is the default one
-        },
-        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
-        "id": "A String", # The ID of this person.
-        "occupation": "A String", # The occupation of this person.
-        "verified": True or False, # Whether the person or Google+ Page has been verified.
-        "tagline": "A String", # The brief description (tagline) of this person.
-        "currentLocation": "A String", # (this field is not currently used)
-        "etag": "A String", # ETag of this response for caching purposes.
-        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
-        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
-            # - "person" - represents an actual person.
-            # - "page" - represents a page.
-        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
-            # - "single" - Person is single.
-            # - "in_a_relationship" - Person is in a relationship.
-            # - "engaged" - Person is engaged.
-            # - "married" - Person is married.
-            # - "its_complicated" - The relationship is complicated.
-            # - "open_relationship" - Person is in an open relationship.
-            # - "widowed" - Person is widowed.
-            # - "in_domestic_partnership" - Person is in a domestic partnership.
-            # - "in_civil_union" - Person is in a civil union.
-        "aboutMe": "A String", # A short biography for this person.
-        "placesLived": [ # A list of places where this person has lived.
-          {
-            "primary": True or False, # If "true", this place of residence is this person's primary residence.
-            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
-          },
-        ],
-        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
-        "nickname": "A String", # The nickname of this person.
-        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
-          {
-            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
-                # - "account" - Google account email address.
-                # - "home" - Home email address.
-                # - "work" - Work email address.
-                # - "other" - Other.
-            "value": "A String", # The email address.
-          },
-        ],
-        "organizations": [ # A list of current or past organizations with which this person is associated.
-          {
-            "startDate": "A String", # The date that the person joined this organization.
-            "endDate": "A String", # The date that the person left this organization.
-            "description": "A String", # A short description of the person's role in this organization. Deprecated.
-            "title": "A String", # The person's job title or role within the organization.
-            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
-            "location": "A String", # The location of this organization. Deprecated.
-            "department": "A String", # The department within the organization. Deprecated.
-            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
-                # - "work" - Work.
-                # - "school" - School.
-            "name": "A String", # The name of the organization.
-          },
-        ],
-        "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
-        "displayName": "A String", # The name of this person, which is suitable for display.
-        "name": { # An object representation of the individual components of a person's name.
-          "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
-          "middleName": "A String", # The middle name of this person.
-          "familyName": "A String", # The family name (last name) of this person.
-          "formatted": "A String", # The full name of this person, including middle names, suffixes, etc.
-          "givenName": "A String", # The given name (first name) of this person.
-          "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
-        },
-        "language": "A String", # The user's preferred language for rendering.
-        "skills": "A String", # The person's skills.
-        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
-            # - "male" - Male gender.
-            # - "female" - Female gender.
+        "type": "A String", # The type of URL. Possible values are:
+            # - "home" - URL for home.
+            # - "work" - URL for work.
+            # - "blog" - URL for blog.
+            # - "profile" - URL for profile.
             # - "other" - Other.
-        "cover": { # The cover photo content.
-          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
-              # - "banner" - One large image banner.
-          "coverInfo": { # Extra information about the cover photo.
-            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
-            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
-          },
-          "coverPhoto": { # The person's primary cover image.
-            "url": "A String", # The URL of the image.
-            "width": 42, # The width of the image.
-            "height": 42, # The height of the image.
-          },
-        },
-        "url": "A String", # The URL of this person's profile.
-        "isPlusUser": True or False, # Whether this user has signed up for Google+.
-        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
-        "urls": [ # A list of URLs for this person.
-          {
-            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
-                # - "otherProfile" - URL for another profile.
-                # - "contributor" - URL to a site for which this person is a contributor.
-                # - "website" - URL for this Google+ Page's primary website.
-                # - "other" - Other URL.
-            "value": "A String", # The URL value.
-            "label": "A String", # The label of the URL.
-          },
-        ],
-        "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
-          "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
-              # - "17" - for age 17
-              # - "20" - for age 20
-          "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
-              # - "21" - for age 21
-              # - "18" - for age 18
-        },
+        "primary": True or False, # If "true", this URL is the person's primary URL.
+        "value": "A String", # The URL value.
       },
     ],
-    "etag": "A String", # ETag of this response for caching purposes.
-    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
-    "selfLink": "A String", # Link to this resource.
+    "image": { # The representation of the person's profile photo.
+      "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
+    },
+    "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
+    "id": "A String", # The ID of this person.
+    "languagesSpoken": [ # The languages spoken by this person.
+      "A String",
+    ],
+    "currentLocation": "A String", # The current location for this person.
   }</pre>
 </div>
 
@@ -376,35 +195,17 @@
     Allowed values
       plusoners - List all people who have +1'd this activity.
       resharers - List all people who have reshared this activity.
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
-  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
+  maxResults: integer, The maximum number of people to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
-    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
-    "title": "A String", # The title of this collection of people.
-    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "items": [ # The people in this page of results. Each item will include the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
       {
-        "braggingRights": "A String", # The "bragging rights" line of this person.
-        "image": { # The representation of the person's profile photo.
-          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
-          "isDefault": True or False, # Whether the person's profile photo is the default one
-        },
-        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
-        "id": "A String", # The ID of this person.
-        "occupation": "A String", # The occupation of this person.
-        "verified": True or False, # Whether the person or Google+ Page has been verified.
-        "tagline": "A String", # The brief description (tagline) of this person.
-        "currentLocation": "A String", # (this field is not currently used)
-        "etag": "A String", # ETag of this response for caching purposes.
-        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
-        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
-            # - "person" - represents an actual person.
-            # - "page" - represents a page.
-        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+        "relationshipStatus": "A String", # The person's relationship status. Possible values are:
             # - "single" - Person is single.
             # - "in_a_relationship" - Person is in a relationship.
             # - "engaged" - Person is engaged.
@@ -414,42 +215,23 @@
             # - "widowed" - Person is widowed.
             # - "in_domestic_partnership" - Person is in a domestic partnership.
             # - "in_civil_union" - Person is in a civil union.
-        "aboutMe": "A String", # A short biography for this person.
-        "placesLived": [ # A list of places where this person has lived.
-          {
-            "primary": True or False, # If "true", this place of residence is this person's primary residence.
-            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
-          },
-        ],
-        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
-        "nickname": "A String", # The nickname of this person.
-        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
-          {
-            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
-                # - "account" - Google account email address.
-                # - "home" - Home email address.
-                # - "work" - Work email address.
-                # - "other" - Other.
-            "value": "A String", # The email address.
-          },
-        ],
         "organizations": [ # A list of current or past organizations with which this person is associated.
           {
-            "startDate": "A String", # The date that the person joined this organization.
-            "endDate": "A String", # The date that the person left this organization.
-            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "startDate": "A String", # The date the person joined this organization.
+            "endDate": "A String", # The date the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization.
             "title": "A String", # The person's job title or role within the organization.
-            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
-            "location": "A String", # The location of this organization. Deprecated.
-            "department": "A String", # The department within the organization. Deprecated.
-            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+            "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
+            "location": "A String", # The location of this organization.
+            "department": "A String", # The department within the organization.
+            "type": "A String", # The type of organization. Possible values are:
                 # - "work" - Work.
                 # - "school" - School.
             "name": "A String", # The name of the organization.
           },
         ],
         "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
-        "displayName": "A String", # The name of this person, which is suitable for display.
+        "displayName": "A String", # The name of this person, suitable for display.
         "name": { # An object representation of the individual components of a person's name.
           "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
           "middleName": "A String", # The middle name of this person.
@@ -458,52 +240,57 @@
           "givenName": "A String", # The given name (first name) of this person.
           "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
         },
-        "language": "A String", # The user's preferred language for rendering.
-        "skills": "A String", # The person's skills.
-        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+        "url": "A String", # The URL of this person's profile.
+        "gender": "A String", # The person's gender. Possible values are:
             # - "male" - Male gender.
             # - "female" - Female gender.
             # - "other" - Other.
-        "cover": { # The cover photo content.
-          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
-              # - "banner" - One large image banner.
-          "coverInfo": { # Extra information about the cover photo.
-            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
-            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
-          },
-          "coverPhoto": { # The person's primary cover image.
-            "url": "A String", # The URL of the image.
-            "width": 42, # The width of the image.
-            "height": 42, # The height of the image.
-          },
-        },
-        "url": "A String", # The URL of this person's profile.
-        "isPlusUser": True or False, # Whether this user has signed up for Google+.
-        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
-        "urls": [ # A list of URLs for this person.
+        "aboutMe": "A String", # A short biography for this person.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "placesLived": [ # A list of places where this person has lived.
           {
-            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
-                # - "otherProfile" - URL for another profile.
-                # - "contributor" - URL to a site for which this person is a contributor.
-                # - "website" - URL for this Google+ Page's primary website.
-                # - "other" - Other URL.
-            "value": "A String", # The URL value.
-            "label": "A String", # The label of the URL.
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
           },
         ],
-        "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
-          "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
-              # - "17" - for age 17
-              # - "20" - for age 20
-          "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
-              # - "21" - for age 21
-              # - "18" - for age 18
+        "emails": [ # A list of email addresses for this person.
+          {
+            "type": "A String", # The type of address. Possible values are:
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "primary": True or False, # If "true", indicates this email address is the person's primary one.
+            "value": "A String", # The email address.
+          },
+        ],
+        "nickname": "A String", # The nickname of this person.
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values are:
+                # - "home" - URL for home.
+                # - "work" - URL for work.
+                # - "blog" - URL for blog.
+                # - "profile" - URL for profile.
+                # - "other" - Other.
+            "primary": True or False, # If "true", this URL is the person's primary URL.
+            "value": "A String", # The URL value.
+          },
+        ],
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
         },
+        "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
+        "id": "A String", # The ID of this person.
+        "languagesSpoken": [ # The languages spoken by this person.
+          "A String",
+        ],
+        "currentLocation": "A String", # The current location for this person.
       },
     ],
-    "etag": "A String", # ETag of this response for caching purposes.
-    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
     "selfLink": "A String", # Link to this resource.
+    "title": "A String", # The title of this collection of people.
   }</pre>
 </div>
 
@@ -522,55 +309,23 @@
 </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>
-
-<div class="method">
     <code class="details" id="search">search(query, pageToken=None, language=None, maxResults=None)</code>
   <pre>Search all public profiles.
 
 Args:
-  query: string, Specify a query string for full text search of public text in all profiles. (required)
-  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token can be of any length.
-  language: string, Specify the preferred language to search with. See search language codes for available values.
-  maxResults: integer, The maximum number of people to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.
+  query: string, Full-text search query string. (required)
+  pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token may be of any length.
+  language: string, Specify the preferred language to search with. See Language Codes for available values.
+  maxResults: integer, The maximum number of people to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.
 
 Returns:
   An object of the form:
 
     {
-    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
-    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
-    "title": "A String", # The title of this collection of people.
-    "items": [ # The people in this page of results. Each item includes the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "items": [ # The people in this page of results. Each item will include the id, displayName, image, and url for the person. To retrieve additional profile data, see the people.get method.
       {
-        "braggingRights": "A String", # The "bragging rights" line of this person.
-        "image": { # The representation of the person's profile photo.
-          "url": "A String", # The URL of the person's profile photo. To resize the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
-          "isDefault": True or False, # Whether the person's profile photo is the default one
-        },
-        "domain": "A String", # The hosted domain name for the user's Google Apps account. For instance, example.com. The plus.profile.emails.read or email scope is needed to get this domain name.
-        "id": "A String", # The ID of this person.
-        "occupation": "A String", # The occupation of this person.
-        "verified": True or False, # Whether the person or Google+ Page has been verified.
-        "tagline": "A String", # The brief description (tagline) of this person.
-        "currentLocation": "A String", # (this field is not currently used)
-        "etag": "A String", # ETag of this response for caching purposes.
-        "circledByCount": 42, # For followers who are visible, the number of people who have added this person or page to a circle.
-        "objectType": "A String", # Type of person within Google+. Possible values include, but are not limited to, the following values:
-            # - "person" - represents an actual person.
-            # - "page" - represents a page.
-        "relationshipStatus": "A String", # The person's relationship status. Possible values include, but are not limited to, the following values:
+        "relationshipStatus": "A String", # The person's relationship status. Possible values are:
             # - "single" - Person is single.
             # - "in_a_relationship" - Person is in a relationship.
             # - "engaged" - Person is engaged.
@@ -580,42 +335,23 @@
             # - "widowed" - Person is widowed.
             # - "in_domestic_partnership" - Person is in a domestic partnership.
             # - "in_civil_union" - Person is in a civil union.
-        "aboutMe": "A String", # A short biography for this person.
-        "placesLived": [ # A list of places where this person has lived.
-          {
-            "primary": True or False, # If "true", this place of residence is this person's primary residence.
-            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
-          },
-        ],
-        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
-        "nickname": "A String", # The nickname of this person.
-        "emails": [ # A list of email addresses that this person has, including their Google account email address, and the public verified email addresses on their Google+ profile. The plus.profile.emails.read scope is needed to retrieve these email addresses, or the email scope can be used to retrieve just the Google account email address.
-          {
-            "type": "A String", # The type of address. Possible values include, but are not limited to, the following values:
-                # - "account" - Google account email address.
-                # - "home" - Home email address.
-                # - "work" - Work email address.
-                # - "other" - Other.
-            "value": "A String", # The email address.
-          },
-        ],
         "organizations": [ # A list of current or past organizations with which this person is associated.
           {
-            "startDate": "A String", # The date that the person joined this organization.
-            "endDate": "A String", # The date that the person left this organization.
-            "description": "A String", # A short description of the person's role in this organization. Deprecated.
+            "startDate": "A String", # The date the person joined this organization.
+            "endDate": "A String", # The date the person left this organization.
+            "description": "A String", # A short description of the person's role in this organization.
             "title": "A String", # The person's job title or role within the organization.
-            "primary": True or False, # If "true", indicates this organization is the person's primary one, which is typically interpreted as the current one.
-            "location": "A String", # The location of this organization. Deprecated.
-            "department": "A String", # The department within the organization. Deprecated.
-            "type": "A String", # The type of organization. Possible values include, but are not limited to, the following values:
+            "primary": True or False, # If "true", indicates this organization is the person's primary one (typically interpreted as current one).
+            "location": "A String", # The location of this organization.
+            "department": "A String", # The department within the organization.
+            "type": "A String", # The type of organization. Possible values are:
                 # - "work" - Work.
                 # - "school" - School.
             "name": "A String", # The name of the organization.
           },
         ],
         "kind": "plus#person", # Identifies this resource as a person. Value: "plus#person".
-        "displayName": "A String", # The name of this person, which is suitable for display.
+        "displayName": "A String", # The name of this person, suitable for display.
         "name": { # An object representation of the individual components of a person's name.
           "honorificPrefix": "A String", # The honorific prefixes (such as "Dr." or "Mrs.") for this person.
           "middleName": "A String", # The middle name of this person.
@@ -624,52 +360,57 @@
           "givenName": "A String", # The given name (first name) of this person.
           "honorificSuffix": "A String", # The honorific suffixes (such as "Jr.") for this person.
         },
-        "language": "A String", # The user's preferred language for rendering.
-        "skills": "A String", # The person's skills.
-        "gender": "A String", # The person's gender. Possible values include, but are not limited to, the following values:
+        "url": "A String", # The URL of this person's profile.
+        "gender": "A String", # The person's gender. Possible values are:
             # - "male" - Male gender.
             # - "female" - Female gender.
             # - "other" - Other.
-        "cover": { # The cover photo content.
-          "layout": "A String", # The layout of the cover art. Possible values include, but are not limited to, the following values:
-              # - "banner" - One large image banner.
-          "coverInfo": { # Extra information about the cover photo.
-            "leftImageOffset": 42, # The difference between the left position of the cover image and the actual displayed cover image. Only valid for banner layout.
-            "topImageOffset": 42, # The difference between the top position of the cover image and the actual displayed cover image. Only valid for banner layout.
-          },
-          "coverPhoto": { # The person's primary cover image.
-            "url": "A String", # The URL of the image.
-            "width": 42, # The width of the image.
-            "height": 42, # The height of the image.
-          },
-        },
-        "url": "A String", # The URL of this person's profile.
-        "isPlusUser": True or False, # Whether this user has signed up for Google+.
-        "plusOneCount": 42, # If a Google+ Page, the number of people who have +1'd this page.
-        "urls": [ # A list of URLs for this person.
+        "aboutMe": "A String", # A short biography for this person.
+        "tagline": "A String", # The brief description (tagline) of this person.
+        "placesLived": [ # A list of places where this person has lived.
           {
-            "type": "A String", # The type of URL. Possible values include, but are not limited to, the following values:
-                # - "otherProfile" - URL for another profile.
-                # - "contributor" - URL to a site for which this person is a contributor.
-                # - "website" - URL for this Google+ Page's primary website.
-                # - "other" - Other URL.
-            "value": "A String", # The URL value.
-            "label": "A String", # The label of the URL.
+            "primary": True or False, # If "true", this place of residence is this person's primary residence.
+            "value": "A String", # A place where this person has lived. For example: "Seattle, WA", "Near Toronto".
           },
         ],
-        "ageRange": { # The age range of the person. Valid ranges are 17 or younger, 18 to 20, and 21 or older. Age is determined from the user's birthday using Western age reckoning.
-          "max": 42, # The age range's upper bound, if any. Possible values include, but are not limited to, the following:
-              # - "17" - for age 17
-              # - "20" - for age 20
-          "min": 42, # The age range's lower bound, if any. Possible values include, but are not limited to, the following:
-              # - "21" - for age 21
-              # - "18" - for age 18
+        "emails": [ # A list of email addresses for this person.
+          {
+            "type": "A String", # The type of address. Possible values are:
+                # - "home" - Home email address.
+                # - "work" - Work email address.
+                # - "other" - Other.
+            "primary": True or False, # If "true", indicates this email address is the person's primary one.
+            "value": "A String", # The email address.
+          },
+        ],
+        "nickname": "A String", # The nickname of this person.
+        "birthday": "A String", # The person's date of birth, represented as YYYY-MM-DD.
+        "urls": [ # A list of URLs for this person.
+          {
+            "type": "A String", # The type of URL. Possible values are:
+                # - "home" - URL for home.
+                # - "work" - URL for work.
+                # - "blog" - URL for blog.
+                # - "profile" - URL for profile.
+                # - "other" - Other.
+            "primary": True or False, # If "true", this URL is the person's primary URL.
+            "value": "A String", # The URL value.
+          },
+        ],
+        "image": { # The representation of the person's profile photo.
+          "url": "A String", # The URL of the person's profile photo. To re-size the image and crop it to a square, append the query string ?sz=x, where x is the dimension in pixels of each side.
         },
+        "hasApp": True or False, # If "true", indicates that the person has installed the app that is making the request and has chosen to expose this install state to the caller. A value of "false" indicates that the install state cannot be determined (it is either not installed or the person has chosen to keep this information private).
+        "id": "A String", # The ID of this person.
+        "languagesSpoken": [ # The languages spoken by this person.
+          "A String",
+        ],
+        "currentLocation": "A String", # The current location for this person.
       },
     ],
-    "etag": "A String", # ETag of this response for caching purposes.
-    "totalItems": 42, # The total number of people available in this list. The number of people in a response might be smaller due to paging. This might not be set for all collections.
+    "kind": "plus#peopleFeed", # Identifies this resource as a collection of people. Value: "plus#peopleFeed".
     "selfLink": "A String", # Link to this resource.
+    "title": "A String", # The title of this collection of people.
   }</pre>
 </div>
 
diff --git a/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html b/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html
index 8e2db46..7e2b539 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beaconinfo.html
@@ -82,7 +82,7 @@
     <code class="details" id="getforobserved">getforobserved(body, x__xgafv=None)</code>
   <pre>Given one or more beacon observations, returns any beacon information
 and attachments accessible to your application. Authorize by using the
-[API key](https://developers.google.com/beacons/proximity/how-tos/authorizing#APIKey)
+[API key](https://developers.google.com/beacons/proximity/get-started#request_a_browser_api_key)
 for the application.
 
 Args:
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html b/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html
index a2b2280..474ebda 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.diagnostics.html
@@ -124,11 +124,11 @@
             # expiration date. The year may be 0 to represent a month and day independent
             # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
             # and `google.protobuf.Timestamp`.
-          "month": 42, # Month of year. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
-              # if specifying a year/month where the day is not significant.
           "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
               # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
         "alerts": [ # An unordered list of Alerts that the beacon has.
           "A String",
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.html b/docs/dyn/proximitybeacon_v1beta1.beacons.html
index 64ab298..39d6681 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.html
@@ -370,9 +370,6 @@
         #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
         #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
         #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-        #
-        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
@@ -624,9 +621,6 @@
             #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
             #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
             #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-            #
-            # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-            # as if it were annotated as ST_LOCATION.
           "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
           "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
         },
@@ -813,9 +807,6 @@
       #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
       #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
       #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-      #
-      # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-      # as if it were annotated as ST_LOCATION.
     "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
     "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
   },
@@ -982,9 +973,6 @@
         #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
         #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
         #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-        #
-        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
@@ -1165,9 +1153,6 @@
       #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
       #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
       #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-      #
-      # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-      # as if it were annotated as ST_LOCATION.
     "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
     "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
   },
@@ -1334,9 +1319,6 @@
         #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
         #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
         #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-        #
-        # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-        # as if it were annotated as ST_LOCATION.
       "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
       "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
     },
diff --git a/docs/dyn/proximitybeacon_v1beta1.namespaces.html b/docs/dyn/proximitybeacon_v1beta1.namespaces.html
index 6b3aaa4..8f0d86e 100644
--- a/docs/dyn/proximitybeacon_v1beta1.namespaces.html
+++ b/docs/dyn/proximitybeacon_v1beta1.namespaces.html
@@ -107,10 +107,10 @@
       { # An attachment namespace defines read and write access for all the attachments
           # created under it. Each namespace is globally unique, and owned by one
           # project which is the only project that can create attachments under it.
-        "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
-            # <code>namespaces/<var>namespace</var></code>.
         "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
             # via `beaconinfo.getforobserved`.
+        "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
+            # <code>namespaces/<var>namespace</var></code>.
       },
     ],
   }</pre>
@@ -130,10 +130,10 @@
 { # An attachment namespace defines read and write access for all the attachments
     # created under it. Each namespace is globally unique, and owned by one
     # project which is the only project that can create attachments under it.
-  "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
-      # <code>namespaces/<var>namespace</var></code>.
   "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
       # via `beaconinfo.getforobserved`.
+  "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
+      # <code>namespaces/<var>namespace</var></code>.
 }
 
   projectId: string, The project id of the namespace to update. If the project id is not
@@ -151,10 +151,10 @@
     { # An attachment namespace defines read and write access for all the attachments
       # created under it. Each namespace is globally unique, and owned by one
       # project which is the only project that can create attachments under it.
-    "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
-        # <code>namespaces/<var>namespace</var></code>.
     "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
         # via `beaconinfo.getforobserved`.
+    "namespaceName": "A String", # Resource name of this namespace. Namespaces names have the format:
+        # <code>namespaces/<var>namespace</var></code>.
   }</pre>
 </div>
 
diff --git a/docs/dyn/pubsub_v1.projects.subscriptions.html b/docs/dyn/pubsub_v1.projects.subscriptions.html
index 0f262fb..5d01b86 100644
--- a/docs/dyn/pubsub_v1.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1.projects.subscriptions.html
@@ -178,12 +178,81 @@
     The object takes the form of:
 
 { # A subscription resource.
+  "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+      # before the subscriber should acknowledge the message. After message
+      # delivery but before the ack deadline expires and before the message is
+      # acknowledged, it is an outstanding message and will not be delivered
+      # again during that time (on a best-effort basis).
+      # 
+      # For pull subscriptions, this value is used as the initial value for the ack
+      # deadline. To override this value for a given message, call
+      # `ModifyAckDeadline` with the corresponding `ack_id` if using
+      # pull.
+      # The minimum custom deadline you can specify is 10 seconds.
+      # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+      # If this parameter is 0, a default value of 10 seconds is used.
+      # 
+      # For push delivery, this value is also used to set the request timeout for
+      # the call to the push endpoint.
+      # 
+      # If the subscriber never acknowledges the message, the Pub/Sub
+      # system will eventually redeliver the message.
+  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+      # Format is `projects/{project}/topics/{topic}`.
+      # The value of this field will be `_deleted-topic_` if the topic has been
+      # deleted.
+  "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+      # used to configure it. An empty `pushConfig` signifies that the subscriber
+      # will pull and ack messages using API methods.
+    "attributes": { # Endpoint configuration attributes.
+        #
+        # Every endpoint has a set of API supported attributes that can be used to
+        # control different aspects of the message delivery.
+        #
+        # The currently supported attribute is `x-goog-version`, which you can
+        # use to change the format of the pushed message. This attribute
+        # indicates the version of the data expected by the endpoint. This
+        # controls the shape of the pushed message (i.e., its fields and metadata).
+        # The endpoint version is based on the version of the Pub/Sub API.
+        #
+        # If not present during the `CreateSubscription` call, it will default to
+        # the version of the API used to make such call. If not present during a
+        # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+        # calls will always return a valid version, even if the subscription was
+        # created without this attribute.
+        #
+        # The possible values for this attribute are:
+        #
+        # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+        # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+      "a_key": "A String",
+    },
+    "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+        # For example, a Webhook endpoint might use "https://example.com/push".
+  },
+  "name": "A String", # The name of the subscription. It must have the format
+      # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+      # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+      # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+      # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+      # in length, and it must not start with `"goog"`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A subscription resource.
     "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
         # before the subscriber should acknowledge the message. After message
         # delivery but before the ack deadline expires and before the message is
         # acknowledged, it is an outstanding message and will not be delivered
         # again during that time (on a best-effort basis).
-        # 
+        #
         # For pull subscriptions, this value is used as the initial value for the ack
         # deadline. To override this value for a given message, call
         # `ModifyAckDeadline` with the corresponding `ack_id` if using
@@ -191,10 +260,10 @@
         # The minimum custom deadline you can specify is 10 seconds.
         # The maximum custom deadline you can specify is 600 seconds (10 minutes).
         # If this parameter is 0, a default value of 10 seconds is used.
-        # 
+        #
         # For push delivery, this value is also used to set the request timeout for
         # the call to the push endpoint.
-        # 
+        #
         # If the subscriber never acknowledges the message, the Pub/Sub
         # system will eventually redeliver the message.
     "topic": "A String", # The name of the topic from which this subscription is receiving messages.
@@ -236,76 +305,7 @@
         # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
         # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
         # in length, and it must not start with `"goog"`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A subscription resource.
-      "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-          # before the subscriber should acknowledge the message. After message
-          # delivery but before the ack deadline expires and before the message is
-          # acknowledged, it is an outstanding message and will not be delivered
-          # again during that time (on a best-effort basis).
-          #
-          # For pull subscriptions, this value is used as the initial value for the ack
-          # deadline. To override this value for a given message, call
-          # `ModifyAckDeadline` with the corresponding `ack_id` if using
-          # pull.
-          # The minimum custom deadline you can specify is 10 seconds.
-          # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-          # If this parameter is 0, a default value of 10 seconds is used.
-          #
-          # For push delivery, this value is also used to set the request timeout for
-          # the call to the push endpoint.
-          #
-          # If the subscriber never acknowledges the message, the Pub/Sub
-          # system will eventually redeliver the message.
-      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-          # Format is `projects/{project}/topics/{topic}`.
-          # The value of this field will be `_deleted-topic_` if the topic has been
-          # deleted.
-      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-          # used to configure it. An empty `pushConfig` signifies that the subscriber
-          # will pull and ack messages using API methods.
-        "attributes": { # Endpoint configuration attributes.
-            #
-            # Every endpoint has a set of API supported attributes that can be used to
-            # control different aspects of the message delivery.
-            #
-            # The currently supported attribute is `x-goog-version`, which you can
-            # use to change the format of the pushed message. This attribute
-            # indicates the version of the data expected by the endpoint. This
-            # controls the shape of the pushed message (i.e., its fields and metadata).
-            # The endpoint version is based on the version of the Pub/Sub API.
-            #
-            # If not present during the `CreateSubscription` call, it will default to
-            # the version of the API used to make such call. If not present during a
-            # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-            # calls will always return a valid version, even if the subscription was
-            # created without this attribute.
-            #
-            # The possible values for this attribute are:
-            #
-            # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-            # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-          "a_key": "A String",
-        },
-        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-            # For example, a Webhook endpoint might use "https://example.com/push".
-      },
-      "name": "A String", # The name of the subscription. It must have the format
-          # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-          # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-          # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-          # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-          # in length, and it must not start with `"goog"`.
-    }</pre>
+  }</pre>
 </div>
 
 <div class="method">
@@ -355,65 +355,65 @@
   An object of the form:
 
     { # A subscription resource.
-      "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-          # before the subscriber should acknowledge the message. After message
-          # delivery but before the ack deadline expires and before the message is
-          # acknowledged, it is an outstanding message and will not be delivered
-          # again during that time (on a best-effort basis).
+    "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+        # before the subscriber should acknowledge the message. After message
+        # delivery but before the ack deadline expires and before the message is
+        # acknowledged, it is an outstanding message and will not be delivered
+        # again during that time (on a best-effort basis).
+        #
+        # For pull subscriptions, this value is used as the initial value for the ack
+        # deadline. To override this value for a given message, call
+        # `ModifyAckDeadline` with the corresponding `ack_id` if using
+        # pull.
+        # The minimum custom deadline you can specify is 10 seconds.
+        # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+        # If this parameter is 0, a default value of 10 seconds is used.
+        #
+        # For push delivery, this value is also used to set the request timeout for
+        # the call to the push endpoint.
+        #
+        # If the subscriber never acknowledges the message, the Pub/Sub
+        # system will eventually redeliver the message.
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+        # Format is `projects/{project}/topics/{topic}`.
+        # The value of this field will be `_deleted-topic_` if the topic has been
+        # deleted.
+    "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+        # used to configure it. An empty `pushConfig` signifies that the subscriber
+        # will pull and ack messages using API methods.
+      "attributes": { # Endpoint configuration attributes.
           #
-          # For pull subscriptions, this value is used as the initial value for the ack
-          # deadline. To override this value for a given message, call
-          # `ModifyAckDeadline` with the corresponding `ack_id` if using
-          # pull.
-          # The minimum custom deadline you can specify is 10 seconds.
-          # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-          # If this parameter is 0, a default value of 10 seconds is used.
+          # Every endpoint has a set of API supported attributes that can be used to
+          # control different aspects of the message delivery.
           #
-          # For push delivery, this value is also used to set the request timeout for
-          # the call to the push endpoint.
+          # The currently supported attribute is `x-goog-version`, which you can
+          # use to change the format of the pushed message. This attribute
+          # indicates the version of the data expected by the endpoint. This
+          # controls the shape of the pushed message (i.e., its fields and metadata).
+          # The endpoint version is based on the version of the Pub/Sub API.
           #
-          # If the subscriber never acknowledges the message, the Pub/Sub
-          # system will eventually redeliver the message.
-      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-          # Format is `projects/{project}/topics/{topic}`.
-          # The value of this field will be `_deleted-topic_` if the topic has been
-          # deleted.
-      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-          # used to configure it. An empty `pushConfig` signifies that the subscriber
-          # will pull and ack messages using API methods.
-        "attributes": { # Endpoint configuration attributes.
-            #
-            # Every endpoint has a set of API supported attributes that can be used to
-            # control different aspects of the message delivery.
-            #
-            # The currently supported attribute is `x-goog-version`, which you can
-            # use to change the format of the pushed message. This attribute
-            # indicates the version of the data expected by the endpoint. This
-            # controls the shape of the pushed message (i.e., its fields and metadata).
-            # The endpoint version is based on the version of the Pub/Sub API.
-            #
-            # If not present during the `CreateSubscription` call, it will default to
-            # the version of the API used to make such call. If not present during a
-            # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-            # calls will always return a valid version, even if the subscription was
-            # created without this attribute.
-            #
-            # The possible values for this attribute are:
-            #
-            # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-            # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-          "a_key": "A String",
-        },
-        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-            # For example, a Webhook endpoint might use "https://example.com/push".
+          # If not present during the `CreateSubscription` call, it will default to
+          # the version of the API used to make such call. If not present during a
+          # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+          # calls will always return a valid version, even if the subscription was
+          # created without this attribute.
+          #
+          # The possible values for this attribute are:
+          #
+          # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+          # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+        "a_key": "A String",
       },
-      "name": "A String", # The name of the subscription. It must have the format
-          # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-          # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-          # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-          # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-          # in length, and it must not start with `"goog"`.
-    }</pre>
+      "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+          # For example, a Webhook endpoint might use "https://example.com/push".
+    },
+    "name": "A String", # The name of the subscription. It must have the format
+        # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+        # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+        # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+        # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+        # in length, and it must not start with `"goog"`.
+  }</pre>
 </div>
 
 <div class="method">
@@ -536,65 +536,65 @@
         # `ListSubscriptionsRequest` to get more subscriptions.
     "subscriptions": [ # The subscriptions that match the request.
       { # A subscription resource.
-          "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-              # before the subscriber should acknowledge the message. After message
-              # delivery but before the ack deadline expires and before the message is
-              # acknowledged, it is an outstanding message and will not be delivered
-              # again during that time (on a best-effort basis).
+        "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+            # before the subscriber should acknowledge the message. After message
+            # delivery but before the ack deadline expires and before the message is
+            # acknowledged, it is an outstanding message and will not be delivered
+            # again during that time (on a best-effort basis).
+            #
+            # For pull subscriptions, this value is used as the initial value for the ack
+            # deadline. To override this value for a given message, call
+            # `ModifyAckDeadline` with the corresponding `ack_id` if using
+            # pull.
+            # The minimum custom deadline you can specify is 10 seconds.
+            # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+            # If this parameter is 0, a default value of 10 seconds is used.
+            #
+            # For push delivery, this value is also used to set the request timeout for
+            # the call to the push endpoint.
+            #
+            # If the subscriber never acknowledges the message, the Pub/Sub
+            # system will eventually redeliver the message.
+        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+            # Format is `projects/{project}/topics/{topic}`.
+            # The value of this field will be `_deleted-topic_` if the topic has been
+            # deleted.
+        "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+            # used to configure it. An empty `pushConfig` signifies that the subscriber
+            # will pull and ack messages using API methods.
+          "attributes": { # Endpoint configuration attributes.
               #
-              # For pull subscriptions, this value is used as the initial value for the ack
-              # deadline. To override this value for a given message, call
-              # `ModifyAckDeadline` with the corresponding `ack_id` if using
-              # pull.
-              # The minimum custom deadline you can specify is 10 seconds.
-              # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-              # If this parameter is 0, a default value of 10 seconds is used.
+              # Every endpoint has a set of API supported attributes that can be used to
+              # control different aspects of the message delivery.
               #
-              # For push delivery, this value is also used to set the request timeout for
-              # the call to the push endpoint.
+              # The currently supported attribute is `x-goog-version`, which you can
+              # use to change the format of the pushed message. This attribute
+              # indicates the version of the data expected by the endpoint. This
+              # controls the shape of the pushed message (i.e., its fields and metadata).
+              # The endpoint version is based on the version of the Pub/Sub API.
               #
-              # If the subscriber never acknowledges the message, the Pub/Sub
-              # system will eventually redeliver the message.
-          "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-              # Format is `projects/{project}/topics/{topic}`.
-              # The value of this field will be `_deleted-topic_` if the topic has been
-              # deleted.
-          "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-              # used to configure it. An empty `pushConfig` signifies that the subscriber
-              # will pull and ack messages using API methods.
-            "attributes": { # Endpoint configuration attributes.
-                #
-                # Every endpoint has a set of API supported attributes that can be used to
-                # control different aspects of the message delivery.
-                #
-                # The currently supported attribute is `x-goog-version`, which you can
-                # use to change the format of the pushed message. This attribute
-                # indicates the version of the data expected by the endpoint. This
-                # controls the shape of the pushed message (i.e., its fields and metadata).
-                # The endpoint version is based on the version of the Pub/Sub API.
-                #
-                # If not present during the `CreateSubscription` call, it will default to
-                # the version of the API used to make such call. If not present during a
-                # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-                # calls will always return a valid version, even if the subscription was
-                # created without this attribute.
-                #
-                # The possible values for this attribute are:
-                #
-                # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-                # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-              "a_key": "A String",
-            },
-            "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-                # For example, a Webhook endpoint might use "https://example.com/push".
+              # If not present during the `CreateSubscription` call, it will default to
+              # the version of the API used to make such call. If not present during a
+              # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+              # calls will always return a valid version, even if the subscription was
+              # created without this attribute.
+              #
+              # The possible values for this attribute are:
+              #
+              # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+              # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+            "a_key": "A String",
           },
-          "name": "A String", # The name of the subscription. It must have the format
-              # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-              # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-              # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-              # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-              # in length, and it must not start with `"goog"`.
+          "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+              # For example, a Webhook endpoint might use "https://example.com/push".
         },
+        "name": "A String", # The name of the subscription. It must have the format
+            # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+            # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+            # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+            # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+            # in length, and it must not start with `"goog"`.
+      },
     ],
   }</pre>
 </div>
diff --git a/docs/dyn/pubsub_v1beta1a.subscriptions.html b/docs/dyn/pubsub_v1beta1a.subscriptions.html
index d7d9006..55b979a 100644
--- a/docs/dyn/pubsub_v1beta1a.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta1a.subscriptions.html
@@ -164,7 +164,6 @@
     The object takes the form of:
 
 { # A subscription resource.
-  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
   "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
       # subscriber receives a message before the subscriber should acknowledge or
       # Nack the message. If the Ack deadline for a message passes without an
@@ -184,6 +183,7 @@
       # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
       # system will not deliver that message to another pull subscriber
       # (on a best-effort basis).
+  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
   "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
       # used to configure it.
     "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
@@ -201,7 +201,6 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
     "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
         # subscriber receives a message before the subscriber should acknowledge or
         # Nack the message. If the Ack deadline for a message passes without an
@@ -221,6 +220,7 @@
         # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
         # system will not deliver that message to another pull subscriber
         # (on a best-effort basis).
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
     "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
         # used to configure it.
       "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
@@ -278,7 +278,6 @@
   An object of the form:
 
     { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
     "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
         # subscriber receives a message before the subscriber should acknowledge or
         # Nack the message. If the Ack deadline for a message passes without an
@@ -298,6 +297,7 @@
         # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
         # system will not deliver that message to another pull subscriber
         # (on a best-effort basis).
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
     "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
         # used to configure it.
       "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
@@ -330,7 +330,6 @@
         # <code>ListSubscriptionsRequest</code> to continue.
     "subscription": [ # The subscriptions that match the request.
       { # A subscription resource.
-        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
         "ackDeadlineSeconds": 42, # For either push or pull delivery, the value is the maximum time after a
             # subscriber receives a message before the subscriber should acknowledge or
             # Nack the message. If the Ack deadline for a message passes without an
@@ -350,6 +349,7 @@
             # subscriber and the subscriber has not yet Acked or Nacked), the Pub/Sub
             # system will not deliver that message to another pull subscriber
             # (on a best-effort basis).
+        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
         "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
             # used to configure it.
           "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
@@ -539,8 +539,8 @@
             # that receives a PubsubMessage via a Pull call or a push delivery. It must
             # not be populated by a publisher in a Publish call.
       },
-      "truncated": True or False, # Indicates that this subscription has been truncated.
       "subscription": "A String", # The subscription that received the event.
+      "truncated": True or False, # Indicates that this subscription has been truncated.
     },
     "ackId": "A String", # This ID must be used to acknowledge the received event or message.
   }</pre>
@@ -620,8 +620,8 @@
                 # that receives a PubsubMessage via a Pull call or a push delivery. It must
                 # not be populated by a publisher in a Publish call.
           },
-          "truncated": True or False, # Indicates that this subscription has been truncated.
           "subscription": "A String", # The subscription that received the event.
+          "truncated": True or False, # Indicates that this subscription has been truncated.
         },
         "ackId": "A String", # This ID must be used to acknowledge the received event or message.
       },
diff --git a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
index d7f372f..8d44e3f 100644
--- a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
@@ -174,27 +174,95 @@
     The object takes the form of:
 
 { # A subscription resource.
-    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-        # The value of this field will be `_deleted-topic_` if the topic has been
-        # deleted.
+  "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+      # before the subscriber should acknowledge the message. After message
+      # delivery but before the ack deadline expires and before the message is
+      # acknowledged, it is an outstanding message and will not be delivered
+      # again during that time (on a best-effort basis).
+      # 
+      # For pull subscriptions, this value is used as the initial value for the ack
+      # deadline. To override this value for a given message, call
+      # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
+      # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+      # 
+      # For push delivery, this value is also used to set the request timeout for
+      # the call to the push endpoint.
+      # 
+      # If the subscriber never acknowledges the message, the Pub/Sub
+      # system will eventually redeliver the message.
+      # 
+      # If this parameter is 0, a default value of 10 seconds is used.
+  "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+      # The value of this field will be `_deleted-topic_` if the topic has been
+      # deleted.
+  "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+      # used to configure it. An empty `pushConfig` signifies that the subscriber
+      # will pull and ack messages using API methods.
+    "attributes": { # Endpoint configuration attributes.
+        #
+        # Every endpoint has a set of API supported attributes that can be used to
+        # control different aspects of the message delivery.
+        #
+        # The currently supported attribute is `x-goog-version`, which you can
+        # use to change the format of the push message. This attribute
+        # indicates the version of the data expected by the endpoint. This
+        # controls the shape of the envelope (i.e. its fields and metadata).
+        # The endpoint version is based on the version of the Pub/Sub
+        # API.
+        #
+        # If not present during the `CreateSubscription` call, it will default to
+        # the version of the API used to make such call. If not present during a
+        # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+        # calls will always return a valid version, even if the subscription was
+        # created without this attribute.
+        #
+        # The possible values for this attribute are:
+        #
+        # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+        # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+      "a_key": "A String",
+    },
+    "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+        # For example, a Webhook endpoint might use "https://example.com/push".
+  },
+  "name": "A String", # The name of the subscription. It must have the format
+      # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+      # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+      # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+      # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+      # in length, and it must not start with `"goog"`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A subscription resource.
     "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
         # before the subscriber should acknowledge the message. After message
         # delivery but before the ack deadline expires and before the message is
         # acknowledged, it is an outstanding message and will not be delivered
         # again during that time (on a best-effort basis).
-        # 
+        #
         # For pull subscriptions, this value is used as the initial value for the ack
         # deadline. To override this value for a given message, call
         # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
         # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-        # 
+        #
         # For push delivery, this value is also used to set the request timeout for
         # the call to the push endpoint.
-        # 
+        #
         # If the subscriber never acknowledges the message, the Pub/Sub
         # system will eventually redeliver the message.
-        # 
+        #
         # If this parameter is 0, a default value of 10 seconds is used.
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+        # The value of this field will be `_deleted-topic_` if the topic has been
+        # deleted.
     "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
         # used to configure it. An empty `pushConfig` signifies that the subscriber
         # will pull and ack messages using API methods.
@@ -231,75 +299,7 @@
         # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
         # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
         # in length, and it must not start with `"goog"`.
-  }
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A subscription resource.
-      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-          # The value of this field will be `_deleted-topic_` if the topic has been
-          # deleted.
-      "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-          # before the subscriber should acknowledge the message. After message
-          # delivery but before the ack deadline expires and before the message is
-          # acknowledged, it is an outstanding message and will not be delivered
-          # again during that time (on a best-effort basis).
-          #
-          # For pull subscriptions, this value is used as the initial value for the ack
-          # deadline. To override this value for a given message, call
-          # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
-          # The maximum custom deadline you can specify is 600 seconds (10 minutes).
-          #
-          # For push delivery, this value is also used to set the request timeout for
-          # the call to the push endpoint.
-          #
-          # If the subscriber never acknowledges the message, the Pub/Sub
-          # system will eventually redeliver the message.
-          #
-          # If this parameter is 0, a default value of 10 seconds is used.
-      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-          # used to configure it. An empty `pushConfig` signifies that the subscriber
-          # will pull and ack messages using API methods.
-        "attributes": { # Endpoint configuration attributes.
-            #
-            # Every endpoint has a set of API supported attributes that can be used to
-            # control different aspects of the message delivery.
-            #
-            # The currently supported attribute is `x-goog-version`, which you can
-            # use to change the format of the push message. This attribute
-            # indicates the version of the data expected by the endpoint. This
-            # controls the shape of the envelope (i.e. its fields and metadata).
-            # The endpoint version is based on the version of the Pub/Sub
-            # API.
-            #
-            # If not present during the `CreateSubscription` call, it will default to
-            # the version of the API used to make such call. If not present during a
-            # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-            # calls will always return a valid version, even if the subscription was
-            # created without this attribute.
-            #
-            # The possible values for this attribute are:
-            #
-            # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-            # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-          "a_key": "A String",
-        },
-        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-            # For example, a Webhook endpoint might use "https://example.com/push".
-      },
-      "name": "A String", # The name of the subscription. It must have the format
-          # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-          # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-          # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-          # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-          # in length, and it must not start with `"goog"`.
-    }</pre>
+  }</pre>
 </div>
 
 <div class="method">
@@ -347,64 +347,64 @@
   An object of the form:
 
     { # A subscription resource.
-      "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-          # The value of this field will be `_deleted-topic_` if the topic has been
-          # deleted.
-      "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-          # before the subscriber should acknowledge the message. After message
-          # delivery but before the ack deadline expires and before the message is
-          # acknowledged, it is an outstanding message and will not be delivered
-          # again during that time (on a best-effort basis).
+    "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+        # before the subscriber should acknowledge the message. After message
+        # delivery but before the ack deadline expires and before the message is
+        # acknowledged, it is an outstanding message and will not be delivered
+        # again during that time (on a best-effort basis).
+        #
+        # For pull subscriptions, this value is used as the initial value for the ack
+        # deadline. To override this value for a given message, call
+        # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
+        # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+        #
+        # For push delivery, this value is also used to set the request timeout for
+        # the call to the push endpoint.
+        #
+        # If the subscriber never acknowledges the message, the Pub/Sub
+        # system will eventually redeliver the message.
+        #
+        # If this parameter is 0, a default value of 10 seconds is used.
+    "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+        # The value of this field will be `_deleted-topic_` if the topic has been
+        # deleted.
+    "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+        # used to configure it. An empty `pushConfig` signifies that the subscriber
+        # will pull and ack messages using API methods.
+      "attributes": { # Endpoint configuration attributes.
           #
-          # For pull subscriptions, this value is used as the initial value for the ack
-          # deadline. To override this value for a given message, call
-          # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
-          # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+          # Every endpoint has a set of API supported attributes that can be used to
+          # control different aspects of the message delivery.
           #
-          # For push delivery, this value is also used to set the request timeout for
-          # the call to the push endpoint.
+          # The currently supported attribute is `x-goog-version`, which you can
+          # use to change the format of the push message. This attribute
+          # indicates the version of the data expected by the endpoint. This
+          # controls the shape of the envelope (i.e. its fields and metadata).
+          # The endpoint version is based on the version of the Pub/Sub
+          # API.
           #
-          # If the subscriber never acknowledges the message, the Pub/Sub
-          # system will eventually redeliver the message.
+          # If not present during the `CreateSubscription` call, it will default to
+          # the version of the API used to make such call. If not present during a
+          # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+          # calls will always return a valid version, even if the subscription was
+          # created without this attribute.
           #
-          # If this parameter is 0, a default value of 10 seconds is used.
-      "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-          # used to configure it. An empty `pushConfig` signifies that the subscriber
-          # will pull and ack messages using API methods.
-        "attributes": { # Endpoint configuration attributes.
-            #
-            # Every endpoint has a set of API supported attributes that can be used to
-            # control different aspects of the message delivery.
-            #
-            # The currently supported attribute is `x-goog-version`, which you can
-            # use to change the format of the push message. This attribute
-            # indicates the version of the data expected by the endpoint. This
-            # controls the shape of the envelope (i.e. its fields and metadata).
-            # The endpoint version is based on the version of the Pub/Sub
-            # API.
-            #
-            # If not present during the `CreateSubscription` call, it will default to
-            # the version of the API used to make such call. If not present during a
-            # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-            # calls will always return a valid version, even if the subscription was
-            # created without this attribute.
-            #
-            # The possible values for this attribute are:
-            #
-            # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-            # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-          "a_key": "A String",
-        },
-        "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-            # For example, a Webhook endpoint might use "https://example.com/push".
+          # The possible values for this attribute are:
+          #
+          # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+          # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+        "a_key": "A String",
       },
-      "name": "A String", # The name of the subscription. It must have the format
-          # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-          # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-          # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-          # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-          # in length, and it must not start with `"goog"`.
-    }</pre>
+      "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+          # For example, a Webhook endpoint might use "https://example.com/push".
+    },
+    "name": "A String", # The name of the subscription. It must have the format
+        # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+        # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+        # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+        # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+        # in length, and it must not start with `"goog"`.
+  }</pre>
 </div>
 
 <div class="method">
@@ -526,64 +526,64 @@
         # `ListSubscriptionsRequest` to get more subscriptions.
     "subscriptions": [ # The subscriptions that match the request.
       { # A subscription resource.
-          "topic": "A String", # The name of the topic from which this subscription is receiving messages.
-              # The value of this field will be `_deleted-topic_` if the topic has been
-              # deleted.
-          "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
-              # before the subscriber should acknowledge the message. After message
-              # delivery but before the ack deadline expires and before the message is
-              # acknowledged, it is an outstanding message and will not be delivered
-              # again during that time (on a best-effort basis).
+        "ackDeadlineSeconds": 42, # This value is the maximum time after a subscriber receives a message
+            # before the subscriber should acknowledge the message. After message
+            # delivery but before the ack deadline expires and before the message is
+            # acknowledged, it is an outstanding message and will not be delivered
+            # again during that time (on a best-effort basis).
+            #
+            # For pull subscriptions, this value is used as the initial value for the ack
+            # deadline. To override this value for a given message, call
+            # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
+            # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+            #
+            # For push delivery, this value is also used to set the request timeout for
+            # the call to the push endpoint.
+            #
+            # If the subscriber never acknowledges the message, the Pub/Sub
+            # system will eventually redeliver the message.
+            #
+            # If this parameter is 0, a default value of 10 seconds is used.
+        "topic": "A String", # The name of the topic from which this subscription is receiving messages.
+            # The value of this field will be `_deleted-topic_` if the topic has been
+            # deleted.
+        "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
+            # used to configure it. An empty `pushConfig` signifies that the subscriber
+            # will pull and ack messages using API methods.
+          "attributes": { # Endpoint configuration attributes.
               #
-              # For pull subscriptions, this value is used as the initial value for the ack
-              # deadline. To override this value for a given message, call
-              # `ModifyAckDeadline` with the corresponding `ack_id` if using pull.
-              # The maximum custom deadline you can specify is 600 seconds (10 minutes).
+              # Every endpoint has a set of API supported attributes that can be used to
+              # control different aspects of the message delivery.
               #
-              # For push delivery, this value is also used to set the request timeout for
-              # the call to the push endpoint.
+              # The currently supported attribute is `x-goog-version`, which you can
+              # use to change the format of the push message. This attribute
+              # indicates the version of the data expected by the endpoint. This
+              # controls the shape of the envelope (i.e. its fields and metadata).
+              # The endpoint version is based on the version of the Pub/Sub
+              # API.
               #
-              # If the subscriber never acknowledges the message, the Pub/Sub
-              # system will eventually redeliver the message.
+              # If not present during the `CreateSubscription` call, it will default to
+              # the version of the API used to make such call. If not present during a
+              # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
+              # calls will always return a valid version, even if the subscription was
+              # created without this attribute.
               #
-              # If this parameter is 0, a default value of 10 seconds is used.
-          "pushConfig": { # Configuration for a push delivery endpoint. # If push delivery is used with this subscription, this field is
-              # used to configure it. An empty `pushConfig` signifies that the subscriber
-              # will pull and ack messages using API methods.
-            "attributes": { # Endpoint configuration attributes.
-                #
-                # Every endpoint has a set of API supported attributes that can be used to
-                # control different aspects of the message delivery.
-                #
-                # The currently supported attribute is `x-goog-version`, which you can
-                # use to change the format of the push message. This attribute
-                # indicates the version of the data expected by the endpoint. This
-                # controls the shape of the envelope (i.e. its fields and metadata).
-                # The endpoint version is based on the version of the Pub/Sub
-                # API.
-                #
-                # If not present during the `CreateSubscription` call, it will default to
-                # the version of the API used to make such call. If not present during a
-                # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
-                # calls will always return a valid version, even if the subscription was
-                # created without this attribute.
-                #
-                # The possible values for this attribute are:
-                #
-                # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
-                # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
-              "a_key": "A String",
-            },
-            "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
-                # For example, a Webhook endpoint might use "https://example.com/push".
+              # The possible values for this attribute are:
+              #
+              # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
+              # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
+            "a_key": "A String",
           },
-          "name": "A String", # The name of the subscription. It must have the format
-              # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
-              # start with a letter, and contain only letters (`[A-Za-z]`), numbers
-              # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
-              # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
-              # in length, and it must not start with `"goog"`.
+          "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed.
+              # For example, a Webhook endpoint might use "https://example.com/push".
         },
+        "name": "A String", # The name of the subscription. It must have the format
+            # `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` must
+            # start with a letter, and contain only letters (`[A-Za-z]`), numbers
+            # (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`),
+            # plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters
+            # in length, and it must not start with `"goog"`.
+      },
     ],
   }</pre>
 </div>
diff --git a/docs/dyn/runtimeconfig_v1.html b/docs/dyn/runtimeconfig_v1.html
index 8ce343e..050d8b8 100644
--- a/docs/dyn/runtimeconfig_v1.html
+++ b/docs/dyn/runtimeconfig_v1.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1.html">Google Cloud RuntimeConfig API</a></h1>
+<h1><a href="runtimeconfig_v1.html">Google Cloud Runtime Configuration API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="runtimeconfig_v1.operations.html">operations()</a></code>
diff --git a/docs/dyn/runtimeconfig_v1.operations.html b/docs/dyn/runtimeconfig_v1.operations.html
index 8079e8f..ee11b3a 100644
--- a/docs/dyn/runtimeconfig_v1.operations.html
+++ b/docs/dyn/runtimeconfig_v1.operations.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1.operations.html">operations</a></h1>
+<h1><a href="runtimeconfig_v1.html">Google Cloud Runtime Configuration API</a> . <a href="runtimeconfig_v1.operations.html">operations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#cancel">cancel(name, body, x__xgafv=None)</a></code></p>
@@ -162,11 +162,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection. (required)
+  name: string, The name of the operation's parent resource. (required)
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -206,7 +211,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -229,7 +234,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
diff --git a/docs/dyn/runtimeconfig_v1beta1.html b/docs/dyn/runtimeconfig_v1beta1.html
index df2bbe0..96bbcc5 100644
--- a/docs/dyn/runtimeconfig_v1beta1.html
+++ b/docs/dyn/runtimeconfig_v1beta1.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a></h1>
+<h1><a href="runtimeconfig_v1beta1.html">Google Cloud Runtime Configuration API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="runtimeconfig_v1beta1.projects.html">projects()</a></code>
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
index 52faa4f..d13d181 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a></h1>
+<h1><a href="runtimeconfig_v1beta1.html">Google Cloud Runtime Configuration API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="runtimeconfig_v1beta1.projects.configs.operations.html">operations()</a></code>
@@ -102,7 +102,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists all the RuntimeConfig resources within project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -131,6 +131,7 @@
 { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
     # service. A RuntimeConfig resource consists of metadata and a hierarchy of
     # variables.
+  "description": "A String", # An optional description of the RuntimeConfig object.
   "name": "A String", # The resource name of a runtime config. The name must have the format:
       # 
       #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -142,7 +143,6 @@
       # You pick the RuntimeConfig resource name, but the server will validate that
       # the name adheres to this format. After you create the resource, you cannot
       # change the resource's name.
-  "description": "A String", # An optional description of the RuntimeConfig object.
 }
 
   requestId: string, An optional but recommended unique `request_id`. If the server
@@ -166,6 +166,7 @@
     { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
       # service. A RuntimeConfig resource consists of metadata and a hierarchy of
       # variables.
+    "description": "A String", # An optional description of the RuntimeConfig object.
     "name": "A String", # The resource name of a runtime config. The name must have the format:
         #
         #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -177,7 +178,6 @@
         # You pick the RuntimeConfig resource name, but the server will validate that
         # the name adheres to this format. After you create the resource, you cannot
         # change the resource's name.
-    "description": "A String", # An optional description of the RuntimeConfig object.
   }</pre>
 </div>
 
@@ -228,6 +228,7 @@
     { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
       # service. A RuntimeConfig resource consists of metadata and a hierarchy of
       # variables.
+    "description": "A String", # An optional description of the RuntimeConfig object.
     "name": "A String", # The resource name of a runtime config. The name must have the format:
         #
         #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -239,7 +240,6 @@
         # You pick the RuntimeConfig resource name, but the server will validate that
         # the name adheres to this format. After you create the resource, you cannot
         # change the resource's name.
-    "description": "A String", # An optional description of the RuntimeConfig object.
   }</pre>
 </div>
 
@@ -317,6 +317,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -324,7 +325,6 @@
         ],
       },
     ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -335,24 +335,25 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
+    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists all the RuntimeConfig resources within project.
 
 Args:
   parent: string, The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848)
 for this request, in the format `projects/[PROJECT_ID]`. (required)
+  pageSize: integer, Specifies the number of results to return per page. If there are fewer
+elements than the specified number, returns all elements.
   pageToken: string, Specifies a page token to use. Set `pageToken` to a `nextPageToken`
 returned by a previous list request to get the next page of results.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  pageSize: integer, Specifies the number of results to return per page. If there are fewer
-elements than the specified number, returns all elements.
 
 Returns:
   An object of the form:
@@ -369,6 +370,7 @@
       { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
           # service. A RuntimeConfig resource consists of metadata and a hierarchy of
           # variables.
+        "description": "A String", # An optional description of the RuntimeConfig object.
         "name": "A String", # The resource name of a runtime config. The name must have the format:
             #
             #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -380,7 +382,6 @@
             # You pick the RuntimeConfig resource name, but the server will validate that
             # the name adheres to this format. After you create the resource, you cannot
             # change the resource's name.
-        "description": "A String", # An optional description of the RuntimeConfig object.
       },
     ],
   }</pre>
@@ -472,6 +473,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -479,7 +481,6 @@
           ],
         },
       ],
-      "version": 42, # Version of the `Policy`. The default version is 0.
       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
           # prevent simultaneous updates of a policy from overwriting each other.
           # It is strongly suggested that systems make use of the `etag` in the
@@ -490,6 +491,7 @@
           #
           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
           # policy is overwritten blindly.
+      "version": 42, # Version of the `Policy`. The default version is 0.
     },
   }
 
@@ -558,6 +560,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -565,7 +568,6 @@
         ],
       },
     ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -576,6 +578,7 @@
         #
         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
         # policy is overwritten blindly.
+    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -634,6 +637,7 @@
 { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
     # service. A RuntimeConfig resource consists of metadata and a hierarchy of
     # variables.
+  "description": "A String", # An optional description of the RuntimeConfig object.
   "name": "A String", # The resource name of a runtime config. The name must have the format:
       # 
       #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -645,7 +649,6 @@
       # You pick the RuntimeConfig resource name, but the server will validate that
       # the name adheres to this format. After you create the resource, you cannot
       # change the resource's name.
-  "description": "A String", # An optional description of the RuntimeConfig object.
 }
 
   x__xgafv: string, V1 error format.
@@ -659,6 +662,7 @@
     { # A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig
       # service. A RuntimeConfig resource consists of metadata and a hierarchy of
       # variables.
+    "description": "A String", # An optional description of the RuntimeConfig object.
     "name": "A String", # The resource name of a runtime config. The name must have the format:
         #
         #     projects/[PROJECT_ID]/configs/[CONFIG_NAME]
@@ -670,7 +674,6 @@
         # You pick the RuntimeConfig resource name, but the server will validate that
         # the name adheres to this format. After you create the resource, you cannot
         # change the resource's name.
-    "description": "A String", # An optional description of the RuntimeConfig object.
   }</pre>
 </div>
 
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
index d4aaaf9..38dcc67 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
@@ -72,13 +72,13 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.operations.html">operations</a></h1>
+<h1><a href="runtimeconfig_v1beta1.html">Google Cloud Runtime Configuration API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.operations.html">operations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -105,6 +105,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -122,7 +138,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -145,7 +161,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -168,27 +184,11 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
@@ -200,14 +200,22 @@
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  permissions: string, The set of permissions to check for the `resource`. Permissions with
-wildcards (such as '*' or 'storage.*') are not allowed. For more
-information see
-[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). (repeated)
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
index 17d3516..edc0a7b 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.variables.html">variables</a></h1>
+<h1><a href="runtimeconfig_v1beta1.html">Google Cloud Runtime Configuration API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.variables.html">variables</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(parent, body, requestId=None, x__xgafv=None)</a></code></p>
@@ -90,7 +90,7 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <p class="toc_element">
   <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
@@ -376,7 +376,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
@@ -388,14 +388,22 @@
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  permissions: string, The set of permissions to check for the `resource`. Permissions with
-wildcards (such as '*' or 'storage.*') are not allowed. For more
-information see
-[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). (repeated)
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
index 5ce5a1b..ce42e66 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.waiters.html">waiters</a></h1>
+<h1><a href="runtimeconfig_v1beta1.html">Google Cloud Runtime Configuration API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.waiters.html">waiters</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(parent, body, requestId=None, x__xgafv=None)</a></code></p>
@@ -84,13 +84,13 @@
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a single waiter.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">List waiters within the given configuration.</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>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -208,7 +208,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -231,7 +231,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -285,6 +285,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -302,7 +318,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -325,7 +341,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -348,22 +364,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -511,7 +511,7 @@
           # error message is needed, put the localized message in the error details or
           # localize it in the client. The optional error details may contain arbitrary
           # information about the error. There is a predefined set of error detail types
-          # in the package `google.rpc` which can be used for common error conditions.
+          # in the package `google.rpc` that can be used for common error conditions.
           #
           # # Language mapping
           #
@@ -534,7 +534,7 @@
           #     errors.
           #
           # - Workflow errors. A typical workflow has multiple steps. Each step may
-          #     have a `Status` message for error reporting purpose.
+          #     have a `Status` message for error reporting.
           #
           # - Batch operations. If a client uses batch request and batch response, the
           #     `Status` message should be used directly inside batch response, one for
@@ -564,7 +564,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>List waiters within the given configuration.
 
 Args:
@@ -572,14 +572,14 @@
 The configuration must exist beforehand; the path must by in the format:
 
 `projects/[PROJECT_ID]/configs/[CONFIG_NAME]` (required)
-  pageSize: integer, Specifies the number of results to return per page. If there are fewer
-elements than the specified number, returns all elements.
   pageToken: string, Specifies a page token to use. Set `pageToken` to a `nextPageToken`
 returned by a previous list request to get the next page of results.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Specifies the number of results to return per page. If there are fewer
+elements than the specified number, returns all elements.
 
 Returns:
   An object of the form:
@@ -691,7 +691,7 @@
               # error message is needed, put the localized message in the error details or
               # localize it in the client. The optional error details may contain arbitrary
               # information about the error. There is a predefined set of error detail types
-              # in the package `google.rpc` which can be used for common error conditions.
+              # in the package `google.rpc` that can be used for common error conditions.
               #
               # # Language mapping
               #
@@ -714,7 +714,7 @@
               #     errors.
               #
               # - Workflow errors. A typical workflow has multiple steps. Each step may
-              #     have a `Status` message for error reporting purpose.
+              #     have a `Status` message for error reporting.
               #
               # - Batch operations. If a client uses batch request and batch response, the
               #     `Status` message should be used directly inside batch response, one for
@@ -760,7 +760,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
@@ -772,14 +772,22 @@
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested.
 See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
+        # wildcards (such as '*' or 'storage.*') are not allowed. For more
+        # information see
+        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+      "A String",
+    ],
+  }
+
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
-  permissions: string, The set of permissions to check for the `resource`. Permissions with
-wildcards (such as '*' or 'storage.*') are not allowed. For more
-information see
-[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). (repeated)
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.html b/docs/dyn/runtimeconfig_v1beta1.projects.html
index a56a2cf..1dc9c50 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a></h1>
+<h1><a href="runtimeconfig_v1beta1.html">Google Cloud Runtime Configuration API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="runtimeconfig_v1beta1.projects.configs.html">configs()</a></code>
diff --git a/docs/dyn/safebrowsing_v4.encodedFullHashes.html b/docs/dyn/safebrowsing_v4.encodedFullHashes.html
index b6fba52..df075b3 100644
--- a/docs/dyn/safebrowsing_v4.encodedFullHashes.html
+++ b/docs/dyn/safebrowsing_v4.encodedFullHashes.html
@@ -96,6 +96,8 @@
   An object of the form:
 
     {
+    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
+        # cache the response.
     "matches": [ # The full hashes that matched the requested prefixes.
       { # A match when checking a threat entry in the Safe Browsing threat lists.
         "threatType": "A String", # The threat type matching this threat.
@@ -123,8 +125,6 @@
         "platformType": "A String", # The platform type matching this threat.
       },
     ],
-    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
-        # cache the response.
     "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any find hashes
         # request. If this field is not set, clients can issue a request as soon as
         # they want.
diff --git a/docs/dyn/safebrowsing_v4.encodedUpdates.html b/docs/dyn/safebrowsing_v4.encodedUpdates.html
index 7abd452..97c4eaf 100644
--- a/docs/dyn/safebrowsing_v4.encodedUpdates.html
+++ b/docs/dyn/safebrowsing_v4.encodedUpdates.html
@@ -105,36 +105,36 @@
             # this field is empty or contains exactly one ThreatEntrySet.
           { # A set of threats that should be added or removed from a client's local
               # database.
-            "compressionType": "A String", # The compression type for the entries in this set.
-            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
-                # Golomb-Rice encoding. Used for sending compressed removal indices. The
-                # removal indices (uint32) are sorted in ascending order, then delta encoded
-                # and stored as encoded_data.
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
+            "compressionType": "A String", # The compression type for the entries in this set.
             "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
               "indices": [ # The indices to remove from a lexicographically-sorted local list.
                 42,
               ],
             },
-            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
-                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
-                # ascending order, then delta encoded and stored as encoded_data.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
@@ -167,36 +167,36 @@
             # response.
           { # A set of threats that should be added or removed from a client's local
               # database.
-            "compressionType": "A String", # The compression type for the entries in this set.
-            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
-                # Golomb-Rice encoding. Used for sending compressed removal indices. The
-                # removal indices (uint32) are sorted in ascending order, then delta encoded
-                # and stored as encoded_data.
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
+            "compressionType": "A String", # The compression type for the entries in this set.
             "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
               "indices": [ # The indices to remove from a lexicographically-sorted local list.
                 42,
               ],
             },
-            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
-                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
-                # ascending order, then delta encoded and stored as encoded_data.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
diff --git a/docs/dyn/safebrowsing_v4.fullHashes.html b/docs/dyn/safebrowsing_v4.fullHashes.html
index 4e1ab19..0544105 100644
--- a/docs/dyn/safebrowsing_v4.fullHashes.html
+++ b/docs/dyn/safebrowsing_v4.fullHashes.html
@@ -88,15 +88,15 @@
 
 { # Request to return full hashes matched by the provided hash prefixes.
     "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
+      "clientVersion": "A String", # The version of the client implementation.
       "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
           # of the Safe Browsing API.
-      "clientVersion": "A String", # The version of the client implementation.
     },
     "apiClient": { # The client metadata associated with Safe Browsing API requests. # Client metadata associated with callers of higher-level APIs built on top
         # of the client's implementation.
+      "clientVersion": "A String", # The version of the client implementation.
       "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
           # of the Safe Browsing API.
-      "clientVersion": "A String", # The version of the client implementation.
     },
     "threatInfo": { # The information regarding one or more threats that a client submits when # The lists and hashes to be checked.
         # checking for matches in threat lists.
@@ -135,6 +135,8 @@
   An object of the form:
 
     {
+    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
+        # cache the response.
     "matches": [ # The full hashes that matched the requested prefixes.
       { # A match when checking a threat entry in the Safe Browsing threat lists.
         "threatType": "A String", # The threat type matching this threat.
@@ -162,8 +164,6 @@
         "platformType": "A String", # The platform type matching this threat.
       },
     ],
-    "negativeCacheDuration": "A String", # For requested entities that did not match the threat list, how long to
-        # cache the response.
     "minimumWaitDuration": "A String", # The minimum duration the client must wait before issuing any find hashes
         # request. If this field is not set, clients can issue a request as soon as
         # they want.
diff --git a/docs/dyn/safebrowsing_v4.threatListUpdates.html b/docs/dyn/safebrowsing_v4.threatListUpdates.html
index ccf47dc..851d01d 100644
--- a/docs/dyn/safebrowsing_v4.threatListUpdates.html
+++ b/docs/dyn/safebrowsing_v4.threatListUpdates.html
@@ -92,17 +92,17 @@
       # NOTE: Field index 2 is unused.
       # NEXT: 5
     "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
+      "clientVersion": "A String", # The version of the client implementation.
       "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
           # of the Safe Browsing API.
-      "clientVersion": "A String", # The version of the client implementation.
     },
     "listUpdateRequests": [ # The requested threat list updates.
       { # A single list update request.
-        "platformType": "A String", # The type of platform at risk by entries present in the list.
         "threatType": "A String", # The type of threat posed by entries present in the list.
-        "threatEntryType": "A String", # The types of entries present in the list.
         "state": "A String", # The current state of the client for the requested list (the encrypted
             # client state that was received from the last successful list update).
+        "threatEntryType": "A String", # The types of entries present in the list.
+        "platformType": "A String", # The type of platform at risk by entries present in the list.
         "constraints": { # The constraints for this update. # The constraints associated with this request.
           "maxDatabaseEntries": 42, # Sets the maximum number of entries that the client is willing to have
               # in the local database. This should be a power of 2 between 2**10 and
@@ -139,36 +139,36 @@
             # this field is empty or contains exactly one ThreatEntrySet.
           { # A set of threats that should be added or removed from a client's local
               # database.
-            "compressionType": "A String", # The compression type for the entries in this set.
-            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
-                # Golomb-Rice encoding. Used for sending compressed removal indices. The
-                # removal indices (uint32) are sorted in ascending order, then delta encoded
-                # and stored as encoded_data.
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
+            "compressionType": "A String", # The compression type for the entries in this set.
             "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
               "indices": [ # The indices to remove from a lexicographically-sorted local list.
                 42,
               ],
             },
-            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
-                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
-                # ascending order, then delta encoded and stored as encoded_data.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
@@ -201,36 +201,36 @@
             # response.
           { # A set of threats that should be added or removed from a client's local
               # database.
-            "compressionType": "A String", # The compression type for the entries in this set.
-            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
-                # Golomb-Rice encoding. Used for sending compressed removal indices. The
-                # removal indices (uint32) are sorted in ascending order, then delta encoded
-                # and stored as encoded_data.
+            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
+                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
+                # ascending order, then delta encoded and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
+            "compressionType": "A String", # The compression type for the entries in this set.
             "rawIndices": { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
               "indices": [ # The indices to remove from a lexicographically-sorted local list.
                 42,
               ],
             },
-            "riceHashes": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded 4-byte prefixes of SHA256-formatted entries, using a
-                # Golomb-Rice encoding. The hashes are converted to uint32, sorted in
-                # ascending order, then delta encoded and stored as encoded_data.
+            "riceIndices": { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or # The encoded local, lexicographically-sorted list indices, using a
+                # Golomb-Rice encoding. Used for sending compressed removal indices. The
+                # removal indices (uint32) are sorted in ascending order, then delta encoded
+                # and stored as encoded_data.
                 # compressed removal indices.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
+                  # is missing (that is, zero) if `num_entries` is zero.
               "numEntries": 42, # The number of entries that are delta encoded in the encoded data. If only a
                   # single integer was encoded, this will be zero and the single value will be
                   # stored in `first_value`.
-              "riceParameter": 42, # The Golomb-Rice parameter, which is a number between 2 and 28. This field
-                  # is missing (that is, zero) if `num_entries` is zero.
+              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
               "firstValue": "A String", # The offset of the first entry in the encoded data, or, if only a single
                   # integer was encoded, that single integer's value.
             },
diff --git a/docs/dyn/safebrowsing_v4.threatMatches.html b/docs/dyn/safebrowsing_v4.threatMatches.html
index f4f0f09..3379a46 100644
--- a/docs/dyn/safebrowsing_v4.threatMatches.html
+++ b/docs/dyn/safebrowsing_v4.threatMatches.html
@@ -88,9 +88,9 @@
 
 { # Request to check entries against lists.
     "client": { # The client metadata associated with Safe Browsing API requests. # The client metadata.
+      "clientVersion": "A String", # The version of the client implementation.
       "clientId": "A String", # A client ID that (hopefully) uniquely identifies the client implementation
           # of the Safe Browsing API.
-      "clientVersion": "A String", # The version of the client implementation.
     },
     "threatInfo": { # The information regarding one or more threats that a client submits when # The lists and entries to be checked for matches.
         # checking for matches in threat lists.
diff --git a/docs/dyn/script_v1.scripts.html b/docs/dyn/script_v1.scripts.html
index 0088741..abaadb0 100644
--- a/docs/dyn/script_v1.scripts.html
+++ b/docs/dyn/script_v1.scripts.html
@@ -101,6 +101,16 @@
       # based on the implementation of the script.
     "function": "A String", # The name of the function to execute in the given script. The name does not
         # include parentheses or parameters.
+    "devMode": True or False, # If `true` and the user is an owner of the script, the script runs at the
+        # most recently saved version rather than the version deployed for use with
+        # the Execution API. Optional; default is `false`.
+    "parameters": [ # The parameters to be passed to the function being executed. The object type
+        # for each parameter should match the expected type in Apps Script.
+        # Parameters cannot be Apps Script-specific object types (such as a
+        # `Document` or a `Calendar`); they can only be primitive types such as
+        # `string`, `number`, `array`, `object`, or `boolean`. Optional.
+      "",
+    ],
     "sessionState": "A String", # For Android add-ons only. An ID that represents the user's current session
         # in the Android app for Google Docs or Sheets, included as extra data in the
         # [`Intent`](https://developer.android.com/guide/components/intents-filters.html)
@@ -111,16 +121,6 @@
         # (in Docs) or selected cell (in Sheets). To retrieve the state, call
         # `Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState")`.
         # Optional.
-    "parameters": [ # The parameters to be passed to the function being executed. The object type
-        # for each parameter should match the expected type in Apps Script.
-        # Parameters cannot be Apps Script-specific object types (such as a
-        # `Document` or a `Calendar`); they can only be primitive types such as
-        # `string`, `number`, `array`, `object`, or `boolean`. Optional.
-      "",
-    ],
-    "devMode": True or False, # If `true` and the user is an owner of the script, the script runs at the
-        # most recently saved version rather than the version deployed for use with
-        # the Execution API. Optional; default is `false`.
   }
 
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/servicecontrol_v1.services.html b/docs/dyn/servicecontrol_v1.services.html
index e58d8b1..9644f2b 100644
--- a/docs/dyn/servicecontrol_v1.services.html
+++ b/docs/dyn/servicecontrol_v1.services.html
@@ -286,15 +286,6 @@
   An object of the form:
 
     { # Response message for the AllocateQuota method.
-    "allocateErrors": [ # Indicates the decision of the allocate.
-      {
-        "code": "A String", # Error code.
-        "description": "A String", # Free-form text that provides details on the cause of the error.
-        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
-            # on this field. For example, "clientip:<ip address of client>" or
-            # "project:<Google developer project id>".
-      },
-    ],
     "serviceConfigId": "A String", # ID of the actual config used to process the request.
     "quotaMetrics": [ # Quota metrics to indicate the result of allocation. Depending on the
         # request, one or more of the following metrics will be included:
@@ -425,6 +416,15 @@
         "metricName": "A String", # The metric name defined in the service configuration.
       },
     ],
+    "allocateErrors": [ # Indicates the decision of the allocate.
+      {
+        "code": "A String", # Error code.
+        "description": "A String", # Free-form text that provides details on the cause of the error.
+        "subject": "A String", # Subject to whom this error applies. See the specific enum for more details
+            # on this field. For example, "clientip:<ip address of client>" or
+            # "project:<Google developer project id>".
+      },
+    ],
     "operationId": "A String", # The same operation_id value used in the AllocateQuotaRequest. Used for
         # logging and diagnostics purposes.
   }</pre>
@@ -654,13 +654,13 @@
               # is expressed as a JSON object.
             "a_key": "", # Properties of the object.
           },
+          "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
+              # the implementation will generate one based on operation_id.
           "protoPayload": { # The log entry payload, represented as a protocol buffer that is
               # expressed as a JSON object. You can only pass `protoPayload`
               # values that belong to a set of approved types.
             "a_key": "", # Properties of the object. Contains field @type with type URL.
           },
-          "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
-              # the implementation will generate one based on operation_id.
           "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
               # `"book_log"`.
         },
@@ -693,12 +693,6 @@
     { # Response message for the Check method.
     "serviceConfigId": "A String", # The actual config id used to process the request.
     "quotaInfo": { # Contains the quota information for a quota check response. # Quota information for the check request associated with this response.
-      "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
-          # quota check was not successful, then this will not be populated due to no
-          # quota consumption.
-          # Deprecated: Use quota_metrics to get per quota group usage.
-        "a_key": 42,
-      },
       "quotaMetrics": [ # Quota metrics to indicate the usage. Depending on the check request, one or
           # more of the following metrics will be included:
           #
@@ -831,6 +825,12 @@
           # Deprecated: Use quota_metrics to get per quota group limit exceeded status.
         "A String",
       ],
+      "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
+          # quota check was not successful, then this will not be populated due to no
+          # quota consumption.
+          # Deprecated: Use quota_metrics to get per quota group usage.
+        "a_key": 42,
+      },
     },
     "checkInfo": { # Feedback data returned from the server during processing a Check request.
       "unusedArguments": [ # A list of fields and label keys that are ignored by the server.
@@ -1740,13 +1740,13 @@
                 # is expressed as a JSON object.
               "a_key": "", # Properties of the object.
             },
+            "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
+                # the implementation will generate one based on operation_id.
             "protoPayload": { # The log entry payload, represented as a protocol buffer that is
                 # expressed as a JSON object. You can only pass `protoPayload`
                 # values that belong to a set of approved types.
               "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
-            "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
-                # the implementation will generate one based on operation_id.
             "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
                 # `"book_log"`.
           },
@@ -1814,7 +1814,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -1837,7 +1837,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -1873,12 +1873,6 @@
         # If there is no quota release request, report_quota_info will be empty.
       {
         "quotaInfo": { # Contains the quota information for a quota check response. # Quota usage info when processing the `Operation`.
-          "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
-              # quota check was not successful, then this will not be populated due to no
-              # quota consumption.
-              # Deprecated: Use quota_metrics to get per quota group usage.
-            "a_key": 42,
-          },
           "quotaMetrics": [ # Quota metrics to indicate the usage. Depending on the check request, one or
               # more of the following metrics will be included:
               #
@@ -2011,6 +2005,12 @@
               # Deprecated: Use quota_metrics to get per quota group limit exceeded status.
             "A String",
           ],
+          "quotaConsumed": { # Map of quota group name to the actual number of tokens consumed. If the
+              # quota check was not successful, then this will not be populated due to no
+              # quota consumption.
+              # Deprecated: Use quota_metrics to get per quota group usage.
+            "a_key": 42,
+          },
         },
         "operationId": "A String", # The Operation.operation_id value from the request.
       },
diff --git a/docs/dyn/servicemanagement_v1.operations.html b/docs/dyn/servicemanagement_v1.operations.html
index 0e222d0..4c7ae64 100644
--- a/docs/dyn/servicemanagement_v1.operations.html
+++ b/docs/dyn/servicemanagement_v1.operations.html
@@ -102,12 +102,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -125,7 +119,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -148,7 +142,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -187,6 +181,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -228,15 +228,10 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
-        "metadata": { # Service-specific metadata associated with the operation.  It typically
-            # contains progress information and common metadata such as create time.
-            # Some services might not provide such metadata.  Any method that returns a
-            # long-running operation should document the metadata type, if any.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -254,7 +249,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -277,7 +272,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -316,9 +311,14 @@
         "name": "A String", # The server-assigned name, which is only unique within the same service that
             # originally returns it. If you use the default HTTP mapping, the
             # `name` should have the format of `operations/some/unique/name`.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/servicemanagement_v1.services.configs.html b/docs/dyn/servicemanagement_v1.services.configs.html
index dee0d71..396dcf6 100644
--- a/docs/dyn/servicemanagement_v1.services.configs.html
+++ b/docs/dyn/servicemanagement_v1.services.configs.html
@@ -256,6 +256,9 @@
       },
     ],
   },
+  "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+      # by the client for tracking purpose. If empty, the server may choose to
+      # generate one instead.
   "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
     "rules": [ # A list of API backend rules that apply to individual API methods.
         #
@@ -264,6 +267,8 @@
         "selector": "A String", # Selects the methods to which this rule applies.
             #
             # Refer to selector for syntax details.
+        "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+            # value lower than this will be rejected.
         "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
             # default depends on the deployment context.
         "address": "A String", # The address of the API backend.
@@ -337,9 +342,6 @@
     ],
   },
   "title": "A String", # The product title associated with this service.
-  "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-      # by the client for tracking purpose. If empty, the server may choose to
-      # generate one instead.
   "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
       #
       # Example for an API targeted for external use:
@@ -392,13 +394,6 @@
               #      canonical_scopes: https://www.googleapis.com/auth/calendar,
               #                        https://www.googleapis.com/auth/calendar.read
         },
-        "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-            # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-            #
-            # For requests without credentials, if the service control environment is
-            # specified, each incoming request **must** be associated with a service
-            # consumer. This can be done by passing an API key that belongs to a consumer
-            # project.
         "requirements": [ # Requirements for additional authentication providers.
           { # User-defined authentication requirements, including support for
               # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -425,6 +420,18 @@
                 #                bookstore_web.apps.googleusercontent.com
           },
         ],
+        "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+            # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+            #
+            # For requests without credentials, if the service control environment is
+            # specified, each incoming request **must** be associated with a service
+            # consumer. This can be done by passing an API key that belongs to a consumer
+            # project.
+        "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+          "provider": "A String", # A configuration string containing connection information for the
+              # authentication provider, typically formatted as a SmartService string
+              # (go/smartservice).
+        },
         "selector": "A String", # Selects the methods to which this rule applies.
             #
             # Refer to selector for syntax details.
@@ -497,11 +504,11 @@
           #       rules:
           #       - selector: "google.example.library.v1.LibraryService.CreateBook"
           #         allow_unregistered_calls: true
+        "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
         "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
             # methods in all APIs.
             #
             # Refer to selector for syntax details.
-        "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
       },
     ],
     "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
@@ -584,6 +591,11 @@
           # parameters. Assume the following definition of the request message:
           #
           #
+          #     service Messaging {
+          #       rpc GetMessage(GetMessageRequest) returns (Message) {
+          #         option (google.api.http).get = "/v1/messages/{message_id}";
+          #       }
+          #     }
           #     message GetMessageRequest {
           #       message SubMessage {
           #         string subfield = 1;
@@ -742,31 +754,50 @@
             # body. NOTE: the referred field must not be a repeated field and must be
             # present at the top-level of request message type.
         "get": "A String", # Used for listing and getting information about resources.
-        "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-            # For media support, add instead [][google.bytestream.RestByteStream] as an
-            # API to your configuration.
-            # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-            # your configuration for Bytestream methods.
-          "enabled": True or False, # Whether download is enabled.
-          "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-              #
-              # Specify name of the download service if one is used for download.
-        },
+        "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+            # pattern. If specified, this field overrides the default collection name.
+            # Example:
+            #
+            #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+            #         returns (AddressesAggregatedListResponse) {
+            #       option (google.api.http) = {
+            #         get: "/v1/projects/{project_id}/aggregated/addresses"
+            #         rest_collection: "projects.addresses"
+            #       };
+            #     }
+            #
+            # This method has the automatically derived collection name
+            # "projects.aggregated". Because, semantically, this rpc is actually an
+            # operation on the "projects.addresses" collection, the `rest_collection`
+            # field is configured to override the derived collection name.
         "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
             # not contain an `additional_bindings` field themselves (that is,
             # the nesting may only be one level deep).
           # Object with schema name: HttpRule
         ],
-        "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+        "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
             # Bytestream, add instead
             # [][google.bytestream.RestByteStream] as an API to your
             # configuration for Bytestream methods.
+            # Use this only for Scotty Requests. Do not use this for media support using
             # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
             # your configuration for Bytestream methods.
+          "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+          "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+          "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+              # of the given patterns.
+            "A String",
+          ],
+          "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+              # upload should be sent to the backend. These notifications will not be seen
+              # by the client and will not consume quota.
           "enabled": True or False, # Whether upload is enabled.
-          "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+          "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
               #
               # Specify name of the upload service if one is used for upload.
+          "maxSize": "A String", # Optional maximum acceptable size for an upload.
+              # The size is specified in bytes.
+          "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
         },
         "selector": "A String", # Selects methods to which this rule applies.
             #
@@ -776,6 +807,39 @@
             # not set, the response message will be used as HTTP body of response.
             # NOTE: the referred field must be not a repeated field and must be present
             # at the top-level of response message type.
+        "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+            # pattern. If specified, this field overrides the default method name.
+            # Example:
+            #
+            #     rpc CreateResource(CreateResourceRequest)
+            #         returns (CreateResourceResponse) {
+            #       option (google.api.http) = {
+            #         post: "/v1/resources",
+            #         body: "resource",
+            #         rest_method_name: "insert"
+            #       };
+            #     }
+            #
+            # This method has the automatically derived rest method name "create", but
+            #  for backwards compatability with apiary, it is specified as insert.
+        "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+            # For media support, add instead [][google.bytestream.RestByteStream] as an
+            # API to your configuration.
+            # Use this only for Scotty Requests. Do not use this for media support using
+            # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+            # your configuration for Bytestream methods.
+          "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+              # download of this media.
+          "enabled": True or False, # Whether download is enabled.
+          "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+              # download should be sent to the backend.
+          "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+              # The size is specified in bytes.
+          "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+          "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+              #
+              # Specify name of the download service if one is used for download.
+        },
         "put": "A String", # Used for updating a resource.
         "patch": "A String", # Used for updating a resource.
         "post": "A String", # Used for creating a resource.
@@ -786,6 +850,12 @@
         "delete": "A String", # Used for deleting a resource.
       },
     ],
+    "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+        # cases of single segment matches in reserved expansion, where "%2F" will be
+        # left encoded.
+        #
+        # The default behavior is to not decode RFC 6570 reserved characters in multi
+        # segment matches.
   },
   "apis": [ # A list of API interfaces exported by this service. Only the `name` field
       # of the google.protobuf.Api needs to be provided by the configuration
@@ -793,31 +863,8 @@
       # normalization process. It is an error to specify an API interface here
       # which cannot be resolved against the associated IDL files.
     { # Api is a light-weight descriptor for a protocol buffer service.
-      "methods": [ # The methods of this api, in unspecified order.
-        { # Method represents a method of an api.
-          "name": "A String", # The simple name of this method.
-          "requestStreaming": True or False, # If true, the request is streamed.
-          "responseTypeUrl": "A String", # The URL of the output message type.
-          "requestTypeUrl": "A String", # A URL of the input message type.
-          "responseStreaming": True or False, # If true, the response is streamed.
-          "syntax": "A String", # The source syntax of this method.
-          "options": [ # Any metadata attached to the method.
-            { # A protocol buffer option, which can be attached to a message, field,
-                # enumeration, etc.
-              "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                  # For custom options, it should be the fully-qualified name. For example,
-                  # `"google.api.http"`.
-              "value": { # The option's value packed in an Any message. If the value is a primitive,
-                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                  # should be used. If the value is an enum, it should be stored as an int32
-                  # value using the google.protobuf.Int32Value type.
-                "a_key": "", # Properties of the object. Contains field @type with type URL.
-              },
-            },
-          ],
-        },
-      ],
+      "name": "A String", # The fully qualified name of this api, including package name
+          # followed by the api's simple name.
       "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
           # message.
           # protobuf element, like the file in which it is defined.
@@ -943,8 +990,31 @@
           },
         },
       ],
-      "name": "A String", # The fully qualified name of this api, including package name
-          # followed by the api's simple name.
+      "methods": [ # The methods of this api, in unspecified order.
+        { # Method represents a method of an api.
+          "name": "A String", # The simple name of this method.
+          "requestStreaming": True or False, # If true, the request is streamed.
+          "responseTypeUrl": "A String", # The URL of the output message type.
+          "requestTypeUrl": "A String", # A URL of the input message type.
+          "responseStreaming": True or False, # If true, the response is streamed.
+          "syntax": "A String", # The source syntax of this method.
+          "options": [ # Any metadata attached to the method.
+            { # A protocol buffer option, which can be attached to a message, field,
+                # enumeration, etc.
+              "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                  # For custom options, it should be the fully-qualified name. For example,
+                  # `"google.api.http"`.
+              "value": { # The option's value packed in an Any message. If the value is a primitive,
+                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                  # should be used. If the value is an enum, it should be stored as an int32
+                  # value using the google.protobuf.Int32Value type.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+            },
+          ],
+        },
+      ],
     },
   ],
   "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -972,6 +1042,160 @@
       "A String",
     ],
   },
+  "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+      # usage.
+      #
+      # The quota configuration works this way:
+      # - The service configuration defines a set of metrics.
+      # - For API calls, the quota.metric_rules maps methods to metrics with
+      #   corresponding costs.
+      # - The quota.limits defines limits on the metrics, which will be used for
+      #   quota checks at runtime.
+      #
+      # An example quota configuration in yaml format:
+      #
+      #    quota:
+      #
+      #      - name: apiWriteQpsPerProject
+      #        metric: library.googleapis.com/write_calls
+      #        unit: "1/min/{project}"  # rate limit for consumer projects
+      #        values:
+      #          STANDARD: 10000
+      #
+      #
+      #      # The metric rules bind all methods to the read_calls metric,
+      #      # except for the UpdateBook and DeleteBook methods. These two methods
+      #      # are mapped to the write_calls metric, with the UpdateBook method
+      #      # consuming at twice rate as the DeleteBook method.
+      #      metric_rules:
+      #      - selector: "*"
+      #        metric_costs:
+      #          library.googleapis.com/read_calls: 1
+      #      - selector: google.example.library.v1.LibraryService.UpdateBook
+      #        metric_costs:
+      #          library.googleapis.com/write_calls: 2
+      #      - selector: google.example.library.v1.LibraryService.DeleteBook
+      #        metric_costs:
+      #          library.googleapis.com/write_calls: 1
+      #
+      #  Corresponding Metric definition:
+      #
+      #      metrics:
+      #      - name: library.googleapis.com/read_calls
+      #        display_name: Read requests
+      #        metric_kind: DELTA
+      #        value_type: INT64
+      #
+      #      - name: library.googleapis.com/write_calls
+      #        display_name: Write requests
+      #        metric_kind: DELTA
+      #        value_type: INT64
+    "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+        # or more metrics.
+      { # Bind API methods to metrics. Binding a method to a metric causes that
+          # metric's configured quota behaviors to apply to the method call.
+        "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+            # cost applied to each metric.
+            #
+            # The key of the map is the metric name, and the values are the amount
+            # increased for the metric against which the quota limits are defined.
+            # The value must not be negative.
+          "a_key": "A String",
+        },
+        "selector": "A String", # Selects the methods to which this rule applies.
+            #
+            # Refer to selector for syntax details.
+      },
+    ],
+    "limits": [ # List of `QuotaLimit` definitions for the service.
+      { # `QuotaLimit` defines a specific limit that applies over a specified duration
+          # for a limit type. There can be at most one limit for a duration and limit
+          # type combination defined within a `QuotaGroup`.
+        "displayName": "A String", # User-visible display name for this limit.
+            # Optional. If not set, the UI will provide a default display name based on
+            # the quota configuration. This field can be used to override the default
+            # display name generated from the configuration.
+        "description": "A String", # Optional. User-visible, extended description for this quota limit.
+            # Should be used only when more context is needed to understand this limit
+            # than provided by the limit's display name (see: `display_name`).
+        "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+            # duration. This is the number of tokens assigned when a client
+            # application developer activates the service for his/her project.
+            #
+            # Specifying a value of 0 will block all requests. This can be used if you
+            # are provisioning quota to selected consumers and blocking others.
+            # Similarly, a value of -1 will indicate an unlimited quota. No other
+            # negative values are allowed.
+            #
+            # Used by group-based quotas only.
+        "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+            # the same metric will be checked together during runtime. The metric must be
+            # defined within the service config.
+            #
+            # Used by metric-based quotas only.
+        "values": { # Tiered limit values, currently only STANDARD is supported.
+          "a_key": "A String",
+        },
+        "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+            # duration. Client application developers can override the default limit up
+            # to this maximum. If specified, this value cannot be set to a value less
+            # than the default limit. If not specified, it is set to the default limit.
+            #
+            # To allow clients to apply overrides with no upper bound, set this to -1,
+            # indicating unlimited maximum quota.
+            #
+            # Used by group-based quotas only.
+        "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+            # For duration longer than a day, only multiple of days is supported. We
+            # support only "100s" and "1d" for now. Additional support will be added in
+            # the future. "0" indicates indefinite duration.
+            #
+            # Used by group-based quotas only.
+        "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+            # The free tier is the number of tokens that will be subtracted from the
+            # billed amount when billing is enabled.
+            # This field can only be set on a limit with duration "1d", in a billable
+            # group; it is invalid on any other limit. If this field is not set, it
+            # defaults to 0, indicating that there is no free tier for this service.
+            #
+            # Used by group-based quotas only.
+        "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+            # Metric.unit. The supported unit kinds are determined by the quota
+            # backend system.
+            #
+            # The [Google Service Control](https://cloud.google.com/service-control)
+            # supports the following unit components:
+            # * One of the time intevals:
+            #   * "/min"  for quota every minute.
+            #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+            #   * Otherwise the quota won't be reset by time, such as storage limit.
+            # * One and only one of the granted containers:
+            #   * "/{project}" quota for a project
+            #
+            # Here are some examples:
+            # * "1/min/{project}" for quota per minute per project.
+            #
+            # Note: the order of unit components is insignificant.
+            # The "1" at the beginning is required to follow the metric unit syntax.
+            #
+            # Used by metric-based quotas only.
+        "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+            # overriding the default limit on per-consumer basis.
+            #
+            # For metric-based quota limits, the name must be provided, and it must be
+            # unique within the service. The name can only include alphanumeric
+            # characters as well as '-'.
+            #
+            # The maximum length of the limit name is 64 characters.
+            #
+            # The name of a limit is used as a unique identifier for this limit.
+            # Therefore, once a limit has been put into use, its name should be
+            # immutable. You can use the display_name field to provide a user-friendly
+            # name for the limit. The display name can be evolved over time without
+            # affecting the identity of the limit.
+      },
+    ],
+  },
   "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
       # elements.  Restrictions are specified using visibility labels
       # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -1132,12 +1356,32 @@
       #     enums:
       #     - name: google.someapi.v1.SomeEnum
     { # Enum type definition.
-      "syntax": "A String", # The source syntax.
       "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
           # protobuf element, like the file in which it is defined.
         "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
             # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
       },
+      "enumvalue": [ # Enum value definitions.
+        { # Enum value definition.
+          "options": [ # Protocol buffer options.
+            { # A protocol buffer option, which can be attached to a message, field,
+                # enumeration, etc.
+              "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                  # For custom options, it should be the fully-qualified name. For example,
+                  # `"google.api.http"`.
+              "value": { # The option's value packed in an Any message. If the value is a primitive,
+                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                  # should be used. If the value is an enum, it should be stored as an int32
+                  # value using the google.protobuf.Int32Value type.
+                "a_key": "", # Properties of the object. Contains field @type with type URL.
+              },
+            },
+          ],
+          "name": "A String", # Enum value name.
+          "number": 42, # Enum value number.
+        },
+      ],
       "options": [ # Protocol buffer options.
         { # A protocol buffer option, which can be attached to a message, field,
             # enumeration, etc.
@@ -1154,27 +1398,7 @@
         },
       ],
       "name": "A String", # Enum type name.
-      "enumvalue": [ # Enum value definitions.
-        { # Enum value definition.
-          "number": 42, # Enum value number.
-          "name": "A String", # Enum value name.
-          "options": [ # Protocol buffer options.
-            { # A protocol buffer option, which can be attached to a message, field,
-                # enumeration, etc.
-              "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                  # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                  # For custom options, it should be the fully-qualified name. For example,
-                  # `"google.api.http"`.
-              "value": { # The option's value packed in an Any message. If the value is a primitive,
-                  # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                  # should be used. If the value is an enum, it should be stored as an int32
-                  # value using the google.protobuf.Int32Value type.
-                "a_key": "", # Properties of the object. Contains field @type with type URL.
-              },
-            },
-          ],
-        },
-      ],
+      "syntax": "A String", # The source syntax.
     },
   ],
   "types": [ # A list of all proto message types included in this API service.
@@ -1516,12 +1740,12 @@
         "provided": [ # A list of full type names of provided contexts.
           "A String",
         ],
-        "requested": [ # A list of full type names of requested contexts.
-          "A String",
-        ],
         "selector": "A String", # Selects the methods to which this rule applies.
             #
             # Refer to selector for syntax details.
+        "requested": [ # A list of full type names of requested contexts.
+          "A String",
+        ],
       },
     ],
   },
@@ -1544,19 +1768,26 @@
         #       # allowed to proceed.
         #     - name: library-example.googleapis.com
         #       allow_cors: true
+      "target": "A String", # The specification of an Internet routable address of API frontend that will
+          # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+          # It should be either a valid IPv4 address or a fully-qualified domain name.
+          # For example, "8.8.8.8" or "myservice.appspot.com".
+      "apis": [ # The list of APIs served by this endpoint.
+          #
+          # If no APIs are specified this translates to "all APIs" exported by the
+          # service, as defined in the top-level service configuration.
+        "A String",
+      ],
       "allowCors": True or False, # Allowing
           # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
           # cross-domain traffic, would allow the backends served from this endpoint to
           # receive and respond to HTTP OPTIONS requests. The response will be used by
           # the browser to determine whether the subsequent cross-origin request is
           # allowed to proceed.
-      "apis": [ # The list of APIs served by this endpoint.
-        "A String",
-      ],
+      "name": "A String", # The canonical name of this endpoint.
       "features": [ # The list of features enabled on this endpoint.
         "A String",
       ],
-      "name": "A String", # The canonical name of this endpoint.
       "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
           # please specify multiple google.api.Endpoint for each of the intented
           # alias.
@@ -1745,6 +1976,9 @@
         },
       ],
     },
+    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. If empty, the server may choose to
+        # generate one instead.
     "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
       "rules": [ # A list of API backend rules that apply to individual API methods.
           #
@@ -1753,6 +1987,8 @@
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+              # value lower than this will be rejected.
           "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
               # default depends on the deployment context.
           "address": "A String", # The address of the API backend.
@@ -1826,9 +2062,6 @@
       ],
     },
     "title": "A String", # The product title associated with this service.
-    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. If empty, the server may choose to
-        # generate one instead.
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -1881,13 +2114,6 @@
                 #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                 #                        https://www.googleapis.com/auth/calendar.read
           },
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-              #
-              # For requests without credentials, if the service control environment is
-              # specified, each incoming request **must** be associated with a service
-              # consumer. This can be done by passing an API key that belongs to a consumer
-              # project.
           "requirements": [ # Requirements for additional authentication providers.
             { # User-defined authentication requirements, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -1914,6 +2140,18 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
+          "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+            "provider": "A String", # A configuration string containing connection information for the
+                # authentication provider, typically formatted as a SmartService string
+                # (go/smartservice).
+          },
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -1986,11 +2224,11 @@
             #       rules:
             #       - selector: "google.example.library.v1.LibraryService.CreateBook"
             #         allow_unregistered_calls: true
+          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
           "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
               # methods in all APIs.
               #
               # Refer to selector for syntax details.
-          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
         },
       ],
       "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
@@ -2073,6 +2311,11 @@
             # parameters. Assume the following definition of the request message:
             #
             #
+            #     service Messaging {
+            #       rpc GetMessage(GetMessageRequest) returns (Message) {
+            #         option (google.api.http).get = "/v1/messages/{message_id}";
+            #       }
+            #     }
             #     message GetMessageRequest {
             #       message SubMessage {
             #         string subfield = 1;
@@ -2231,31 +2474,50 @@
               # body. NOTE: the referred field must not be a repeated field and must be
               # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
-          "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-              # For media support, add instead [][google.bytestream.RestByteStream] as an
-              # API to your configuration.
-              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-              # your configuration for Bytestream methods.
-            "enabled": True or False, # Whether download is enabled.
-            "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-                #
-                # Specify name of the download service if one is used for download.
-          },
+          "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+              # pattern. If specified, this field overrides the default collection name.
+              # Example:
+              #
+              #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+              #         returns (AddressesAggregatedListResponse) {
+              #       option (google.api.http) = {
+              #         get: "/v1/projects/{project_id}/aggregated/addresses"
+              #         rest_collection: "projects.addresses"
+              #       };
+              #     }
+              #
+              # This method has the automatically derived collection name
+              # "projects.aggregated". Because, semantically, this rpc is actually an
+              # operation on the "projects.addresses" collection, the `rest_collection`
+              # field is configured to override the derived collection name.
           "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
               # not contain an `additional_bindings` field themselves (that is,
               # the nesting may only be one level deep).
             # Object with schema name: HttpRule
           ],
-          "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+          "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
               # Bytestream, add instead
               # [][google.bytestream.RestByteStream] as an API to your
               # configuration for Bytestream methods.
+              # Use this only for Scotty Requests. Do not use this for media support using
               # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
               # your configuration for Bytestream methods.
+            "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+            "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+            "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+                # of the given patterns.
+              "A String",
+            ],
+            "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+                # upload should be sent to the backend. These notifications will not be seen
+                # by the client and will not consume quota.
             "enabled": True or False, # Whether upload is enabled.
-            "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+            "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
                 #
                 # Specify name of the upload service if one is used for upload.
+            "maxSize": "A String", # Optional maximum acceptable size for an upload.
+                # The size is specified in bytes.
+            "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
           },
           "selector": "A String", # Selects methods to which this rule applies.
               #
@@ -2265,6 +2527,39 @@
               # not set, the response message will be used as HTTP body of response.
               # NOTE: the referred field must be not a repeated field and must be present
               # at the top-level of response message type.
+          "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+              # pattern. If specified, this field overrides the default method name.
+              # Example:
+              #
+              #     rpc CreateResource(CreateResourceRequest)
+              #         returns (CreateResourceResponse) {
+              #       option (google.api.http) = {
+              #         post: "/v1/resources",
+              #         body: "resource",
+              #         rest_method_name: "insert"
+              #       };
+              #     }
+              #
+              # This method has the automatically derived rest method name "create", but
+              #  for backwards compatability with apiary, it is specified as insert.
+          "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+              # For media support, add instead [][google.bytestream.RestByteStream] as an
+              # API to your configuration.
+              # Use this only for Scotty Requests. Do not use this for media support using
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
+            "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+                # download of this media.
+            "enabled": True or False, # Whether download is enabled.
+            "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+                # download should be sent to the backend.
+            "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+                # The size is specified in bytes.
+            "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+            "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the download service if one is used for download.
+          },
           "put": "A String", # Used for updating a resource.
           "patch": "A String", # Used for updating a resource.
           "post": "A String", # Used for creating a resource.
@@ -2275,6 +2570,12 @@
           "delete": "A String", # Used for deleting a resource.
         },
       ],
+      "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+          # cases of single segment matches in reserved expansion, where "%2F" will be
+          # left encoded.
+          #
+          # The default behavior is to not decode RFC 6570 reserved characters in multi
+          # segment matches.
     },
     "apis": [ # A list of API interfaces exported by this service. Only the `name` field
         # of the google.protobuf.Api needs to be provided by the configuration
@@ -2282,31 +2583,8 @@
         # normalization process. It is an error to specify an API interface here
         # which cannot be resolved against the associated IDL files.
       { # Api is a light-weight descriptor for a protocol buffer service.
-        "methods": [ # The methods of this api, in unspecified order.
-          { # Method represents a method of an api.
-            "name": "A String", # The simple name of this method.
-            "requestStreaming": True or False, # If true, the request is streamed.
-            "responseTypeUrl": "A String", # The URL of the output message type.
-            "requestTypeUrl": "A String", # A URL of the input message type.
-            "responseStreaming": True or False, # If true, the response is streamed.
-            "syntax": "A String", # The source syntax of this method.
-            "options": [ # Any metadata attached to the method.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-          },
-        ],
+        "name": "A String", # The fully qualified name of this api, including package name
+            # followed by the api's simple name.
         "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
             # message.
             # protobuf element, like the file in which it is defined.
@@ -2432,8 +2710,31 @@
             },
           },
         ],
-        "name": "A String", # The fully qualified name of this api, including package name
-            # followed by the api's simple name.
+        "methods": [ # The methods of this api, in unspecified order.
+          { # Method represents a method of an api.
+            "name": "A String", # The simple name of this method.
+            "requestStreaming": True or False, # If true, the request is streamed.
+            "responseTypeUrl": "A String", # The URL of the output message type.
+            "requestTypeUrl": "A String", # A URL of the input message type.
+            "responseStreaming": True or False, # If true, the response is streamed.
+            "syntax": "A String", # The source syntax of this method.
+            "options": [ # Any metadata attached to the method.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+          },
+        ],
       },
     ],
     "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -2461,6 +2762,160 @@
         "A String",
       ],
     },
+    "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+        # usage.
+        #
+        # The quota configuration works this way:
+        # - The service configuration defines a set of metrics.
+        # - For API calls, the quota.metric_rules maps methods to metrics with
+        #   corresponding costs.
+        # - The quota.limits defines limits on the metrics, which will be used for
+        #   quota checks at runtime.
+        #
+        # An example quota configuration in yaml format:
+        #
+        #    quota:
+        #
+        #      - name: apiWriteQpsPerProject
+        #        metric: library.googleapis.com/write_calls
+        #        unit: "1/min/{project}"  # rate limit for consumer projects
+        #        values:
+        #          STANDARD: 10000
+        #
+        #
+        #      # The metric rules bind all methods to the read_calls metric,
+        #      # except for the UpdateBook and DeleteBook methods. These two methods
+        #      # are mapped to the write_calls metric, with the UpdateBook method
+        #      # consuming at twice rate as the DeleteBook method.
+        #      metric_rules:
+        #      - selector: "*"
+        #        metric_costs:
+        #          library.googleapis.com/read_calls: 1
+        #      - selector: google.example.library.v1.LibraryService.UpdateBook
+        #        metric_costs:
+        #          library.googleapis.com/write_calls: 2
+        #      - selector: google.example.library.v1.LibraryService.DeleteBook
+        #        metric_costs:
+        #          library.googleapis.com/write_calls: 1
+        #
+        #  Corresponding Metric definition:
+        #
+        #      metrics:
+        #      - name: library.googleapis.com/read_calls
+        #        display_name: Read requests
+        #        metric_kind: DELTA
+        #        value_type: INT64
+        #
+        #      - name: library.googleapis.com/write_calls
+        #        display_name: Write requests
+        #        metric_kind: DELTA
+        #        value_type: INT64
+      "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+          # or more metrics.
+        { # Bind API methods to metrics. Binding a method to a metric causes that
+            # metric's configured quota behaviors to apply to the method call.
+          "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+              # cost applied to each metric.
+              #
+              # The key of the map is the metric name, and the values are the amount
+              # increased for the metric against which the quota limits are defined.
+              # The value must not be negative.
+            "a_key": "A String",
+          },
+          "selector": "A String", # Selects the methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+      "limits": [ # List of `QuotaLimit` definitions for the service.
+        { # `QuotaLimit` defines a specific limit that applies over a specified duration
+            # for a limit type. There can be at most one limit for a duration and limit
+            # type combination defined within a `QuotaGroup`.
+          "displayName": "A String", # User-visible display name for this limit.
+              # Optional. If not set, the UI will provide a default display name based on
+              # the quota configuration. This field can be used to override the default
+              # display name generated from the configuration.
+          "description": "A String", # Optional. User-visible, extended description for this quota limit.
+              # Should be used only when more context is needed to understand this limit
+              # than provided by the limit's display name (see: `display_name`).
+          "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+              # duration. This is the number of tokens assigned when a client
+              # application developer activates the service for his/her project.
+              #
+              # Specifying a value of 0 will block all requests. This can be used if you
+              # are provisioning quota to selected consumers and blocking others.
+              # Similarly, a value of -1 will indicate an unlimited quota. No other
+              # negative values are allowed.
+              #
+              # Used by group-based quotas only.
+          "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+              # the same metric will be checked together during runtime. The metric must be
+              # defined within the service config.
+              #
+              # Used by metric-based quotas only.
+          "values": { # Tiered limit values, currently only STANDARD is supported.
+            "a_key": "A String",
+          },
+          "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+              # duration. Client application developers can override the default limit up
+              # to this maximum. If specified, this value cannot be set to a value less
+              # than the default limit. If not specified, it is set to the default limit.
+              #
+              # To allow clients to apply overrides with no upper bound, set this to -1,
+              # indicating unlimited maximum quota.
+              #
+              # Used by group-based quotas only.
+          "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+              # For duration longer than a day, only multiple of days is supported. We
+              # support only "100s" and "1d" for now. Additional support will be added in
+              # the future. "0" indicates indefinite duration.
+              #
+              # Used by group-based quotas only.
+          "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+              # The free tier is the number of tokens that will be subtracted from the
+              # billed amount when billing is enabled.
+              # This field can only be set on a limit with duration "1d", in a billable
+              # group; it is invalid on any other limit. If this field is not set, it
+              # defaults to 0, indicating that there is no free tier for this service.
+              #
+              # Used by group-based quotas only.
+          "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+              # Metric.unit. The supported unit kinds are determined by the quota
+              # backend system.
+              #
+              # The [Google Service Control](https://cloud.google.com/service-control)
+              # supports the following unit components:
+              # * One of the time intevals:
+              #   * "/min"  for quota every minute.
+              #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+              #   * Otherwise the quota won't be reset by time, such as storage limit.
+              # * One and only one of the granted containers:
+              #   * "/{project}" quota for a project
+              #
+              # Here are some examples:
+              # * "1/min/{project}" for quota per minute per project.
+              #
+              # Note: the order of unit components is insignificant.
+              # The "1" at the beginning is required to follow the metric unit syntax.
+              #
+              # Used by metric-based quotas only.
+          "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+              # overriding the default limit on per-consumer basis.
+              #
+              # For metric-based quota limits, the name must be provided, and it must be
+              # unique within the service. The name can only include alphanumeric
+              # characters as well as '-'.
+              #
+              # The maximum length of the limit name is 64 characters.
+              #
+              # The name of a limit is used as a unique identifier for this limit.
+              # Therefore, once a limit has been put into use, its name should be
+              # immutable. You can use the display_name field to provide a user-friendly
+              # name for the limit. The display name can be evolved over time without
+              # affecting the identity of the limit.
+        },
+      ],
+    },
     "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
         # elements.  Restrictions are specified using visibility labels
         # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -2621,12 +3076,32 @@
         #     enums:
         #     - name: google.someapi.v1.SomeEnum
       { # Enum type definition.
-        "syntax": "A String", # The source syntax.
         "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
           "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
               # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
         },
+        "enumvalue": [ # Enum value definitions.
+          { # Enum value definition.
+            "options": [ # Protocol buffer options.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+            "name": "A String", # Enum value name.
+            "number": 42, # Enum value number.
+          },
+        ],
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -2643,27 +3118,7 @@
           },
         ],
         "name": "A String", # Enum type name.
-        "enumvalue": [ # Enum value definitions.
-          { # Enum value definition.
-            "number": 42, # Enum value number.
-            "name": "A String", # Enum value name.
-            "options": [ # Protocol buffer options.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-          },
-        ],
+        "syntax": "A String", # The source syntax.
       },
     ],
     "types": [ # A list of all proto message types included in this API service.
@@ -3005,12 +3460,12 @@
           "provided": [ # A list of full type names of provided contexts.
             "A String",
           ],
-          "requested": [ # A list of full type names of requested contexts.
-            "A String",
-          ],
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          "requested": [ # A list of full type names of requested contexts.
+            "A String",
+          ],
         },
       ],
     },
@@ -3033,19 +3488,26 @@
           #       # allowed to proceed.
           #     - name: library-example.googleapis.com
           #       allow_cors: true
+        "target": "A String", # The specification of an Internet routable address of API frontend that will
+            # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+            # It should be either a valid IPv4 address or a fully-qualified domain name.
+            # For example, "8.8.8.8" or "myservice.appspot.com".
+        "apis": [ # The list of APIs served by this endpoint.
+            #
+            # If no APIs are specified this translates to "all APIs" exported by the
+            # service, as defined in the top-level service configuration.
+          "A String",
+        ],
         "allowCors": True or False, # Allowing
             # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
             # cross-domain traffic, would allow the backends served from this endpoint to
             # receive and respond to HTTP OPTIONS requests. The response will be used by
             # the browser to determine whether the subsequent cross-origin request is
             # allowed to proceed.
-        "apis": [ # The list of APIs served by this endpoint.
-          "A String",
-        ],
+        "name": "A String", # The canonical name of this endpoint.
         "features": [ # The list of features enabled on this endpoint.
           "A String",
         ],
-        "name": "A String", # The canonical name of this endpoint.
         "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
             # please specify multiple google.api.Endpoint for each of the intented
             # alias.
@@ -3245,6 +3707,9 @@
         },
       ],
     },
+    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. If empty, the server may choose to
+        # generate one instead.
     "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
       "rules": [ # A list of API backend rules that apply to individual API methods.
           #
@@ -3253,6 +3718,8 @@
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+              # value lower than this will be rejected.
           "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
               # default depends on the deployment context.
           "address": "A String", # The address of the API backend.
@@ -3326,9 +3793,6 @@
       ],
     },
     "title": "A String", # The product title associated with this service.
-    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. If empty, the server may choose to
-        # generate one instead.
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -3381,13 +3845,6 @@
                 #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                 #                        https://www.googleapis.com/auth/calendar.read
           },
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-              #
-              # For requests without credentials, if the service control environment is
-              # specified, each incoming request **must** be associated with a service
-              # consumer. This can be done by passing an API key that belongs to a consumer
-              # project.
           "requirements": [ # Requirements for additional authentication providers.
             { # User-defined authentication requirements, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -3414,6 +3871,18 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
+          "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+            "provider": "A String", # A configuration string containing connection information for the
+                # authentication provider, typically formatted as a SmartService string
+                # (go/smartservice).
+          },
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -3486,11 +3955,11 @@
             #       rules:
             #       - selector: "google.example.library.v1.LibraryService.CreateBook"
             #         allow_unregistered_calls: true
+          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
           "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
               # methods in all APIs.
               #
               # Refer to selector for syntax details.
-          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
         },
       ],
       "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
@@ -3573,6 +4042,11 @@
             # parameters. Assume the following definition of the request message:
             #
             #
+            #     service Messaging {
+            #       rpc GetMessage(GetMessageRequest) returns (Message) {
+            #         option (google.api.http).get = "/v1/messages/{message_id}";
+            #       }
+            #     }
             #     message GetMessageRequest {
             #       message SubMessage {
             #         string subfield = 1;
@@ -3731,31 +4205,50 @@
               # body. NOTE: the referred field must not be a repeated field and must be
               # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
-          "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-              # For media support, add instead [][google.bytestream.RestByteStream] as an
-              # API to your configuration.
-              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-              # your configuration for Bytestream methods.
-            "enabled": True or False, # Whether download is enabled.
-            "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-                #
-                # Specify name of the download service if one is used for download.
-          },
+          "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+              # pattern. If specified, this field overrides the default collection name.
+              # Example:
+              #
+              #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+              #         returns (AddressesAggregatedListResponse) {
+              #       option (google.api.http) = {
+              #         get: "/v1/projects/{project_id}/aggregated/addresses"
+              #         rest_collection: "projects.addresses"
+              #       };
+              #     }
+              #
+              # This method has the automatically derived collection name
+              # "projects.aggregated". Because, semantically, this rpc is actually an
+              # operation on the "projects.addresses" collection, the `rest_collection`
+              # field is configured to override the derived collection name.
           "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
               # not contain an `additional_bindings` field themselves (that is,
               # the nesting may only be one level deep).
             # Object with schema name: HttpRule
           ],
-          "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+          "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
               # Bytestream, add instead
               # [][google.bytestream.RestByteStream] as an API to your
               # configuration for Bytestream methods.
+              # Use this only for Scotty Requests. Do not use this for media support using
               # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
               # your configuration for Bytestream methods.
+            "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+            "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+            "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+                # of the given patterns.
+              "A String",
+            ],
+            "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+                # upload should be sent to the backend. These notifications will not be seen
+                # by the client and will not consume quota.
             "enabled": True or False, # Whether upload is enabled.
-            "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+            "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
                 #
                 # Specify name of the upload service if one is used for upload.
+            "maxSize": "A String", # Optional maximum acceptable size for an upload.
+                # The size is specified in bytes.
+            "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
           },
           "selector": "A String", # Selects methods to which this rule applies.
               #
@@ -3765,6 +4258,39 @@
               # not set, the response message will be used as HTTP body of response.
               # NOTE: the referred field must be not a repeated field and must be present
               # at the top-level of response message type.
+          "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+              # pattern. If specified, this field overrides the default method name.
+              # Example:
+              #
+              #     rpc CreateResource(CreateResourceRequest)
+              #         returns (CreateResourceResponse) {
+              #       option (google.api.http) = {
+              #         post: "/v1/resources",
+              #         body: "resource",
+              #         rest_method_name: "insert"
+              #       };
+              #     }
+              #
+              # This method has the automatically derived rest method name "create", but
+              #  for backwards compatability with apiary, it is specified as insert.
+          "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+              # For media support, add instead [][google.bytestream.RestByteStream] as an
+              # API to your configuration.
+              # Use this only for Scotty Requests. Do not use this for media support using
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
+            "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+                # download of this media.
+            "enabled": True or False, # Whether download is enabled.
+            "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+                # download should be sent to the backend.
+            "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+                # The size is specified in bytes.
+            "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+            "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the download service if one is used for download.
+          },
           "put": "A String", # Used for updating a resource.
           "patch": "A String", # Used for updating a resource.
           "post": "A String", # Used for creating a resource.
@@ -3775,6 +4301,12 @@
           "delete": "A String", # Used for deleting a resource.
         },
       ],
+      "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+          # cases of single segment matches in reserved expansion, where "%2F" will be
+          # left encoded.
+          #
+          # The default behavior is to not decode RFC 6570 reserved characters in multi
+          # segment matches.
     },
     "apis": [ # A list of API interfaces exported by this service. Only the `name` field
         # of the google.protobuf.Api needs to be provided by the configuration
@@ -3782,31 +4314,8 @@
         # normalization process. It is an error to specify an API interface here
         # which cannot be resolved against the associated IDL files.
       { # Api is a light-weight descriptor for a protocol buffer service.
-        "methods": [ # The methods of this api, in unspecified order.
-          { # Method represents a method of an api.
-            "name": "A String", # The simple name of this method.
-            "requestStreaming": True or False, # If true, the request is streamed.
-            "responseTypeUrl": "A String", # The URL of the output message type.
-            "requestTypeUrl": "A String", # A URL of the input message type.
-            "responseStreaming": True or False, # If true, the response is streamed.
-            "syntax": "A String", # The source syntax of this method.
-            "options": [ # Any metadata attached to the method.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-          },
-        ],
+        "name": "A String", # The fully qualified name of this api, including package name
+            # followed by the api's simple name.
         "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
             # message.
             # protobuf element, like the file in which it is defined.
@@ -3932,8 +4441,31 @@
             },
           },
         ],
-        "name": "A String", # The fully qualified name of this api, including package name
-            # followed by the api's simple name.
+        "methods": [ # The methods of this api, in unspecified order.
+          { # Method represents a method of an api.
+            "name": "A String", # The simple name of this method.
+            "requestStreaming": True or False, # If true, the request is streamed.
+            "responseTypeUrl": "A String", # The URL of the output message type.
+            "requestTypeUrl": "A String", # A URL of the input message type.
+            "responseStreaming": True or False, # If true, the response is streamed.
+            "syntax": "A String", # The source syntax of this method.
+            "options": [ # Any metadata attached to the method.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+          },
+        ],
       },
     ],
     "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -3961,6 +4493,160 @@
         "A String",
       ],
     },
+    "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+        # usage.
+        #
+        # The quota configuration works this way:
+        # - The service configuration defines a set of metrics.
+        # - For API calls, the quota.metric_rules maps methods to metrics with
+        #   corresponding costs.
+        # - The quota.limits defines limits on the metrics, which will be used for
+        #   quota checks at runtime.
+        #
+        # An example quota configuration in yaml format:
+        #
+        #    quota:
+        #
+        #      - name: apiWriteQpsPerProject
+        #        metric: library.googleapis.com/write_calls
+        #        unit: "1/min/{project}"  # rate limit for consumer projects
+        #        values:
+        #          STANDARD: 10000
+        #
+        #
+        #      # The metric rules bind all methods to the read_calls metric,
+        #      # except for the UpdateBook and DeleteBook methods. These two methods
+        #      # are mapped to the write_calls metric, with the UpdateBook method
+        #      # consuming at twice rate as the DeleteBook method.
+        #      metric_rules:
+        #      - selector: "*"
+        #        metric_costs:
+        #          library.googleapis.com/read_calls: 1
+        #      - selector: google.example.library.v1.LibraryService.UpdateBook
+        #        metric_costs:
+        #          library.googleapis.com/write_calls: 2
+        #      - selector: google.example.library.v1.LibraryService.DeleteBook
+        #        metric_costs:
+        #          library.googleapis.com/write_calls: 1
+        #
+        #  Corresponding Metric definition:
+        #
+        #      metrics:
+        #      - name: library.googleapis.com/read_calls
+        #        display_name: Read requests
+        #        metric_kind: DELTA
+        #        value_type: INT64
+        #
+        #      - name: library.googleapis.com/write_calls
+        #        display_name: Write requests
+        #        metric_kind: DELTA
+        #        value_type: INT64
+      "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+          # or more metrics.
+        { # Bind API methods to metrics. Binding a method to a metric causes that
+            # metric's configured quota behaviors to apply to the method call.
+          "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+              # cost applied to each metric.
+              #
+              # The key of the map is the metric name, and the values are the amount
+              # increased for the metric against which the quota limits are defined.
+              # The value must not be negative.
+            "a_key": "A String",
+          },
+          "selector": "A String", # Selects the methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+      "limits": [ # List of `QuotaLimit` definitions for the service.
+        { # `QuotaLimit` defines a specific limit that applies over a specified duration
+            # for a limit type. There can be at most one limit for a duration and limit
+            # type combination defined within a `QuotaGroup`.
+          "displayName": "A String", # User-visible display name for this limit.
+              # Optional. If not set, the UI will provide a default display name based on
+              # the quota configuration. This field can be used to override the default
+              # display name generated from the configuration.
+          "description": "A String", # Optional. User-visible, extended description for this quota limit.
+              # Should be used only when more context is needed to understand this limit
+              # than provided by the limit's display name (see: `display_name`).
+          "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+              # duration. This is the number of tokens assigned when a client
+              # application developer activates the service for his/her project.
+              #
+              # Specifying a value of 0 will block all requests. This can be used if you
+              # are provisioning quota to selected consumers and blocking others.
+              # Similarly, a value of -1 will indicate an unlimited quota. No other
+              # negative values are allowed.
+              #
+              # Used by group-based quotas only.
+          "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+              # the same metric will be checked together during runtime. The metric must be
+              # defined within the service config.
+              #
+              # Used by metric-based quotas only.
+          "values": { # Tiered limit values, currently only STANDARD is supported.
+            "a_key": "A String",
+          },
+          "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+              # duration. Client application developers can override the default limit up
+              # to this maximum. If specified, this value cannot be set to a value less
+              # than the default limit. If not specified, it is set to the default limit.
+              #
+              # To allow clients to apply overrides with no upper bound, set this to -1,
+              # indicating unlimited maximum quota.
+              #
+              # Used by group-based quotas only.
+          "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+              # For duration longer than a day, only multiple of days is supported. We
+              # support only "100s" and "1d" for now. Additional support will be added in
+              # the future. "0" indicates indefinite duration.
+              #
+              # Used by group-based quotas only.
+          "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+              # The free tier is the number of tokens that will be subtracted from the
+              # billed amount when billing is enabled.
+              # This field can only be set on a limit with duration "1d", in a billable
+              # group; it is invalid on any other limit. If this field is not set, it
+              # defaults to 0, indicating that there is no free tier for this service.
+              #
+              # Used by group-based quotas only.
+          "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+              # Metric.unit. The supported unit kinds are determined by the quota
+              # backend system.
+              #
+              # The [Google Service Control](https://cloud.google.com/service-control)
+              # supports the following unit components:
+              # * One of the time intevals:
+              #   * "/min"  for quota every minute.
+              #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+              #   * Otherwise the quota won't be reset by time, such as storage limit.
+              # * One and only one of the granted containers:
+              #   * "/{project}" quota for a project
+              #
+              # Here are some examples:
+              # * "1/min/{project}" for quota per minute per project.
+              #
+              # Note: the order of unit components is insignificant.
+              # The "1" at the beginning is required to follow the metric unit syntax.
+              #
+              # Used by metric-based quotas only.
+          "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+              # overriding the default limit on per-consumer basis.
+              #
+              # For metric-based quota limits, the name must be provided, and it must be
+              # unique within the service. The name can only include alphanumeric
+              # characters as well as '-'.
+              #
+              # The maximum length of the limit name is 64 characters.
+              #
+              # The name of a limit is used as a unique identifier for this limit.
+              # Therefore, once a limit has been put into use, its name should be
+              # immutable. You can use the display_name field to provide a user-friendly
+              # name for the limit. The display name can be evolved over time without
+              # affecting the identity of the limit.
+        },
+      ],
+    },
     "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
         # elements.  Restrictions are specified using visibility labels
         # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -4121,12 +4807,32 @@
         #     enums:
         #     - name: google.someapi.v1.SomeEnum
       { # Enum type definition.
-        "syntax": "A String", # The source syntax.
         "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
           "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
               # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
         },
+        "enumvalue": [ # Enum value definitions.
+          { # Enum value definition.
+            "options": [ # Protocol buffer options.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+            "name": "A String", # Enum value name.
+            "number": 42, # Enum value number.
+          },
+        ],
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -4143,27 +4849,7 @@
           },
         ],
         "name": "A String", # Enum type name.
-        "enumvalue": [ # Enum value definitions.
-          { # Enum value definition.
-            "number": 42, # Enum value number.
-            "name": "A String", # Enum value name.
-            "options": [ # Protocol buffer options.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-          },
-        ],
+        "syntax": "A String", # The source syntax.
       },
     ],
     "types": [ # A list of all proto message types included in this API service.
@@ -4505,12 +5191,12 @@
           "provided": [ # A list of full type names of provided contexts.
             "A String",
           ],
-          "requested": [ # A list of full type names of requested contexts.
-            "A String",
-          ],
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          "requested": [ # A list of full type names of requested contexts.
+            "A String",
+          ],
         },
       ],
     },
@@ -4533,19 +5219,26 @@
           #       # allowed to proceed.
           #     - name: library-example.googleapis.com
           #       allow_cors: true
+        "target": "A String", # The specification of an Internet routable address of API frontend that will
+            # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+            # It should be either a valid IPv4 address or a fully-qualified domain name.
+            # For example, "8.8.8.8" or "myservice.appspot.com".
+        "apis": [ # The list of APIs served by this endpoint.
+            #
+            # If no APIs are specified this translates to "all APIs" exported by the
+            # service, as defined in the top-level service configuration.
+          "A String",
+        ],
         "allowCors": True or False, # Allowing
             # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
             # cross-domain traffic, would allow the backends served from this endpoint to
             # receive and respond to HTTP OPTIONS requests. The response will be used by
             # the browser to determine whether the subsequent cross-origin request is
             # allowed to proceed.
-        "apis": [ # The list of APIs served by this endpoint.
-          "A String",
-        ],
+        "name": "A String", # The canonical name of this endpoint.
         "features": [ # The list of features enabled on this endpoint.
           "A String",
         ],
-        "name": "A String", # The canonical name of this endpoint.
         "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
             # please specify multiple google.api.Endpoint for each of the intented
             # alias.
@@ -4748,6 +5441,9 @@
             },
           ],
         },
+        "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+            # by the client for tracking purpose. If empty, the server may choose to
+            # generate one instead.
         "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
           "rules": [ # A list of API backend rules that apply to individual API methods.
               #
@@ -4756,6 +5452,8 @@
               "selector": "A String", # Selects the methods to which this rule applies.
                   #
                   # Refer to selector for syntax details.
+              "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+                  # value lower than this will be rejected.
               "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
                   # default depends on the deployment context.
               "address": "A String", # The address of the API backend.
@@ -4829,9 +5527,6 @@
           ],
         },
         "title": "A String", # The product title associated with this service.
-        "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-            # by the client for tracking purpose. If empty, the server may choose to
-            # generate one instead.
         "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
             #
             # Example for an API targeted for external use:
@@ -4884,13 +5579,6 @@
                     #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                     #                        https://www.googleapis.com/auth/calendar.read
               },
-              "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-                  # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-                  #
-                  # For requests without credentials, if the service control environment is
-                  # specified, each incoming request **must** be associated with a service
-                  # consumer. This can be done by passing an API key that belongs to a consumer
-                  # project.
               "requirements": [ # Requirements for additional authentication providers.
                 { # User-defined authentication requirements, including support for
                     # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -4917,6 +5605,18 @@
                       #                bookstore_web.apps.googleusercontent.com
                 },
               ],
+              "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                  # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                  #
+                  # For requests without credentials, if the service control environment is
+                  # specified, each incoming request **must** be associated with a service
+                  # consumer. This can be done by passing an API key that belongs to a consumer
+                  # project.
+              "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+                "provider": "A String", # A configuration string containing connection information for the
+                    # authentication provider, typically formatted as a SmartService string
+                    # (go/smartservice).
+              },
               "selector": "A String", # Selects the methods to which this rule applies.
                   #
                   # Refer to selector for syntax details.
@@ -4989,11 +5689,11 @@
                 #       rules:
                 #       - selector: "google.example.library.v1.LibraryService.CreateBook"
                 #         allow_unregistered_calls: true
+              "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
               "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
                   # methods in all APIs.
                   #
                   # Refer to selector for syntax details.
-              "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
             },
           ],
           "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
@@ -5076,6 +5776,11 @@
                 # parameters. Assume the following definition of the request message:
                 #
                 #
+                #     service Messaging {
+                #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                #         option (google.api.http).get = "/v1/messages/{message_id}";
+                #       }
+                #     }
                 #     message GetMessageRequest {
                 #       message SubMessage {
                 #         string subfield = 1;
@@ -5234,31 +5939,50 @@
                   # body. NOTE: the referred field must not be a repeated field and must be
                   # present at the top-level of request message type.
               "get": "A String", # Used for listing and getting information about resources.
-              "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-                  # For media support, add instead [][google.bytestream.RestByteStream] as an
-                  # API to your configuration.
-                  # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-                  # your configuration for Bytestream methods.
-                "enabled": True or False, # Whether download is enabled.
-                "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-                    #
-                    # Specify name of the download service if one is used for download.
-              },
+              "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+                  # pattern. If specified, this field overrides the default collection name.
+                  # Example:
+                  #
+                  #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+                  #         returns (AddressesAggregatedListResponse) {
+                  #       option (google.api.http) = {
+                  #         get: "/v1/projects/{project_id}/aggregated/addresses"
+                  #         rest_collection: "projects.addresses"
+                  #       };
+                  #     }
+                  #
+                  # This method has the automatically derived collection name
+                  # "projects.aggregated". Because, semantically, this rpc is actually an
+                  # operation on the "projects.addresses" collection, the `rest_collection`
+                  # field is configured to override the derived collection name.
               "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
                   # not contain an `additional_bindings` field themselves (that is,
                   # the nesting may only be one level deep).
                 # Object with schema name: HttpRule
               ],
-              "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+              "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
                   # Bytestream, add instead
                   # [][google.bytestream.RestByteStream] as an API to your
                   # configuration for Bytestream methods.
+                  # Use this only for Scotty Requests. Do not use this for media support using
                   # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
                   # your configuration for Bytestream methods.
+                "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+                "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+                "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+                    # of the given patterns.
+                  "A String",
+                ],
+                "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+                    # upload should be sent to the backend. These notifications will not be seen
+                    # by the client and will not consume quota.
                 "enabled": True or False, # Whether upload is enabled.
-                "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
                     #
                     # Specify name of the upload service if one is used for upload.
+                "maxSize": "A String", # Optional maximum acceptable size for an upload.
+                    # The size is specified in bytes.
+                "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
               },
               "selector": "A String", # Selects methods to which this rule applies.
                   #
@@ -5268,6 +5992,39 @@
                   # not set, the response message will be used as HTTP body of response.
                   # NOTE: the referred field must be not a repeated field and must be present
                   # at the top-level of response message type.
+              "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+                  # pattern. If specified, this field overrides the default method name.
+                  # Example:
+                  #
+                  #     rpc CreateResource(CreateResourceRequest)
+                  #         returns (CreateResourceResponse) {
+                  #       option (google.api.http) = {
+                  #         post: "/v1/resources",
+                  #         body: "resource",
+                  #         rest_method_name: "insert"
+                  #       };
+                  #     }
+                  #
+                  # This method has the automatically derived rest method name "create", but
+                  #  for backwards compatability with apiary, it is specified as insert.
+              "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+                  # For media support, add instead [][google.bytestream.RestByteStream] as an
+                  # API to your configuration.
+                  # Use this only for Scotty Requests. Do not use this for media support using
+                  # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                  # your configuration for Bytestream methods.
+                "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+                    # download of this media.
+                "enabled": True or False, # Whether download is enabled.
+                "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+                    # download should be sent to the backend.
+                "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+                    # The size is specified in bytes.
+                "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+                "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+                    #
+                    # Specify name of the download service if one is used for download.
+              },
               "put": "A String", # Used for updating a resource.
               "patch": "A String", # Used for updating a resource.
               "post": "A String", # Used for creating a resource.
@@ -5278,6 +6035,12 @@
               "delete": "A String", # Used for deleting a resource.
             },
           ],
+          "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+              # cases of single segment matches in reserved expansion, where "%2F" will be
+              # left encoded.
+              #
+              # The default behavior is to not decode RFC 6570 reserved characters in multi
+              # segment matches.
         },
         "apis": [ # A list of API interfaces exported by this service. Only the `name` field
             # of the google.protobuf.Api needs to be provided by the configuration
@@ -5285,31 +6048,8 @@
             # normalization process. It is an error to specify an API interface here
             # which cannot be resolved against the associated IDL files.
           { # Api is a light-weight descriptor for a protocol buffer service.
-            "methods": [ # The methods of this api, in unspecified order.
-              { # Method represents a method of an api.
-                "name": "A String", # The simple name of this method.
-                "requestStreaming": True or False, # If true, the request is streamed.
-                "responseTypeUrl": "A String", # The URL of the output message type.
-                "requestTypeUrl": "A String", # A URL of the input message type.
-                "responseStreaming": True or False, # If true, the response is streamed.
-                "syntax": "A String", # The source syntax of this method.
-                "options": [ # Any metadata attached to the method.
-                  { # A protocol buffer option, which can be attached to a message, field,
-                      # enumeration, etc.
-                    "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                        # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                        # For custom options, it should be the fully-qualified name. For example,
-                        # `"google.api.http"`.
-                    "value": { # The option's value packed in an Any message. If the value is a primitive,
-                        # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                        # should be used. If the value is an enum, it should be stored as an int32
-                        # value using the google.protobuf.Int32Value type.
-                      "a_key": "", # Properties of the object. Contains field @type with type URL.
-                    },
-                  },
-                ],
-              },
-            ],
+            "name": "A String", # The fully qualified name of this api, including package name
+                # followed by the api's simple name.
             "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
                 # message.
                 # protobuf element, like the file in which it is defined.
@@ -5435,8 +6175,31 @@
                 },
               },
             ],
-            "name": "A String", # The fully qualified name of this api, including package name
-                # followed by the api's simple name.
+            "methods": [ # The methods of this api, in unspecified order.
+              { # Method represents a method of an api.
+                "name": "A String", # The simple name of this method.
+                "requestStreaming": True or False, # If true, the request is streamed.
+                "responseTypeUrl": "A String", # The URL of the output message type.
+                "requestTypeUrl": "A String", # A URL of the input message type.
+                "responseStreaming": True or False, # If true, the response is streamed.
+                "syntax": "A String", # The source syntax of this method.
+                "options": [ # Any metadata attached to the method.
+                  { # A protocol buffer option, which can be attached to a message, field,
+                      # enumeration, etc.
+                    "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                        # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                        # For custom options, it should be the fully-qualified name. For example,
+                        # `"google.api.http"`.
+                    "value": { # The option's value packed in an Any message. If the value is a primitive,
+                        # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                        # should be used. If the value is an enum, it should be stored as an int32
+                        # value using the google.protobuf.Int32Value type.
+                      "a_key": "", # Properties of the object. Contains field @type with type URL.
+                    },
+                  },
+                ],
+              },
+            ],
           },
         ],
         "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -5464,6 +6227,160 @@
             "A String",
           ],
         },
+        "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+            # usage.
+            #
+            # The quota configuration works this way:
+            # - The service configuration defines a set of metrics.
+            # - For API calls, the quota.metric_rules maps methods to metrics with
+            #   corresponding costs.
+            # - The quota.limits defines limits on the metrics, which will be used for
+            #   quota checks at runtime.
+            #
+            # An example quota configuration in yaml format:
+            #
+            #    quota:
+            #
+            #      - name: apiWriteQpsPerProject
+            #        metric: library.googleapis.com/write_calls
+            #        unit: "1/min/{project}"  # rate limit for consumer projects
+            #        values:
+            #          STANDARD: 10000
+            #
+            #
+            #      # The metric rules bind all methods to the read_calls metric,
+            #      # except for the UpdateBook and DeleteBook methods. These two methods
+            #      # are mapped to the write_calls metric, with the UpdateBook method
+            #      # consuming at twice rate as the DeleteBook method.
+            #      metric_rules:
+            #      - selector: "*"
+            #        metric_costs:
+            #          library.googleapis.com/read_calls: 1
+            #      - selector: google.example.library.v1.LibraryService.UpdateBook
+            #        metric_costs:
+            #          library.googleapis.com/write_calls: 2
+            #      - selector: google.example.library.v1.LibraryService.DeleteBook
+            #        metric_costs:
+            #          library.googleapis.com/write_calls: 1
+            #
+            #  Corresponding Metric definition:
+            #
+            #      metrics:
+            #      - name: library.googleapis.com/read_calls
+            #        display_name: Read requests
+            #        metric_kind: DELTA
+            #        value_type: INT64
+            #
+            #      - name: library.googleapis.com/write_calls
+            #        display_name: Write requests
+            #        metric_kind: DELTA
+            #        value_type: INT64
+          "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+              # or more metrics.
+            { # Bind API methods to metrics. Binding a method to a metric causes that
+                # metric's configured quota behaviors to apply to the method call.
+              "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+                  # cost applied to each metric.
+                  #
+                  # The key of the map is the metric name, and the values are the amount
+                  # increased for the metric against which the quota limits are defined.
+                  # The value must not be negative.
+                "a_key": "A String",
+              },
+              "selector": "A String", # Selects the methods to which this rule applies.
+                  #
+                  # Refer to selector for syntax details.
+            },
+          ],
+          "limits": [ # List of `QuotaLimit` definitions for the service.
+            { # `QuotaLimit` defines a specific limit that applies over a specified duration
+                # for a limit type. There can be at most one limit for a duration and limit
+                # type combination defined within a `QuotaGroup`.
+              "displayName": "A String", # User-visible display name for this limit.
+                  # Optional. If not set, the UI will provide a default display name based on
+                  # the quota configuration. This field can be used to override the default
+                  # display name generated from the configuration.
+              "description": "A String", # Optional. User-visible, extended description for this quota limit.
+                  # Should be used only when more context is needed to understand this limit
+                  # than provided by the limit's display name (see: `display_name`).
+              "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+                  # duration. This is the number of tokens assigned when a client
+                  # application developer activates the service for his/her project.
+                  #
+                  # Specifying a value of 0 will block all requests. This can be used if you
+                  # are provisioning quota to selected consumers and blocking others.
+                  # Similarly, a value of -1 will indicate an unlimited quota. No other
+                  # negative values are allowed.
+                  #
+                  # Used by group-based quotas only.
+              "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+                  # the same metric will be checked together during runtime. The metric must be
+                  # defined within the service config.
+                  #
+                  # Used by metric-based quotas only.
+              "values": { # Tiered limit values, currently only STANDARD is supported.
+                "a_key": "A String",
+              },
+              "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+                  # duration. Client application developers can override the default limit up
+                  # to this maximum. If specified, this value cannot be set to a value less
+                  # than the default limit. If not specified, it is set to the default limit.
+                  #
+                  # To allow clients to apply overrides with no upper bound, set this to -1,
+                  # indicating unlimited maximum quota.
+                  #
+                  # Used by group-based quotas only.
+              "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+                  # For duration longer than a day, only multiple of days is supported. We
+                  # support only "100s" and "1d" for now. Additional support will be added in
+                  # the future. "0" indicates indefinite duration.
+                  #
+                  # Used by group-based quotas only.
+              "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+                  # The free tier is the number of tokens that will be subtracted from the
+                  # billed amount when billing is enabled.
+                  # This field can only be set on a limit with duration "1d", in a billable
+                  # group; it is invalid on any other limit. If this field is not set, it
+                  # defaults to 0, indicating that there is no free tier for this service.
+                  #
+                  # Used by group-based quotas only.
+              "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+                  # Metric.unit. The supported unit kinds are determined by the quota
+                  # backend system.
+                  #
+                  # The [Google Service Control](https://cloud.google.com/service-control)
+                  # supports the following unit components:
+                  # * One of the time intevals:
+                  #   * "/min"  for quota every minute.
+                  #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+                  #   * Otherwise the quota won't be reset by time, such as storage limit.
+                  # * One and only one of the granted containers:
+                  #   * "/{project}" quota for a project
+                  #
+                  # Here are some examples:
+                  # * "1/min/{project}" for quota per minute per project.
+                  #
+                  # Note: the order of unit components is insignificant.
+                  # The "1" at the beginning is required to follow the metric unit syntax.
+                  #
+                  # Used by metric-based quotas only.
+              "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+                  # overriding the default limit on per-consumer basis.
+                  #
+                  # For metric-based quota limits, the name must be provided, and it must be
+                  # unique within the service. The name can only include alphanumeric
+                  # characters as well as '-'.
+                  #
+                  # The maximum length of the limit name is 64 characters.
+                  #
+                  # The name of a limit is used as a unique identifier for this limit.
+                  # Therefore, once a limit has been put into use, its name should be
+                  # immutable. You can use the display_name field to provide a user-friendly
+                  # name for the limit. The display name can be evolved over time without
+                  # affecting the identity of the limit.
+            },
+          ],
+        },
         "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
             # elements.  Restrictions are specified using visibility labels
             # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -5624,12 +6541,32 @@
             #     enums:
             #     - name: google.someapi.v1.SomeEnum
           { # Enum type definition.
-            "syntax": "A String", # The source syntax.
             "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
                 # protobuf element, like the file in which it is defined.
               "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
                   # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
             },
+            "enumvalue": [ # Enum value definitions.
+              { # Enum value definition.
+                "options": [ # Protocol buffer options.
+                  { # A protocol buffer option, which can be attached to a message, field,
+                      # enumeration, etc.
+                    "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                        # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                        # For custom options, it should be the fully-qualified name. For example,
+                        # `"google.api.http"`.
+                    "value": { # The option's value packed in an Any message. If the value is a primitive,
+                        # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                        # should be used. If the value is an enum, it should be stored as an int32
+                        # value using the google.protobuf.Int32Value type.
+                      "a_key": "", # Properties of the object. Contains field @type with type URL.
+                    },
+                  },
+                ],
+                "name": "A String", # Enum value name.
+                "number": 42, # Enum value number.
+              },
+            ],
             "options": [ # Protocol buffer options.
               { # A protocol buffer option, which can be attached to a message, field,
                   # enumeration, etc.
@@ -5646,27 +6583,7 @@
               },
             ],
             "name": "A String", # Enum type name.
-            "enumvalue": [ # Enum value definitions.
-              { # Enum value definition.
-                "number": 42, # Enum value number.
-                "name": "A String", # Enum value name.
-                "options": [ # Protocol buffer options.
-                  { # A protocol buffer option, which can be attached to a message, field,
-                      # enumeration, etc.
-                    "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                        # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                        # For custom options, it should be the fully-qualified name. For example,
-                        # `"google.api.http"`.
-                    "value": { # The option's value packed in an Any message. If the value is a primitive,
-                        # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                        # should be used. If the value is an enum, it should be stored as an int32
-                        # value using the google.protobuf.Int32Value type.
-                      "a_key": "", # Properties of the object. Contains field @type with type URL.
-                    },
-                  },
-                ],
-              },
-            ],
+            "syntax": "A String", # The source syntax.
           },
         ],
         "types": [ # A list of all proto message types included in this API service.
@@ -6008,12 +6925,12 @@
               "provided": [ # A list of full type names of provided contexts.
                 "A String",
               ],
-              "requested": [ # A list of full type names of requested contexts.
-                "A String",
-              ],
               "selector": "A String", # Selects the methods to which this rule applies.
                   #
                   # Refer to selector for syntax details.
+              "requested": [ # A list of full type names of requested contexts.
+                "A String",
+              ],
             },
           ],
         },
@@ -6036,19 +6953,26 @@
               #       # allowed to proceed.
               #     - name: library-example.googleapis.com
               #       allow_cors: true
+            "target": "A String", # The specification of an Internet routable address of API frontend that will
+                # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+                # It should be either a valid IPv4 address or a fully-qualified domain name.
+                # For example, "8.8.8.8" or "myservice.appspot.com".
+            "apis": [ # The list of APIs served by this endpoint.
+                #
+                # If no APIs are specified this translates to "all APIs" exported by the
+                # service, as defined in the top-level service configuration.
+              "A String",
+            ],
             "allowCors": True or False, # Allowing
                 # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
                 # cross-domain traffic, would allow the backends served from this endpoint to
                 # receive and respond to HTTP OPTIONS requests. The response will be used by
                 # the browser to determine whether the subsequent cross-origin request is
                 # allowed to proceed.
-            "apis": [ # The list of APIs served by this endpoint.
-              "A String",
-            ],
+            "name": "A String", # The canonical name of this endpoint.
             "features": [ # The list of features enabled on this endpoint.
               "A String",
             ],
-            "name": "A String", # The canonical name of this endpoint.
             "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
                 # please specify multiple google.api.Endpoint for each of the intented
                 # alias.
@@ -6141,12 +7065,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -6164,7 +7082,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -6187,7 +7105,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -6226,6 +7144,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.html b/docs/dyn/servicemanagement_v1.services.consumers.html
similarity index 71%
rename from docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.html
rename to docs/dyn/servicemanagement_v1.services.consumers.html
index 3059083..74f4052 100644
--- a/docs/dyn/cloudkms_v1beta1.projects.locations.keyRings.html
+++ b/docs/dyn/servicemanagement_v1.services.consumers.html
@@ -72,91 +72,20 @@
 
 </style>
 
-<h1><a href="cloudkms_v1beta1.html">Google Cloud Key Management Service (KMS) API</a> . <a href="cloudkms_v1beta1.projects.html">projects</a> . <a href="cloudkms_v1beta1.projects.locations.html">locations</a> . <a href="cloudkms_v1beta1.projects.locations.keyRings.html">keyRings</a></h1>
+<h1><a href="servicemanagement_v1.html">Google Service Management API</a> . <a href="servicemanagement_v1.services.html">services</a> . <a href="servicemanagement_v1.services.consumers.html">consumers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="cloudkms_v1beta1.projects.locations.keyRings.cryptoKeys.html">cryptoKeys()</a></code>
-</p>
-<p class="firstline">Returns the cryptoKeys Resource.</p>
-
-<p class="toc_element">
-  <code><a href="#create">create(parent=None, body, keyRingId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Create a new KeyRing in a given Project and Location.</p>
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns metadata for a given KeyRing.</p>
-<p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
-<p class="firstline">Lists KeyRings.</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>
-<p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, keyRingId=None, x__xgafv=None)</code>
-  <pre>Create a new KeyRing in a given Project and Location.
-
-Args:
-  parent: string, Required. The resource name of the location associated with the
-KeyRings, in the format `projects/*/locations/*`. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # A KeyRing is a toplevel logical grouping of CryptoKeys.
-  "name": "A String", # Output only. The resource name for the KeyRing in the format
-      # `projects/*/locations/*/keyRings/*`.
-  "createTime": "A String", # Output only. The time at which this KeyRing was created.
-}
-
-  keyRingId: string, Required. It must be unique within a location and match the regular
-expression `[a-zA-Z0-9_-]{1,63}`
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A KeyRing is a toplevel logical grouping of CryptoKeys.
-    "name": "A String", # Output only. The resource name for the KeyRing in the format
-        # `projects/*/locations/*/keyRings/*`.
-    "createTime": "A String", # Output only. The time at which this KeyRing was created.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Returns metadata for a given KeyRing.
-
-Args:
-  name: string, The name of the KeyRing to get. (required)
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A KeyRing is a toplevel logical grouping of CryptoKeys.
-    "name": "A String", # Output only. The resource name for the KeyRing in the format
-        # `projects/*/locations/*/keyRings/*`.
-    "createTime": "A String", # Output only. The time at which this KeyRing was created.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Gets the access control policy for a resource.
 Returns an empty policy if the resource exists and does not have a policy
 set.
@@ -164,6 +93,12 @@
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested.
 See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request message for `GetIamPolicy` method.
+  }
+
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -205,50 +140,53 @@
       # [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -285,11 +223,10 @@
           },
         ],
         "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
             # `allServices` is a special value that covers all services.
       },
     ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "rules": [ # If more than one rule is specified, the rules are applied in the following
         # manner:
         # - All matching LOG rules are always applied.
@@ -328,28 +265,6 @@
         "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
             # that match the LOG action.
           { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
             "counter": { # Options for counters # Counter options.
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
@@ -357,6 +272,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -367,6 +283,7 @@
         ],
       },
     ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -403,6 +320,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -415,56 +333,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
-  <pre>Lists KeyRings.
-
-Args:
-  parent: string, Required. The resource name of the location associated with the
-KeyRings, in the format `projects/*/locations/*`. (required)
-  pageToken: string, Optional pagination token, returned earlier via
-ListKeyRingsResponse.next_page_token.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-  pageSize: integer, Optional limit on the number of KeyRings to include in the
-response.  Further KeyRings can subsequently be obtained by
-including the ListKeyRingsResponse.next_page_token in a subsequent
-request.  If unspecified, the server will pick an appropriate default.
-
-Returns:
-  An object of the form:
-
-    { # Response message for KeyManagementService.ListKeyRings.
-    "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
-        # ListKeyRingsRequest.page_token to retrieve the next page of results.
-    "totalSize": 42, # The total number of KeyRings that matched the query.
-    "keyRings": [ # The list of KeyRings.
-      { # A KeyRing is a toplevel logical grouping of CryptoKeys.
-        "name": "A String", # Output only. The resource name for the KeyRing in the format
-            # `projects/*/locations/*/keyRings/*`.
-        "createTime": "A String", # Output only. The time at which this KeyRing was created.
-      },
-    ],
-  }</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>
-
-<div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -511,50 +380,53 @@
         # [IAM developer's guide](https://cloud.google.com/iam).
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
-            # It consists of which permission types are logged, and what identities, if
-            # any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # The configuration determines which permission types are logged, and what
+            # identities, if any, are exempted from logging.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -591,11 +463,10 @@
             },
           ],
           "service": "A String", # Specifies a service that will be enabled for audit logging.
-              # For example, `resourcemanager`, `storage`, `compute`.
+              # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
               # `allServices` is a special value that covers all services.
         },
       ],
-      "version": 42, # Version of the `Policy`. The default version is 0.
       "rules": [ # If more than one rule is specified, the rules are applied in the following
           # manner:
           # - All matching LOG rules are always applied.
@@ -634,28 +505,6 @@
           "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
               # that match the LOG action.
             { # Specifies what kind of log the caller must write
-                # Increment a streamz counter with the specified metric and field names.
-                #
-                # Metric names should start with a '/', generally be lowercase-only,
-                # and end in "_count". Field names should not contain an initial slash.
-                # The actual exported metric names will have "/iam/policy" prepended.
-                #
-                # Field names correspond to IAM request parameters and field values are
-                # their respective values.
-                #
-                # At present the only supported field names are
-                #    - "iam_principal", corresponding to IAMContext.principal;
-                #    - "" (empty string), resulting in one aggretated counter with no field.
-                #
-                # Examples:
-                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                #   ==> increment counter /iam/policy/backend_debug_access_count
-                #                         {iam_principal=[value of IAMContext.principal]}
-                #
-                # At this time we do not support:
-                # * multiple field names (though this may be supported in the future)
-                # * decrementing the counter
-                # * incrementing it by anything other than 1
               "counter": { # Options for counters # Counter options.
                 "field": "A String", # The field value to attribute.
                 "metric": "A String", # The metric to update.
@@ -663,6 +512,7 @@
               "dataAccess": { # Write a Data Access (Gin) log # Data access options.
               },
               "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+                "logName": "A String", # The log_name to populate in the Cloud Audit Record.
               },
             },
           ],
@@ -673,6 +523,7 @@
           ],
         },
       ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
           # prevent simultaneous updates of a policy from overwriting each other.
           # It is strongly suggested that systems make use of the `etag` in the
@@ -709,6 +560,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -719,8 +571,8 @@
       "iamOwned": True or False,
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
-        # the fields in the mask will be modified. If no mask is provided, a default
-        # mask is used:
+        # the fields in the mask will be modified. If no mask is provided, the
+        # following default mask is used:
         # paths: "bindings, etag"
         # This field is only used by Cloud IAM.
   }
@@ -766,50 +618,53 @@
       # [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -846,11 +701,10 @@
           },
         ],
         "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
             # `allServices` is a special value that covers all services.
       },
     ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "rules": [ # If more than one rule is specified, the rules are applied in the following
         # manner:
         # - All matching LOG rules are always applied.
@@ -889,28 +743,6 @@
         "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
             # that match the LOG action.
           { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
             "counter": { # Options for counters # Counter options.
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
@@ -918,6 +750,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -928,6 +761,7 @@
         ],
       },
     ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -964,6 +798,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -976,7 +811,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified resource.
 If the resource does not exist, this will return an empty set of
 permissions, not a NOT_FOUND error.
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index f6006ca..ee469b9 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -80,6 +80,11 @@
 <p class="firstline">Returns the configs Resource.</p>
 
 <p class="toc_element">
+  <code><a href="servicemanagement_v1.services.consumers.html">consumers()</a></code>
+</p>
+<p class="firstline">Returns the consumers Resource.</p>
+
+<p class="toc_element">
   <code><a href="servicemanagement_v1.services.rollouts.html">rollouts()</a></code>
 </p>
 <p class="firstline">Returns the rollouts Resource.</p>
@@ -152,12 +157,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -175,7 +174,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -198,7 +197,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -237,6 +236,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -262,12 +267,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -285,7 +284,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -308,7 +307,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -347,6 +346,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -386,12 +391,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -409,7 +408,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -432,7 +431,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -471,6 +470,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -511,12 +516,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -534,7 +533,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -557,7 +556,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -596,6 +595,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -692,9 +697,9 @@
         # report
         # belongs to.
       { # Represents a diagnostic message (error or warning)
-        "kind": "A String", # The kind of diagnostic information provided.
         "message": "A String", # Message describing the error or warning.
         "location": "A String", # File name and line number of the error or warning.
+        "kind": "A String", # The kind of diagnostic information provided.
       },
     ],
   }</pre>
@@ -895,6 +900,9 @@
         },
       ],
     },
+    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
+        # by the client for tracking purpose. If empty, the server may choose to
+        # generate one instead.
     "backend": { # `Backend` defines the backend configuration for a service. # API backend configuration.
       "rules": [ # A list of API backend rules that apply to individual API methods.
           #
@@ -903,6 +911,8 @@
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+              # value lower than this will be rejected.
           "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
               # default depends on the deployment context.
           "address": "A String", # The address of the API backend.
@@ -976,9 +986,6 @@
       ],
     },
     "title": "A String", # The product title associated with this service.
-    "id": "A String", # A unique ID for a specific instance of this message, typically assigned
-        # by the client for tracking purpose. If empty, the server may choose to
-        # generate one instead.
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -1031,13 +1038,6 @@
                 #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                 #                        https://www.googleapis.com/auth/calendar.read
           },
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-              #
-              # For requests without credentials, if the service control environment is
-              # specified, each incoming request **must** be associated with a service
-              # consumer. This can be done by passing an API key that belongs to a consumer
-              # project.
           "requirements": [ # Requirements for additional authentication providers.
             { # User-defined authentication requirements, including support for
                 # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -1064,6 +1064,18 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
+          "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+            "provider": "A String", # A configuration string containing connection information for the
+                # authentication provider, typically formatted as a SmartService string
+                # (go/smartservice).
+          },
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -1136,11 +1148,11 @@
             #       rules:
             #       - selector: "google.example.library.v1.LibraryService.CreateBook"
             #         allow_unregistered_calls: true
+          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
           "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
               # methods in all APIs.
               #
               # Refer to selector for syntax details.
-          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
         },
       ],
       "producerNotificationChannel": "A String", # The full resource name of a channel used for sending notifications to the
@@ -1223,6 +1235,11 @@
             # parameters. Assume the following definition of the request message:
             #
             #
+            #     service Messaging {
+            #       rpc GetMessage(GetMessageRequest) returns (Message) {
+            #         option (google.api.http).get = "/v1/messages/{message_id}";
+            #       }
+            #     }
             #     message GetMessageRequest {
             #       message SubMessage {
             #         string subfield = 1;
@@ -1381,31 +1398,50 @@
               # body. NOTE: the referred field must not be a repeated field and must be
               # present at the top-level of request message type.
           "get": "A String", # Used for listing and getting information about resources.
-          "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-              # For media support, add instead [][google.bytestream.RestByteStream] as an
-              # API to your configuration.
-              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-              # your configuration for Bytestream methods.
-            "enabled": True or False, # Whether download is enabled.
-            "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-                #
-                # Specify name of the download service if one is used for download.
-          },
+          "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+              # pattern. If specified, this field overrides the default collection name.
+              # Example:
+              #
+              #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+              #         returns (AddressesAggregatedListResponse) {
+              #       option (google.api.http) = {
+              #         get: "/v1/projects/{project_id}/aggregated/addresses"
+              #         rest_collection: "projects.addresses"
+              #       };
+              #     }
+              #
+              # This method has the automatically derived collection name
+              # "projects.aggregated". Because, semantically, this rpc is actually an
+              # operation on the "projects.addresses" collection, the `rest_collection`
+              # field is configured to override the derived collection name.
           "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
               # not contain an `additional_bindings` field themselves (that is,
               # the nesting may only be one level deep).
             # Object with schema name: HttpRule
           ],
-          "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+          "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
               # Bytestream, add instead
               # [][google.bytestream.RestByteStream] as an API to your
               # configuration for Bytestream methods.
+              # Use this only for Scotty Requests. Do not use this for media support using
               # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
               # your configuration for Bytestream methods.
+            "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+            "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+            "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+                # of the given patterns.
+              "A String",
+            ],
+            "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+                # upload should be sent to the backend. These notifications will not be seen
+                # by the client and will not consume quota.
             "enabled": True or False, # Whether upload is enabled.
-            "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+            "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
                 #
                 # Specify name of the upload service if one is used for upload.
+            "maxSize": "A String", # Optional maximum acceptable size for an upload.
+                # The size is specified in bytes.
+            "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
           },
           "selector": "A String", # Selects methods to which this rule applies.
               #
@@ -1415,6 +1451,39 @@
               # not set, the response message will be used as HTTP body of response.
               # NOTE: the referred field must be not a repeated field and must be present
               # at the top-level of response message type.
+          "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+              # pattern. If specified, this field overrides the default method name.
+              # Example:
+              #
+              #     rpc CreateResource(CreateResourceRequest)
+              #         returns (CreateResourceResponse) {
+              #       option (google.api.http) = {
+              #         post: "/v1/resources",
+              #         body: "resource",
+              #         rest_method_name: "insert"
+              #       };
+              #     }
+              #
+              # This method has the automatically derived rest method name "create", but
+              #  for backwards compatability with apiary, it is specified as insert.
+          "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+              # For media support, add instead [][google.bytestream.RestByteStream] as an
+              # API to your configuration.
+              # Use this only for Scotty Requests. Do not use this for media support using
+              # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+              # your configuration for Bytestream methods.
+            "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+                # download of this media.
+            "enabled": True or False, # Whether download is enabled.
+            "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+                # download should be sent to the backend.
+            "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+                # The size is specified in bytes.
+            "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+            "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+                #
+                # Specify name of the download service if one is used for download.
+          },
           "put": "A String", # Used for updating a resource.
           "patch": "A String", # Used for updating a resource.
           "post": "A String", # Used for creating a resource.
@@ -1425,6 +1494,12 @@
           "delete": "A String", # Used for deleting a resource.
         },
       ],
+      "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+          # cases of single segment matches in reserved expansion, where "%2F" will be
+          # left encoded.
+          #
+          # The default behavior is to not decode RFC 6570 reserved characters in multi
+          # segment matches.
     },
     "apis": [ # A list of API interfaces exported by this service. Only the `name` field
         # of the google.protobuf.Api needs to be provided by the configuration
@@ -1432,31 +1507,8 @@
         # normalization process. It is an error to specify an API interface here
         # which cannot be resolved against the associated IDL files.
       { # Api is a light-weight descriptor for a protocol buffer service.
-        "methods": [ # The methods of this api, in unspecified order.
-          { # Method represents a method of an api.
-            "name": "A String", # The simple name of this method.
-            "requestStreaming": True or False, # If true, the request is streamed.
-            "responseTypeUrl": "A String", # The URL of the output message type.
-            "requestTypeUrl": "A String", # A URL of the input message type.
-            "responseStreaming": True or False, # If true, the response is streamed.
-            "syntax": "A String", # The source syntax of this method.
-            "options": [ # Any metadata attached to the method.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-          },
-        ],
+        "name": "A String", # The fully qualified name of this api, including package name
+            # followed by the api's simple name.
         "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
             # message.
             # protobuf element, like the file in which it is defined.
@@ -1582,8 +1634,31 @@
             },
           },
         ],
-        "name": "A String", # The fully qualified name of this api, including package name
-            # followed by the api's simple name.
+        "methods": [ # The methods of this api, in unspecified order.
+          { # Method represents a method of an api.
+            "name": "A String", # The simple name of this method.
+            "requestStreaming": True or False, # If true, the request is streamed.
+            "responseTypeUrl": "A String", # The URL of the output message type.
+            "requestTypeUrl": "A String", # A URL of the input message type.
+            "responseStreaming": True or False, # If true, the response is streamed.
+            "syntax": "A String", # The source syntax of this method.
+            "options": [ # Any metadata attached to the method.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+          },
+        ],
       },
     ],
     "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -1611,6 +1686,160 @@
         "A String",
       ],
     },
+    "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+        # usage.
+        #
+        # The quota configuration works this way:
+        # - The service configuration defines a set of metrics.
+        # - For API calls, the quota.metric_rules maps methods to metrics with
+        #   corresponding costs.
+        # - The quota.limits defines limits on the metrics, which will be used for
+        #   quota checks at runtime.
+        #
+        # An example quota configuration in yaml format:
+        #
+        #    quota:
+        #
+        #      - name: apiWriteQpsPerProject
+        #        metric: library.googleapis.com/write_calls
+        #        unit: "1/min/{project}"  # rate limit for consumer projects
+        #        values:
+        #          STANDARD: 10000
+        #
+        #
+        #      # The metric rules bind all methods to the read_calls metric,
+        #      # except for the UpdateBook and DeleteBook methods. These two methods
+        #      # are mapped to the write_calls metric, with the UpdateBook method
+        #      # consuming at twice rate as the DeleteBook method.
+        #      metric_rules:
+        #      - selector: "*"
+        #        metric_costs:
+        #          library.googleapis.com/read_calls: 1
+        #      - selector: google.example.library.v1.LibraryService.UpdateBook
+        #        metric_costs:
+        #          library.googleapis.com/write_calls: 2
+        #      - selector: google.example.library.v1.LibraryService.DeleteBook
+        #        metric_costs:
+        #          library.googleapis.com/write_calls: 1
+        #
+        #  Corresponding Metric definition:
+        #
+        #      metrics:
+        #      - name: library.googleapis.com/read_calls
+        #        display_name: Read requests
+        #        metric_kind: DELTA
+        #        value_type: INT64
+        #
+        #      - name: library.googleapis.com/write_calls
+        #        display_name: Write requests
+        #        metric_kind: DELTA
+        #        value_type: INT64
+      "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+          # or more metrics.
+        { # Bind API methods to metrics. Binding a method to a metric causes that
+            # metric's configured quota behaviors to apply to the method call.
+          "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+              # cost applied to each metric.
+              #
+              # The key of the map is the metric name, and the values are the amount
+              # increased for the metric against which the quota limits are defined.
+              # The value must not be negative.
+            "a_key": "A String",
+          },
+          "selector": "A String", # Selects the methods to which this rule applies.
+              #
+              # Refer to selector for syntax details.
+        },
+      ],
+      "limits": [ # List of `QuotaLimit` definitions for the service.
+        { # `QuotaLimit` defines a specific limit that applies over a specified duration
+            # for a limit type. There can be at most one limit for a duration and limit
+            # type combination defined within a `QuotaGroup`.
+          "displayName": "A String", # User-visible display name for this limit.
+              # Optional. If not set, the UI will provide a default display name based on
+              # the quota configuration. This field can be used to override the default
+              # display name generated from the configuration.
+          "description": "A String", # Optional. User-visible, extended description for this quota limit.
+              # Should be used only when more context is needed to understand this limit
+              # than provided by the limit's display name (see: `display_name`).
+          "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+              # duration. This is the number of tokens assigned when a client
+              # application developer activates the service for his/her project.
+              #
+              # Specifying a value of 0 will block all requests. This can be used if you
+              # are provisioning quota to selected consumers and blocking others.
+              # Similarly, a value of -1 will indicate an unlimited quota. No other
+              # negative values are allowed.
+              #
+              # Used by group-based quotas only.
+          "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+              # the same metric will be checked together during runtime. The metric must be
+              # defined within the service config.
+              #
+              # Used by metric-based quotas only.
+          "values": { # Tiered limit values, currently only STANDARD is supported.
+            "a_key": "A String",
+          },
+          "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+              # duration. Client application developers can override the default limit up
+              # to this maximum. If specified, this value cannot be set to a value less
+              # than the default limit. If not specified, it is set to the default limit.
+              #
+              # To allow clients to apply overrides with no upper bound, set this to -1,
+              # indicating unlimited maximum quota.
+              #
+              # Used by group-based quotas only.
+          "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+              # For duration longer than a day, only multiple of days is supported. We
+              # support only "100s" and "1d" for now. Additional support will be added in
+              # the future. "0" indicates indefinite duration.
+              #
+              # Used by group-based quotas only.
+          "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+              # The free tier is the number of tokens that will be subtracted from the
+              # billed amount when billing is enabled.
+              # This field can only be set on a limit with duration "1d", in a billable
+              # group; it is invalid on any other limit. If this field is not set, it
+              # defaults to 0, indicating that there is no free tier for this service.
+              #
+              # Used by group-based quotas only.
+          "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+              # Metric.unit. The supported unit kinds are determined by the quota
+              # backend system.
+              #
+              # The [Google Service Control](https://cloud.google.com/service-control)
+              # supports the following unit components:
+              # * One of the time intevals:
+              #   * "/min"  for quota every minute.
+              #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+              #   * Otherwise the quota won't be reset by time, such as storage limit.
+              # * One and only one of the granted containers:
+              #   * "/{project}" quota for a project
+              #
+              # Here are some examples:
+              # * "1/min/{project}" for quota per minute per project.
+              #
+              # Note: the order of unit components is insignificant.
+              # The "1" at the beginning is required to follow the metric unit syntax.
+              #
+              # Used by metric-based quotas only.
+          "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+              # overriding the default limit on per-consumer basis.
+              #
+              # For metric-based quota limits, the name must be provided, and it must be
+              # unique within the service. The name can only include alphanumeric
+              # characters as well as '-'.
+              #
+              # The maximum length of the limit name is 64 characters.
+              #
+              # The name of a limit is used as a unique identifier for this limit.
+              # Therefore, once a limit has been put into use, its name should be
+              # immutable. You can use the display_name field to provide a user-friendly
+              # name for the limit. The display name can be evolved over time without
+              # affecting the identity of the limit.
+        },
+      ],
+    },
     "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
         # elements.  Restrictions are specified using visibility labels
         # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -1771,12 +2000,32 @@
         #     enums:
         #     - name: google.someapi.v1.SomeEnum
       { # Enum type definition.
-        "syntax": "A String", # The source syntax.
         "sourceContext": { # `SourceContext` represents information about the source of a # The source context.
             # protobuf element, like the file in which it is defined.
           "fileName": "A String", # The path-qualified name of the .proto file that contained the associated
               # protobuf element.  For example: `"google/protobuf/source_context.proto"`.
         },
+        "enumvalue": [ # Enum value definitions.
+          { # Enum value definition.
+            "options": [ # Protocol buffer options.
+              { # A protocol buffer option, which can be attached to a message, field,
+                  # enumeration, etc.
+                "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                    # For custom options, it should be the fully-qualified name. For example,
+                    # `"google.api.http"`.
+                "value": { # The option's value packed in an Any message. If the value is a primitive,
+                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                    # should be used. If the value is an enum, it should be stored as an int32
+                    # value using the google.protobuf.Int32Value type.
+                  "a_key": "", # Properties of the object. Contains field @type with type URL.
+                },
+              },
+            ],
+            "name": "A String", # Enum value name.
+            "number": 42, # Enum value number.
+          },
+        ],
         "options": [ # Protocol buffer options.
           { # A protocol buffer option, which can be attached to a message, field,
               # enumeration, etc.
@@ -1793,27 +2042,7 @@
           },
         ],
         "name": "A String", # Enum type name.
-        "enumvalue": [ # Enum value definitions.
-          { # Enum value definition.
-            "number": 42, # Enum value number.
-            "name": "A String", # Enum value name.
-            "options": [ # Protocol buffer options.
-              { # A protocol buffer option, which can be attached to a message, field,
-                  # enumeration, etc.
-                "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                    # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                    # For custom options, it should be the fully-qualified name. For example,
-                    # `"google.api.http"`.
-                "value": { # The option's value packed in an Any message. If the value is a primitive,
-                    # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                    # should be used. If the value is an enum, it should be stored as an int32
-                    # value using the google.protobuf.Int32Value type.
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              },
-            ],
-          },
-        ],
+        "syntax": "A String", # The source syntax.
       },
     ],
     "types": [ # A list of all proto message types included in this API service.
@@ -2155,12 +2384,12 @@
           "provided": [ # A list of full type names of provided contexts.
             "A String",
           ],
-          "requested": [ # A list of full type names of requested contexts.
-            "A String",
-          ],
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
+          "requested": [ # A list of full type names of requested contexts.
+            "A String",
+          ],
         },
       ],
     },
@@ -2183,19 +2412,26 @@
           #       # allowed to proceed.
           #     - name: library-example.googleapis.com
           #       allow_cors: true
+        "target": "A String", # The specification of an Internet routable address of API frontend that will
+            # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+            # It should be either a valid IPv4 address or a fully-qualified domain name.
+            # For example, "8.8.8.8" or "myservice.appspot.com".
+        "apis": [ # The list of APIs served by this endpoint.
+            #
+            # If no APIs are specified this translates to "all APIs" exported by the
+            # service, as defined in the top-level service configuration.
+          "A String",
+        ],
         "allowCors": True or False, # Allowing
             # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
             # cross-domain traffic, would allow the backends served from this endpoint to
             # receive and respond to HTTP OPTIONS requests. The response will be used by
             # the browser to determine whether the subsequent cross-origin request is
             # allowed to proceed.
-        "apis": [ # The list of APIs served by this endpoint.
-          "A String",
-        ],
+        "name": "A String", # The canonical name of this endpoint.
         "features": [ # The list of features enabled on this endpoint.
           "A String",
         ],
-        "name": "A String", # The canonical name of this endpoint.
         "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
             # please specify multiple google.api.Endpoint for each of the intented
             # alias.
@@ -2282,48 +2518,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -2409,6 +2648,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -2456,6 +2696,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -2574,48 +2815,51 @@
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -2701,6 +2945,7 @@
               "dataAccess": { # Write a Data Access (Gin) log # Data access options.
               },
               "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+                "logName": "A String", # The log_name to populate in the Cloud Audit Record.
               },
             },
           ],
@@ -2748,6 +2993,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -2807,48 +3053,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -2934,6 +3183,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -2981,6 +3231,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -3055,12 +3306,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -3078,7 +3323,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -3101,7 +3346,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -3140,6 +3385,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
diff --git a/docs/dyn/servicemanagement_v1.services.rollouts.html b/docs/dyn/servicemanagement_v1.services.rollouts.html
index a95912d..935f4bb 100644
--- a/docs/dyn/servicemanagement_v1.services.rollouts.html
+++ b/docs/dyn/servicemanagement_v1.services.rollouts.html
@@ -81,7 +81,7 @@
   <code><a href="#get">get(serviceName, rolloutId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a service configuration rollout.</p>
 <p class="toc_element">
-  <code><a href="#list">list(serviceName, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(serviceName, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the history of the service configuration rollouts for a managed</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -175,12 +175,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -198,7 +192,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -221,7 +215,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -260,6 +254,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -340,7 +340,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(serviceName, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(serviceName, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the history of the service configuration rollouts for a managed
 service, from the newest to the oldest.
 
@@ -348,6 +348,14 @@
   serviceName: string, The name of the service.  See the [overview](/service-management/overview)
 for naming requirements.  For example: `example.googleapis.com`. (required)
   pageSize: integer, The max number of items to include in the response list.
+  filter: string, Use `filter` to return subset of rollouts.
+The following filters are supported:
+  -- To limit the results to only those in
+     [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',
+     use filter='status=SUCCESS'
+  -- To limit the results to those in
+     [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'
+     or 'FAILED', use filter='status=CANCELLED OR status=FAILED'
   pageToken: string, The token of the page to retrieve.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/serviceuser_v1.projects.services.html b/docs/dyn/serviceuser_v1.projects.services.html
index e9d2bf5..4d6db3b 100644
--- a/docs/dyn/serviceuser_v1.projects.services.html
+++ b/docs/dyn/serviceuser_v1.projects.services.html
@@ -81,7 +81,7 @@
   <code><a href="#enable">enable(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Enable a service so it can be used with a project.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">List enabled services for the specified consumer.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -119,12 +119,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -142,7 +136,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -165,7 +159,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -204,6 +198,12 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
@@ -236,12 +236,6 @@
 
     { # This resource represents a long-running operation that is the result of a
       # network API call.
-    "metadata": { # Service-specific metadata associated with the operation.  It typically
-        # contains progress information and common metadata such as create time.
-        # Some services might not provide such metadata.  Any method that returns a
-        # long-running operation should document the metadata type, if any.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -259,7 +253,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -282,7 +276,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -321,11 +315,17 @@
     "name": "A String", # The server-assigned name, which is only unique within the same service that
         # originally returns it. If you use the default HTTP mapping, the
         # `name` should have the format of `operations/some/unique/name`.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>List enabled services for the specified consumer.
 
 Args:
@@ -333,13 +333,13 @@
 
 An example valid parent would be:
 - projects/my-project (required)
-  pageSize: integer, Requested size of the next page of data.
   pageToken: string, Token identifying which result to start with; returned by a previous list
 call.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Requested size of the next page of data.
 
 Returns:
   An object of the form:
@@ -493,9 +493,9 @@
                       # is implementation-dependent.
                     "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
                         # sensitive.
-                    "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
                     "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
                         # insensitive.
+                    "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
                   },
                 ],
                 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
@@ -516,6 +516,8 @@
                 "selector": "A String", # Selects the methods to which this rule applies.
                     #
                     # Refer to selector for syntax details.
+                "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+                    # value lower than this will be rejected.
                 "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
                     # default depends on the deployment context.
                 "address": "A String", # The address of the API backend.
@@ -641,6 +643,13 @@
                       #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                       #                        https://www.googleapis.com/auth/calendar.read
                 },
+                "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                    # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                    #
+                    # For requests without credentials, if the service control environment is
+                    # specified, each incoming request **must** be associated with a service
+                    # consumer. This can be done by passing an API key that belongs to a consumer
+                    # project.
                 "requirements": [ # Requirements for additional authentication providers.
                   { # User-defined authentication requirements, including support for
                       # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -667,13 +676,11 @@
                         #                bookstore_web.apps.googleusercontent.com
                   },
                 ],
-                "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-                    # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-                    #
-                    # For requests without credentials, if the service control environment is
-                    # specified, each incoming request **must** be associated with a service
-                    # consumer. This can be done by passing an API key that belongs to a consumer
-                    # project.
+                "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+                  "provider": "A String", # A configuration string containing connection information for the
+                      # authentication provider, typically formatted as a SmartService string
+                      # (go/smartservice).
+                },
                 "selector": "A String", # Selects the methods to which this rule applies.
                     #
                     # Refer to selector for syntax details.
@@ -833,6 +840,11 @@
                   # parameters. Assume the following definition of the request message:
                   #
                   #
+                  #     service Messaging {
+                  #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                  #         option (google.api.http).get = "/v1/messages/{message_id}";
+                  #       }
+                  #     }
                   #     message GetMessageRequest {
                   #       message SubMessage {
                   #         string subfield = 1;
@@ -990,43 +1002,95 @@
                     # `*` for mapping all fields not captured by the path pattern to the HTTP
                     # body. NOTE: the referred field must not be a repeated field and must be
                     # present at the top-level of request message type.
-                "selector": "A String", # Selects methods to which this rule applies.
-                    #
-                    # Refer to selector for syntax details.
                 "get": "A String", # Used for listing and getting information about resources.
-                "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-                    # For media support, add instead [][google.bytestream.RestByteStream] as an
-                    # API to your configuration.
-                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-                    # your configuration for Bytestream methods.
-                  "enabled": True or False, # Whether download is enabled.
-                  "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-                      #
-                      # Specify name of the download service if one is used for download.
-                },
+                "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+                    # pattern. If specified, this field overrides the default collection name.
+                    # Example:
+                    #
+                    #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+                    #         returns (AddressesAggregatedListResponse) {
+                    #       option (google.api.http) = {
+                    #         get: "/v1/projects/{project_id}/aggregated/addresses"
+                    #         rest_collection: "projects.addresses"
+                    #       };
+                    #     }
+                    #
+                    # This method has the automatically derived collection name
+                    # "projects.aggregated". Because, semantically, this rpc is actually an
+                    # operation on the "projects.addresses" collection, the `rest_collection`
+                    # field is configured to override the derived collection name.
                 "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
                     # not contain an `additional_bindings` field themselves (that is,
                     # the nesting may only be one level deep).
                   # Object with schema name: HttpRule
                 ],
-                "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+                "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
                     # Bytestream, add instead
                     # [][google.bytestream.RestByteStream] as an API to your
                     # configuration for Bytestream methods.
+                    # Use this only for Scotty Requests. Do not use this for media support using
                     # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
                     # your configuration for Bytestream methods.
+                  "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+                  "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+                  "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+                      # of the given patterns.
+                    "A String",
+                  ],
                   "enabled": True or False, # Whether upload is enabled.
-                  "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                  "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+                      # upload should be sent to the backend. These notifications will not be seen
+                      # by the client and will not consume quota.
+                  "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+                  "maxSize": "A String", # Optional maximum acceptable size for an upload.
+                      # The size is specified in bytes.
+                  "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
                       #
                       # Specify name of the upload service if one is used for upload.
                 },
-                "patch": "A String", # Used for updating a resource.
+                "selector": "A String", # Selects methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
                 "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
                     # response. Other response fields are ignored. This field is optional. When
                     # not set, the response message will be used as HTTP body of response.
                     # NOTE: the referred field must be not a repeated field and must be present
                     # at the top-level of response message type.
+                "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+                    # pattern. If specified, this field overrides the default method name.
+                    # Example:
+                    #
+                    #     rpc CreateResource(CreateResourceRequest)
+                    #         returns (CreateResourceResponse) {
+                    #       option (google.api.http) = {
+                    #         post: "/v1/resources",
+                    #         body: "resource",
+                    #         rest_method_name: "insert"
+                    #       };
+                    #     }
+                    #
+                    # This method has the automatically derived rest method name "create", but
+                    #  for backwards compatability with apiary, it is specified as insert.
+                "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+                    # For media support, add instead [][google.bytestream.RestByteStream] as an
+                    # API to your configuration.
+                    # Use this only for Scotty Requests. Do not use this for media support using
+                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                    # your configuration for Bytestream methods.
+                  "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+                      # download of this media.
+                  "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+                      # download should be sent to the backend.
+                  "enabled": True or False, # Whether download is enabled.
+                  "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+                      # The size is specified in bytes.
+                  "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+                  "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+                      #
+                      # Specify name of the download service if one is used for download.
+                },
                 "put": "A String", # Used for updating a resource.
+                "patch": "A String", # Used for updating a resource.
                 "post": "A String", # Used for creating a resource.
                 "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
                   "path": "A String", # The path matched by this custom verb.
@@ -1035,6 +1099,12 @@
                 "delete": "A String", # Used for deleting a resource.
               },
             ],
+            "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+                # cases of single segment matches in reserved expansion, where "%2F" will be
+                # left encoded.
+                #
+                # The default behavior is to not decode RFC 6570 reserved characters in multi
+                # segment matches.
           },
           "apis": [ # A list of API interfaces exported by this service. Only the `name` field
               # of the google.protobuf.Api needs to be provided by the configuration
@@ -1042,31 +1112,8 @@
               # normalization process. It is an error to specify an API interface here
               # which cannot be resolved against the associated IDL files.
             { # Api is a light-weight descriptor for a protocol buffer service.
-              "methods": [ # The methods of this api, in unspecified order.
-                { # Method represents a method of an api.
-                  "name": "A String", # The simple name of this method.
-                  "requestStreaming": True or False, # If true, the request is streamed.
-                  "responseTypeUrl": "A String", # The URL of the output message type.
-                  "requestTypeUrl": "A String", # A URL of the input message type.
-                  "responseStreaming": True or False, # If true, the response is streamed.
-                  "syntax": "A String", # The source syntax of this method.
-                  "options": [ # Any metadata attached to the method.
-                    { # A protocol buffer option, which can be attached to a message, field,
-                        # enumeration, etc.
-                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                          # For custom options, it should be the fully-qualified name. For example,
-                          # `"google.api.http"`.
-                      "value": { # The option's value packed in an Any message. If the value is a primitive,
-                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                          # should be used. If the value is an enum, it should be stored as an int32
-                          # value using the google.protobuf.Int32Value type.
-                        "a_key": "", # Properties of the object. Contains field @type with type URL.
-                      },
-                    },
-                  ],
-                },
-              ],
+              "name": "A String", # The fully qualified name of this api, including package name
+                  # followed by the api's simple name.
               "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
                   # message.
                   # protobuf element, like the file in which it is defined.
@@ -1192,8 +1239,31 @@
                   },
                 },
               ],
-              "name": "A String", # The fully qualified name of this api, including package name
-                  # followed by the api's simple name.
+              "methods": [ # The methods of this api, in unspecified order.
+                { # Method represents a method of an api.
+                  "name": "A String", # The simple name of this method.
+                  "requestStreaming": True or False, # If true, the request is streamed.
+                  "responseTypeUrl": "A String", # The URL of the output message type.
+                  "requestTypeUrl": "A String", # A URL of the input message type.
+                  "responseStreaming": True or False, # If true, the response is streamed.
+                  "syntax": "A String", # The source syntax of this method.
+                  "options": [ # Any metadata attached to the method.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                },
+              ],
             },
           ],
           "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -1221,6 +1291,160 @@
               "A String",
             ],
           },
+          "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+              # usage.
+              #
+              # The quota configuration works this way:
+              # - The service configuration defines a set of metrics.
+              # - For API calls, the quota.metric_rules maps methods to metrics with
+              #   corresponding costs.
+              # - The quota.limits defines limits on the metrics, which will be used for
+              #   quota checks at runtime.
+              #
+              # An example quota configuration in yaml format:
+              #
+              #    quota:
+              #
+              #      - name: apiWriteQpsPerProject
+              #        metric: library.googleapis.com/write_calls
+              #        unit: "1/min/{project}"  # rate limit for consumer projects
+              #        values:
+              #          STANDARD: 10000
+              #
+              #
+              #      # The metric rules bind all methods to the read_calls metric,
+              #      # except for the UpdateBook and DeleteBook methods. These two methods
+              #      # are mapped to the write_calls metric, with the UpdateBook method
+              #      # consuming at twice rate as the DeleteBook method.
+              #      metric_rules:
+              #      - selector: "*"
+              #        metric_costs:
+              #          library.googleapis.com/read_calls: 1
+              #      - selector: google.example.library.v1.LibraryService.UpdateBook
+              #        metric_costs:
+              #          library.googleapis.com/write_calls: 2
+              #      - selector: google.example.library.v1.LibraryService.DeleteBook
+              #        metric_costs:
+              #          library.googleapis.com/write_calls: 1
+              #
+              #  Corresponding Metric definition:
+              #
+              #      metrics:
+              #      - name: library.googleapis.com/read_calls
+              #        display_name: Read requests
+              #        metric_kind: DELTA
+              #        value_type: INT64
+              #
+              #      - name: library.googleapis.com/write_calls
+              #        display_name: Write requests
+              #        metric_kind: DELTA
+              #        value_type: INT64
+            "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+                # or more metrics.
+              { # Bind API methods to metrics. Binding a method to a metric causes that
+                  # metric's configured quota behaviors to apply to the method call.
+                "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+                    # cost applied to each metric.
+                    #
+                    # The key of the map is the metric name, and the values are the amount
+                    # increased for the metric against which the quota limits are defined.
+                    # The value must not be negative.
+                  "a_key": "A String",
+                },
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "limits": [ # List of `QuotaLimit` definitions for the service.
+              { # `QuotaLimit` defines a specific limit that applies over a specified duration
+                  # for a limit type. There can be at most one limit for a duration and limit
+                  # type combination defined within a `QuotaGroup`.
+                "displayName": "A String", # User-visible display name for this limit.
+                    # Optional. If not set, the UI will provide a default display name based on
+                    # the quota configuration. This field can be used to override the default
+                    # display name generated from the configuration.
+                "description": "A String", # Optional. User-visible, extended description for this quota limit.
+                    # Should be used only when more context is needed to understand this limit
+                    # than provided by the limit's display name (see: `display_name`).
+                "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+                    # duration. This is the number of tokens assigned when a client
+                    # application developer activates the service for his/her project.
+                    #
+                    # Specifying a value of 0 will block all requests. This can be used if you
+                    # are provisioning quota to selected consumers and blocking others.
+                    # Similarly, a value of -1 will indicate an unlimited quota. No other
+                    # negative values are allowed.
+                    #
+                    # Used by group-based quotas only.
+                "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+                    # the same metric will be checked together during runtime. The metric must be
+                    # defined within the service config.
+                    #
+                    # Used by metric-based quotas only.
+                "values": { # Tiered limit values, currently only STANDARD is supported.
+                  "a_key": "A String",
+                },
+                "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+                    # duration. Client application developers can override the default limit up
+                    # to this maximum. If specified, this value cannot be set to a value less
+                    # than the default limit. If not specified, it is set to the default limit.
+                    #
+                    # To allow clients to apply overrides with no upper bound, set this to -1,
+                    # indicating unlimited maximum quota.
+                    #
+                    # Used by group-based quotas only.
+                "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+                    # For duration longer than a day, only multiple of days is supported. We
+                    # support only "100s" and "1d" for now. Additional support will be added in
+                    # the future. "0" indicates indefinite duration.
+                    #
+                    # Used by group-based quotas only.
+                "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+                    # The free tier is the number of tokens that will be subtracted from the
+                    # billed amount when billing is enabled.
+                    # This field can only be set on a limit with duration "1d", in a billable
+                    # group; it is invalid on any other limit. If this field is not set, it
+                    # defaults to 0, indicating that there is no free tier for this service.
+                    #
+                    # Used by group-based quotas only.
+                "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+                    # Metric.unit. The supported unit kinds are determined by the quota
+                    # backend system.
+                    #
+                    # The [Google Service Control](https://cloud.google.com/service-control)
+                    # supports the following unit components:
+                    # * One of the time intevals:
+                    #   * "/min"  for quota every minute.
+                    #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+                    #   * Otherwise the quota won't be reset by time, such as storage limit.
+                    # * One and only one of the granted containers:
+                    #   * "/{project}" quota for a project
+                    #
+                    # Here are some examples:
+                    # * "1/min/{project}" for quota per minute per project.
+                    #
+                    # Note: the order of unit components is insignificant.
+                    # The "1" at the beginning is required to follow the metric unit syntax.
+                    #
+                    # Used by metric-based quotas only.
+                "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+                    # overriding the default limit on per-consumer basis.
+                    #
+                    # For metric-based quota limits, the name must be provided, and it must be
+                    # unique within the service. The name can only include alphanumeric
+                    # characters as well as '-'.
+                    #
+                    # The maximum length of the limit name is 64 characters.
+                    #
+                    # The name of a limit is used as a unique identifier for this limit.
+                    # Therefore, once a limit has been put into use, its name should be
+                    # immutable. You can use the display_name field to provide a user-friendly
+                    # name for the limit. The display name can be evolved over time without
+                    # affecting the identity of the limit.
+              },
+            ],
+          },
           "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
               # elements.  Restrictions are specified using visibility labels
               # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -1405,6 +1629,8 @@
               "name": "A String", # Enum type name.
               "enumvalue": [ # Enum value definitions.
                 { # Enum value definition.
+                  "number": 42, # Enum value number.
+                  "name": "A String", # Enum value name.
                   "options": [ # Protocol buffer options.
                     { # A protocol buffer option, which can be attached to a message, field,
                         # enumeration, etc.
@@ -1420,8 +1646,6 @@
                       },
                     },
                   ],
-                  "number": 42, # Enum value number.
-                  "name": "A String", # Enum value name.
                 },
               ],
             },
@@ -1793,12 +2017,26 @@
                 #       # allowed to proceed.
                 #     - name: library-example.googleapis.com
                 #       allow_cors: true
+              "features": [ # The list of features enabled on this endpoint.
+                "A String",
+              ],
+              "apis": [ # The list of APIs served by this endpoint.
+                  #
+                  # If no APIs are specified this translates to "all APIs" exported by the
+                  # service, as defined in the top-level service configuration.
+                "A String",
+              ],
               "allowCors": True or False, # Allowing
                   # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
                   # cross-domain traffic, would allow the backends served from this endpoint to
                   # receive and respond to HTTP OPTIONS requests. The response will be used by
                   # the browser to determine whether the subsequent cross-origin request is
                   # allowed to proceed.
+              "name": "A String", # The canonical name of this endpoint.
+              "target": "A String", # The specification of an Internet routable address of API frontend that will
+                  # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+                  # It should be either a valid IPv4 address or a fully-qualified domain name.
+                  # For example, "8.8.8.8" or "myservice.appspot.com".
               "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
                   # please specify multiple google.api.Endpoint for each of the intented
                   # alias.
@@ -1806,13 +2044,6 @@
                   # Additional names that this endpoint will be hosted on.
                 "A String",
               ],
-              "features": [ # The list of features enabled on this endpoint.
-                "A String",
-              ],
-              "name": "A String", # The canonical name of this endpoint.
-              "apis": [ # The list of APIs served by this endpoint.
-                "A String",
-              ],
             },
           ],
           "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
diff --git a/docs/dyn/serviceuser_v1.services.html b/docs/dyn/serviceuser_v1.services.html
index 74882e3..93e3f88 100644
--- a/docs/dyn/serviceuser_v1.services.html
+++ b/docs/dyn/serviceuser_v1.services.html
@@ -250,9 +250,9 @@
                       # is implementation-dependent.
                     "urlQueryParameter": "A String", # Define the URL query parameter name to use for the parameter. It is case
                         # sensitive.
-                    "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
                     "httpHeader": "A String", # Define the HTTP header name to use for the parameter. It is case
                         # insensitive.
+                    "name": "A String", # Define the name of the parameter, such as "api_key" . It is case sensitive.
                   },
                 ],
                 "selector": "A String", # Selects the methods to which this rule applies. Use '*' to indicate all
@@ -273,6 +273,8 @@
                 "selector": "A String", # Selects the methods to which this rule applies.
                     #
                     # Refer to selector for syntax details.
+                "minDeadline": 3.14, # Minimum deadline in seconds needed for this method. Calls having deadline
+                    # value lower than this will be rejected.
                 "deadline": 3.14, # The number of seconds to wait for a response from a request.  The
                     # default depends on the deployment context.
                 "address": "A String", # The address of the API backend.
@@ -398,6 +400,13 @@
                       #      canonical_scopes: https://www.googleapis.com/auth/calendar,
                       #                        https://www.googleapis.com/auth/calendar.read
                 },
+                "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                    # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                    #
+                    # For requests without credentials, if the service control environment is
+                    # specified, each incoming request **must** be associated with a service
+                    # consumer. This can be done by passing an API key that belongs to a consumer
+                    # project.
                 "requirements": [ # Requirements for additional authentication providers.
                   { # User-defined authentication requirements, including support for
                       # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
@@ -424,13 +433,11 @@
                         #                bookstore_web.apps.googleusercontent.com
                   },
                 ],
-                "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
-                    # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
-                    #
-                    # For requests without credentials, if the service control environment is
-                    # specified, each incoming request **must** be associated with a service
-                    # consumer. This can be done by passing an API key that belongs to a consumer
-                    # project.
+                "customAuth": { # Configuration for a custom authentication provider. # Configuration for custom authentication.
+                  "provider": "A String", # A configuration string containing connection information for the
+                      # authentication provider, typically formatted as a SmartService string
+                      # (go/smartservice).
+                },
                 "selector": "A String", # Selects the methods to which this rule applies.
                     #
                     # Refer to selector for syntax details.
@@ -590,6 +597,11 @@
                   # parameters. Assume the following definition of the request message:
                   #
                   #
+                  #     service Messaging {
+                  #       rpc GetMessage(GetMessageRequest) returns (Message) {
+                  #         option (google.api.http).get = "/v1/messages/{message_id}";
+                  #       }
+                  #     }
                   #     message GetMessageRequest {
                   #       message SubMessage {
                   #         string subfield = 1;
@@ -747,43 +759,95 @@
                     # `*` for mapping all fields not captured by the path pattern to the HTTP
                     # body. NOTE: the referred field must not be a repeated field and must be
                     # present at the top-level of request message type.
-                "selector": "A String", # Selects methods to which this rule applies.
-                    #
-                    # Refer to selector for syntax details.
                 "get": "A String", # Used for listing and getting information about resources.
-                "mediaDownload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for bytestream methods.
-                    # For media support, add instead [][google.bytestream.RestByteStream] as an
-                    # API to your configuration.
-                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
-                    # your configuration for Bytestream methods.
-                  "enabled": True or False, # Whether download is enabled.
-                  "downloadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
-                      #
-                      # Specify name of the download service if one is used for download.
-                },
+                "restCollection": "A String", # Optional. The REST collection name is by default derived from the URL
+                    # pattern. If specified, this field overrides the default collection name.
+                    # Example:
+                    #
+                    #     rpc AddressesAggregatedList(AddressesAggregatedListRequest)
+                    #         returns (AddressesAggregatedListResponse) {
+                    #       option (google.api.http) = {
+                    #         get: "/v1/projects/{project_id}/aggregated/addresses"
+                    #         rest_collection: "projects.addresses"
+                    #       };
+                    #     }
+                    #
+                    # This method has the automatically derived collection name
+                    # "projects.aggregated". Because, semantically, this rpc is actually an
+                    # operation on the "projects.addresses" collection, the `rest_collection`
+                    # field is configured to override the derived collection name.
                 "additionalBindings": [ # Additional HTTP bindings for the selector. Nested bindings must
                     # not contain an `additional_bindings` field themselves (that is,
                     # the nesting may only be one level deep).
                   # Object with schema name: HttpRule
                 ],
-                "mediaUpload": { # Use this only for Scotty Requests. Do not use this for media support using # Use this only for Scotty Requests. Do not use this for media support using
+                "mediaUpload": { # Defines the Media configuration for a service in case of an upload. # Use this only for Scotty Requests. Do not use this for media support using
                     # Bytestream, add instead
                     # [][google.bytestream.RestByteStream] as an API to your
                     # configuration for Bytestream methods.
+                    # Use this only for Scotty Requests. Do not use this for media support using
                     # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
                     # your configuration for Bytestream methods.
+                  "startNotification": True or False, # Whether to receive a notification on the start of media upload.
+                  "progressNotification": True or False, # Whether to receive a notification for progress changes of media upload.
+                  "mimeTypes": [ # An array of mimetype patterns. Esf will only accept uploads that match one
+                      # of the given patterns.
+                    "A String",
+                  ],
                   "enabled": True or False, # Whether upload is enabled.
-                  "uploadService": "A String", # DO NOT USE THIS FIELD UNTIL THIS WARNING IS REMOVED.
+                  "completeNotification": True or False, # A boolean that determines whether a notification for the completion of an
+                      # upload should be sent to the backend. These notifications will not be seen
+                      # by the client and will not consume quota.
+                  "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+                  "maxSize": "A String", # Optional maximum acceptable size for an upload.
+                      # The size is specified in bytes.
+                  "uploadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
                       #
                       # Specify name of the upload service if one is used for upload.
                 },
-                "patch": "A String", # Used for updating a resource.
+                "selector": "A String", # Selects methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
                 "responseBody": "A String", # The name of the response field whose value is mapped to the HTTP body of
                     # response. Other response fields are ignored. This field is optional. When
                     # not set, the response message will be used as HTTP body of response.
                     # NOTE: the referred field must be not a repeated field and must be present
                     # at the top-level of response message type.
+                "restMethodName": "A String", # Optional. The rest method name is by default derived from the URL
+                    # pattern. If specified, this field overrides the default method name.
+                    # Example:
+                    #
+                    #     rpc CreateResource(CreateResourceRequest)
+                    #         returns (CreateResourceResponse) {
+                    #       option (google.api.http) = {
+                    #         post: "/v1/resources",
+                    #         body: "resource",
+                    #         rest_method_name: "insert"
+                    #       };
+                    #     }
+                    #
+                    # This method has the automatically derived rest method name "create", but
+                    #  for backwards compatability with apiary, it is specified as insert.
+                "mediaDownload": { # Defines the Media configuration for a service in case of a download. # Use this only for Scotty Requests. Do not use this for bytestream methods.
+                    # For media support, add instead [][google.bytestream.RestByteStream] as an
+                    # API to your configuration.
+                    # Use this only for Scotty Requests. Do not use this for media support using
+                    # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+                    # your configuration for Bytestream methods.
+                  "useDirectDownload": True or False, # A boolean that determines if direct download from ESF should be used for
+                      # download of this media.
+                  "completeNotification": True or False, # A boolean that determines whether a notification for the completion of a
+                      # download should be sent to the backend.
+                  "enabled": True or False, # Whether download is enabled.
+                  "maxDirectDownloadSize": "A String", # Optional maximum acceptable size for direct download.
+                      # The size is specified in bytes.
+                  "dropzone": "A String", # Name of the Scotty dropzone to use for the current API.
+                  "downloadService": "A String", # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+                      #
+                      # Specify name of the download service if one is used for download.
+                },
                 "put": "A String", # Used for updating a resource.
+                "patch": "A String", # Used for updating a resource.
                 "post": "A String", # Used for creating a resource.
                 "custom": { # A custom pattern is used for defining custom HTTP verb. # Custom pattern is used for defining custom verbs.
                   "path": "A String", # The path matched by this custom verb.
@@ -792,6 +856,12 @@
                 "delete": "A String", # Used for deleting a resource.
               },
             ],
+            "fullyDecodeReservedExpansion": True or False, # When set to true, URL path parmeters will be fully URI-decoded except in
+                # cases of single segment matches in reserved expansion, where "%2F" will be
+                # left encoded.
+                #
+                # The default behavior is to not decode RFC 6570 reserved characters in multi
+                # segment matches.
           },
           "apis": [ # A list of API interfaces exported by this service. Only the `name` field
               # of the google.protobuf.Api needs to be provided by the configuration
@@ -799,31 +869,8 @@
               # normalization process. It is an error to specify an API interface here
               # which cannot be resolved against the associated IDL files.
             { # Api is a light-weight descriptor for a protocol buffer service.
-              "methods": [ # The methods of this api, in unspecified order.
-                { # Method represents a method of an api.
-                  "name": "A String", # The simple name of this method.
-                  "requestStreaming": True or False, # If true, the request is streamed.
-                  "responseTypeUrl": "A String", # The URL of the output message type.
-                  "requestTypeUrl": "A String", # A URL of the input message type.
-                  "responseStreaming": True or False, # If true, the response is streamed.
-                  "syntax": "A String", # The source syntax of this method.
-                  "options": [ # Any metadata attached to the method.
-                    { # A protocol buffer option, which can be attached to a message, field,
-                        # enumeration, etc.
-                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
-                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
-                          # For custom options, it should be the fully-qualified name. For example,
-                          # `"google.api.http"`.
-                      "value": { # The option's value packed in an Any message. If the value is a primitive,
-                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
-                          # should be used. If the value is an enum, it should be stored as an int32
-                          # value using the google.protobuf.Int32Value type.
-                        "a_key": "", # Properties of the object. Contains field @type with type URL.
-                      },
-                    },
-                  ],
-                },
-              ],
+              "name": "A String", # The fully qualified name of this api, including package name
+                  # followed by the api's simple name.
               "sourceContext": { # `SourceContext` represents information about the source of a # Source context for the protocol buffer service represented by this
                   # message.
                   # protobuf element, like the file in which it is defined.
@@ -949,8 +996,31 @@
                   },
                 },
               ],
-              "name": "A String", # The fully qualified name of this api, including package name
-                  # followed by the api's simple name.
+              "methods": [ # The methods of this api, in unspecified order.
+                { # Method represents a method of an api.
+                  "name": "A String", # The simple name of this method.
+                  "requestStreaming": True or False, # If true, the request is streamed.
+                  "responseTypeUrl": "A String", # The URL of the output message type.
+                  "requestTypeUrl": "A String", # A URL of the input message type.
+                  "responseStreaming": True or False, # If true, the response is streamed.
+                  "syntax": "A String", # The source syntax of this method.
+                  "options": [ # Any metadata attached to the method.
+                    { # A protocol buffer option, which can be attached to a message, field,
+                        # enumeration, etc.
+                      "name": "A String", # The option's name. For protobuf built-in options (options defined in
+                          # descriptor.proto), this is the short name. For example, `"map_entry"`.
+                          # For custom options, it should be the fully-qualified name. For example,
+                          # `"google.api.http"`.
+                      "value": { # The option's value packed in an Any message. If the value is a primitive,
+                          # the corresponding wrapper type defined in google/protobuf/wrappers.proto
+                          # should be used. If the value is an enum, it should be stored as an int32
+                          # value using the google.protobuf.Int32Value type.
+                        "a_key": "", # Properties of the object. Contains field @type with type URL.
+                      },
+                    },
+                  ],
+                },
+              ],
             },
           ],
           "customError": { # Customize service error responses.  For example, list any service # Custom error configuration.
@@ -978,6 +1048,160 @@
               "A String",
             ],
           },
+          "quota": { # Quota configuration helps to achieve fairness and budgeting in service # Quota configuration.
+              # usage.
+              #
+              # The quota configuration works this way:
+              # - The service configuration defines a set of metrics.
+              # - For API calls, the quota.metric_rules maps methods to metrics with
+              #   corresponding costs.
+              # - The quota.limits defines limits on the metrics, which will be used for
+              #   quota checks at runtime.
+              #
+              # An example quota configuration in yaml format:
+              #
+              #    quota:
+              #
+              #      - name: apiWriteQpsPerProject
+              #        metric: library.googleapis.com/write_calls
+              #        unit: "1/min/{project}"  # rate limit for consumer projects
+              #        values:
+              #          STANDARD: 10000
+              #
+              #
+              #      # The metric rules bind all methods to the read_calls metric,
+              #      # except for the UpdateBook and DeleteBook methods. These two methods
+              #      # are mapped to the write_calls metric, with the UpdateBook method
+              #      # consuming at twice rate as the DeleteBook method.
+              #      metric_rules:
+              #      - selector: "*"
+              #        metric_costs:
+              #          library.googleapis.com/read_calls: 1
+              #      - selector: google.example.library.v1.LibraryService.UpdateBook
+              #        metric_costs:
+              #          library.googleapis.com/write_calls: 2
+              #      - selector: google.example.library.v1.LibraryService.DeleteBook
+              #        metric_costs:
+              #          library.googleapis.com/write_calls: 1
+              #
+              #  Corresponding Metric definition:
+              #
+              #      metrics:
+              #      - name: library.googleapis.com/read_calls
+              #        display_name: Read requests
+              #        metric_kind: DELTA
+              #        value_type: INT64
+              #
+              #      - name: library.googleapis.com/write_calls
+              #        display_name: Write requests
+              #        metric_kind: DELTA
+              #        value_type: INT64
+            "metricRules": [ # List of `MetricRule` definitions, each one mapping a selected method to one
+                # or more metrics.
+              { # Bind API methods to metrics. Binding a method to a metric causes that
+                  # metric's configured quota behaviors to apply to the method call.
+                "metricCosts": { # Metrics to update when the selected methods are called, and the associated
+                    # cost applied to each metric.
+                    #
+                    # The key of the map is the metric name, and the values are the amount
+                    # increased for the metric against which the quota limits are defined.
+                    # The value must not be negative.
+                  "a_key": "A String",
+                },
+                "selector": "A String", # Selects the methods to which this rule applies.
+                    #
+                    # Refer to selector for syntax details.
+              },
+            ],
+            "limits": [ # List of `QuotaLimit` definitions for the service.
+              { # `QuotaLimit` defines a specific limit that applies over a specified duration
+                  # for a limit type. There can be at most one limit for a duration and limit
+                  # type combination defined within a `QuotaGroup`.
+                "displayName": "A String", # User-visible display name for this limit.
+                    # Optional. If not set, the UI will provide a default display name based on
+                    # the quota configuration. This field can be used to override the default
+                    # display name generated from the configuration.
+                "description": "A String", # Optional. User-visible, extended description for this quota limit.
+                    # Should be used only when more context is needed to understand this limit
+                    # than provided by the limit's display name (see: `display_name`).
+                "defaultLimit": "A String", # Default number of tokens that can be consumed during the specified
+                    # duration. This is the number of tokens assigned when a client
+                    # application developer activates the service for his/her project.
+                    #
+                    # Specifying a value of 0 will block all requests. This can be used if you
+                    # are provisioning quota to selected consumers and blocking others.
+                    # Similarly, a value of -1 will indicate an unlimited quota. No other
+                    # negative values are allowed.
+                    #
+                    # Used by group-based quotas only.
+                "metric": "A String", # The name of the metric this quota limit applies to. The quota limits with
+                    # the same metric will be checked together during runtime. The metric must be
+                    # defined within the service config.
+                    #
+                    # Used by metric-based quotas only.
+                "values": { # Tiered limit values, currently only STANDARD is supported.
+                  "a_key": "A String",
+                },
+                "maxLimit": "A String", # Maximum number of tokens that can be consumed during the specified
+                    # duration. Client application developers can override the default limit up
+                    # to this maximum. If specified, this value cannot be set to a value less
+                    # than the default limit. If not specified, it is set to the default limit.
+                    #
+                    # To allow clients to apply overrides with no upper bound, set this to -1,
+                    # indicating unlimited maximum quota.
+                    #
+                    # Used by group-based quotas only.
+                "duration": "A String", # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+                    # For duration longer than a day, only multiple of days is supported. We
+                    # support only "100s" and "1d" for now. Additional support will be added in
+                    # the future. "0" indicates indefinite duration.
+                    #
+                    # Used by group-based quotas only.
+                "freeTier": "A String", # Free tier value displayed in the Developers Console for this limit.
+                    # The free tier is the number of tokens that will be subtracted from the
+                    # billed amount when billing is enabled.
+                    # This field can only be set on a limit with duration "1d", in a billable
+                    # group; it is invalid on any other limit. If this field is not set, it
+                    # defaults to 0, indicating that there is no free tier for this service.
+                    #
+                    # Used by group-based quotas only.
+                "unit": "A String", # Specify the unit of the quota limit. It uses the same syntax as
+                    # Metric.unit. The supported unit kinds are determined by the quota
+                    # backend system.
+                    #
+                    # The [Google Service Control](https://cloud.google.com/service-control)
+                    # supports the following unit components:
+                    # * One of the time intevals:
+                    #   * "/min"  for quota every minute.
+                    #   * "/d"  for quota every 24 hours, starting 00:00 US Pacific Time.
+                    #   * Otherwise the quota won't be reset by time, such as storage limit.
+                    # * One and only one of the granted containers:
+                    #   * "/{project}" quota for a project
+                    #
+                    # Here are some examples:
+                    # * "1/min/{project}" for quota per minute per project.
+                    #
+                    # Note: the order of unit components is insignificant.
+                    # The "1" at the beginning is required to follow the metric unit syntax.
+                    #
+                    # Used by metric-based quotas only.
+                "name": "A String", # Name of the quota limit. The name is used to refer to the limit when
+                    # overriding the default limit on per-consumer basis.
+                    #
+                    # For metric-based quota limits, the name must be provided, and it must be
+                    # unique within the service. The name can only include alphanumeric
+                    # characters as well as '-'.
+                    #
+                    # The maximum length of the limit name is 64 characters.
+                    #
+                    # The name of a limit is used as a unique identifier for this limit.
+                    # Therefore, once a limit has been put into use, its name should be
+                    # immutable. You can use the display_name field to provide a user-friendly
+                    # name for the limit. The display name can be evolved over time without
+                    # affecting the identity of the limit.
+              },
+            ],
+          },
           "visibility": { # `Visibility` defines restrictions for the visibility of service # API visibility configuration.
               # elements.  Restrictions are specified using visibility labels
               # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
@@ -1162,6 +1386,8 @@
               "name": "A String", # Enum type name.
               "enumvalue": [ # Enum value definitions.
                 { # Enum value definition.
+                  "number": 42, # Enum value number.
+                  "name": "A String", # Enum value name.
                   "options": [ # Protocol buffer options.
                     { # A protocol buffer option, which can be attached to a message, field,
                         # enumeration, etc.
@@ -1177,8 +1403,6 @@
                       },
                     },
                   ],
-                  "number": 42, # Enum value number.
-                  "name": "A String", # Enum value name.
                 },
               ],
             },
@@ -1550,12 +1774,26 @@
                 #       # allowed to proceed.
                 #     - name: library-example.googleapis.com
                 #       allow_cors: true
+              "features": [ # The list of features enabled on this endpoint.
+                "A String",
+              ],
+              "apis": [ # The list of APIs served by this endpoint.
+                  #
+                  # If no APIs are specified this translates to "all APIs" exported by the
+                  # service, as defined in the top-level service configuration.
+                "A String",
+              ],
               "allowCors": True or False, # Allowing
                   # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
                   # cross-domain traffic, would allow the backends served from this endpoint to
                   # receive and respond to HTTP OPTIONS requests. The response will be used by
                   # the browser to determine whether the subsequent cross-origin request is
                   # allowed to proceed.
+              "name": "A String", # The canonical name of this endpoint.
+              "target": "A String", # The specification of an Internet routable address of API frontend that will
+                  # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary).
+                  # It should be either a valid IPv4 address or a fully-qualified domain name.
+                  # For example, "8.8.8.8" or "myservice.appspot.com".
               "aliases": [ # DEPRECATED: This field is no longer supported. Instead of using aliases,
                   # please specify multiple google.api.Endpoint for each of the intented
                   # alias.
@@ -1563,13 +1801,6 @@
                   # Additional names that this endpoint will be hosted on.
                 "A String",
               ],
-              "features": [ # The list of features enabled on this endpoint.
-                "A String",
-              ],
-              "name": "A String", # The canonical name of this endpoint.
-              "apis": [ # The list of APIs served by this endpoint.
-                "A String",
-              ],
             },
           ],
           "experimental": { # Experimental service configuration. These configuration options can # Experimental configuration.
diff --git a/docs/dyn/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index d702068..b25250a 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -127,6 +127,8 @@
       "A String",
     ],
     "requests": [ # A list of updates to apply to the spreadsheet.
+        # Requests will be applied in the order they are specified.
+        # If any request is not valid, no requests will be applied.
       { # A single kind of update to apply to a spreadsheet.
         "duplicateFilterView": { # Duplicates a particular filter view. # Duplicates a filter view.
           "filterId": 42, # The ID of the filter being duplicated.
@@ -162,10 +164,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -212,6 +214,10 @@
         },
         "updateConditionalFormatRule": { # Updates a conditional format rule at the given index, # Updates an existing conditional format rule.
             # or moves a conditional format rule to another index.
+          "index": 42, # The zero-based index of the rule that should be replaced or moved.
+          "newIndex": 42, # The zero-based new index the rule should end up at.
+          "sheetId": 42, # The sheet of the rule to move.  Required if new_index is set,
+              # unused otherwise.
           "rule": { # A rule describing a conditional format. # The rule that should replace the rule at the given index.
             "ranges": [ # The ranges that will be formatted if the condition is true.
                 # All the ranges must be on the same grid.
@@ -245,10 +251,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -297,8 +303,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -859,7 +865,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -993,7 +999,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -1548,10 +1554,6 @@
               },
             },
           },
-          "sheetId": 42, # The sheet of the rule to move.  Required if new_index is set,
-              # unused otherwise.
-          "newIndex": 42, # The zero-based new index the rule should end up at.
-          "index": 42, # The zero-based index of the rule that should be replaced or moved.
         },
         "updateProtectedRange": { # Updates an existing protected range with the specified # Updates a protected range.
             # protectedRangeId.
@@ -1591,10 +1593,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -1605,6 +1607,30 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -1640,35 +1666,11 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
           },
         },
         "deleteDimension": { # Deletes the dimensions from the sheet. # Deletes rows or columns in a sheet.
@@ -1679,8 +1681,8 @@
               # Missing indexes indicate the range is unbounded on that side.
             "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
             "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
+            "sheetId": 42, # The sheet this span is on.
           },
         },
         "addProtectedRange": { # Adds a new protected range. # Adds a protected range.
@@ -1720,10 +1722,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -1734,6 +1736,30 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -1769,35 +1795,11 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
           },
         },
         "deleteEmbeddedObject": { # Deletes the embedded object with the given ID. # Deletes an embedded object (e.g, chart, image) in a sheet.
@@ -1830,7 +1832,6 @@
                 # * a combination of the ISO language code and country code, such as `en_US`
                 #
                 # Note: when updating this field, not all locales/languages are supported.
-            "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
             "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
                 # CellData.effectiveFormat will not be set if the
                 # cell's format is equal to this default format.
@@ -1848,8 +1849,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "left": 42, # The left padding of the cell.
                 "bottom": 42, # The bottom padding of the cell.
+                "left": 42, # The left padding of the cell.
               },
               "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -2410,7 +2411,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "left": { # A border along a cell. # The left border of the cell.
+                "bottom": { # A border along a cell. # The bottom border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -2544,7 +2545,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
+                "left": { # A border along a cell. # The left border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -2681,6 +2682,7 @@
               },
               "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
             },
+            "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
             "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
                 # calculation.  Absence of this field means that circular references will
                 # result in calculation errors.
@@ -2721,21 +2723,21 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           },
                         ],
@@ -2751,21 +2753,21 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           ],
                           "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -2809,10 +2811,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
@@ -2856,21 +2858,21 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           },
                         ],
@@ -2886,21 +2888,21 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           ],
                           "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -2916,26 +2918,28 @@
                     ],
                   },
                   "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                      # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                      # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                      # in the userEnteredValue.formulaValue
+                      # field.)
                   "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                       # the calculated value.  For cells with literals, this will be
                       # the same as the user_entered_value.
                       # This field is read-only.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
                           # (in the spreadsheet's locale).
                       "type": "A String", # The type of error.
                     },
+                    "formulaValue": "A String", # Represents a formula.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
                   },
                   "formattedValue": "A String", # The formatted value of the cell.
                       # This is the value as it's shown to the user.
@@ -2943,21 +2947,21 @@
                   "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                       # Note: Dates, Times and DateTimes are represented as doubles in
                       # serial number format.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
                           # (in the spreadsheet's locale).
                       "type": "A String", # The type of error.
                     },
+                    "formulaValue": "A String", # Represents a formula.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
                   },
                   "note": "A String", # Any note on the cell.
                   "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -2979,8 +2983,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "left": 42, # The left padding of the cell.
                       "bottom": 42, # The bottom padding of the cell.
+                      "left": 42, # The left padding of the cell.
                     },
                     "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -3541,7 +3545,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "left": { # A border along a cell. # The left border of the cell.
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -3675,7 +3679,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "left": { # A border along a cell. # The left border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -3828,8 +3832,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "left": 42, # The left padding of the cell.
                       "bottom": 42, # The bottom padding of the cell.
+                      "left": 42, # The left padding of the cell.
                     },
                     "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -4390,7 +4394,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "left": { # A border along a cell. # The left border of the cell.
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -4524,7 +4528,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "left": { # A border along a cell. # The left border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -4854,10 +4858,10 @@
           "sheetId": 42, # The sheet ID to append the data to.
         },
         "duplicateSheet": { # Duplicates the contents of a sheet. # Duplicates a sheet.
-          "newSheetName": "A String", # The name of the new sheet.  If empty, a new name is chosen for you.
+          "sourceSheetId": 42, # The sheet to duplicate.
           "insertSheetIndex": 42, # The zero-based index where the new sheet should be inserted.
               # The index of all sheets after this are incremented.
-          "sourceSheetId": 42, # The sheet to duplicate.
+          "newSheetName": "A String", # The name of the new sheet.  If empty, a new name is chosen for you.
           "newSheetId": 42, # If set, the ID of the new sheet. If not set, an ID is chosen.
               # If set, the ID must not conflict with any existing sheet ID.
               # If set, it must be non-negative.
@@ -5104,10 +5108,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -5161,10 +5165,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -5236,10 +5240,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -5261,7 +5265,7 @@
                 ],
                 "legendPosition": "A String", # The position of the chart legend.
                 "domains": [ # The domain of data this is charting.
-                    # Only a single domain is currently supported.
+                    # Only a single domain is supported.
                   { # The domain of a chart.
                       # For example, if charting stock prices over time, this would be the date.
                     "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -5314,10 +5318,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -5514,10 +5518,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -5566,8 +5570,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -6128,7 +6132,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -6262,7 +6266,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -6851,21 +6855,21 @@
                       "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                           # (Note that formulaValue is not valid,
                           #  because the values will be calculated.)
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
                               # (in the spreadsheet's locale).
                           "type": "A String", # The type of error.
                         },
+                        "formulaValue": "A String", # Represents a formula.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
                       },
                     },
                   ],
@@ -6881,21 +6885,21 @@
                         # to the "Grand Total" over the column groups. If a single value is listed,
                         # this would correspond to using the "Total" of that bucket.
                       { # The kinds of value that a cell in a spreadsheet can have.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
                               # (in the spreadsheet's locale).
                           "type": "A String", # The type of error.
                         },
+                        "formulaValue": "A String", # Represents a formula.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
                       },
                     ],
                     "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -6939,10 +6943,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
               "values": [ # A list of values to include in the pivot table.
                 { # The definition of how a value in a pivot table should be calculated.
@@ -6986,21 +6990,21 @@
                       "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                           # (Note that formulaValue is not valid,
                           #  because the values will be calculated.)
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
                               # (in the spreadsheet's locale).
                           "type": "A String", # The type of error.
                         },
+                        "formulaValue": "A String", # Represents a formula.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
                       },
                     },
                   ],
@@ -7016,21 +7020,21 @@
                         # to the "Grand Total" over the column groups. If a single value is listed,
                         # this would correspond to using the "Total" of that bucket.
                       { # The kinds of value that a cell in a spreadsheet can have.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
                               # (in the spreadsheet's locale).
                           "type": "A String", # The type of error.
                         },
+                        "formulaValue": "A String", # Represents a formula.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
                       },
                     ],
                     "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -7046,26 +7050,28 @@
               ],
             },
             "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                # in the userEnteredValue.formulaValue
+                # field.)
             "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                 # the calculated value.  For cells with literals, this will be
                 # the same as the user_entered_value.
                 # This field is read-only.
-              "numberValue": 3.14, # Represents a double value.
-                  # Note: Dates, Times and DateTimes are represented as doubles in
-                  # "serial number" format.
-              "boolValue": True or False, # Represents a boolean value.
-              "formulaValue": "A String", # Represents a formula.
               "stringValue": "A String", # Represents a string value.
                   # Leading single quotes are not included. For example, if the user typed
                   # `'123` into the UI, this would be represented as a `stringValue` of
                   # `"123"`.
+              "boolValue": True or False, # Represents a boolean value.
               "errorValue": { # An error in a cell. # Represents an error.
                   # This field is read-only.
                 "message": "A String", # A message with more information about the error
                     # (in the spreadsheet's locale).
                 "type": "A String", # The type of error.
               },
+              "formulaValue": "A String", # Represents a formula.
+              "numberValue": 3.14, # Represents a double value.
+                  # Note: Dates, Times and DateTimes are represented as doubles in
+                  # "serial number" format.
             },
             "formattedValue": "A String", # The formatted value of the cell.
                 # This is the value as it's shown to the user.
@@ -7073,21 +7079,21 @@
             "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                 # Note: Dates, Times and DateTimes are represented as doubles in
                 # serial number format.
-              "numberValue": 3.14, # Represents a double value.
-                  # Note: Dates, Times and DateTimes are represented as doubles in
-                  # "serial number" format.
-              "boolValue": True or False, # Represents a boolean value.
-              "formulaValue": "A String", # Represents a formula.
               "stringValue": "A String", # Represents a string value.
                   # Leading single quotes are not included. For example, if the user typed
                   # `'123` into the UI, this would be represented as a `stringValue` of
                   # `"123"`.
+              "boolValue": True or False, # Represents a boolean value.
               "errorValue": { # An error in a cell. # Represents an error.
                   # This field is read-only.
                 "message": "A String", # A message with more information about the error
                     # (in the spreadsheet's locale).
                 "type": "A String", # The type of error.
               },
+              "formulaValue": "A String", # Represents a formula.
+              "numberValue": 3.14, # Represents a double value.
+                  # Note: Dates, Times and DateTimes are represented as doubles in
+                  # "serial number" format.
             },
             "note": "A String", # Any note on the cell.
             "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -7109,8 +7115,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "left": 42, # The left padding of the cell.
                 "bottom": 42, # The bottom padding of the cell.
+                "left": 42, # The left padding of the cell.
               },
               "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -7671,7 +7677,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "left": { # A border along a cell. # The left border of the cell.
+                "bottom": { # A border along a cell. # The bottom border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -7805,7 +7811,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
+                "left": { # A border along a cell. # The left border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -7958,8 +7964,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "left": 42, # The left padding of the cell.
                 "bottom": 42, # The bottom padding of the cell.
+                "left": 42, # The left padding of the cell.
               },
               "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -8520,7 +8526,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "left": { # A border along a cell. # The left border of the cell.
+                "bottom": { # A border along a cell. # The bottom border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -8654,7 +8660,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
+                "left": { # A border along a cell. # The left border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -9011,10 +9017,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
         "findReplace": { # Finds and replaces data in cells over a range, sheet, or all sheets. # Finds and replaces occurrences of some text with other text.
@@ -9054,10 +9060,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "searchByRegex": True or False, # True if the find value is a regex.
               # The regular expression and replacement should follow Java regex rules
@@ -9102,10 +9108,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -9195,10 +9201,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -9287,10 +9293,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "rows": [ # The data to write.
             { # Data about each cell in a row.
@@ -9312,21 +9318,21 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           },
                         ],
@@ -9342,21 +9348,21 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           ],
                           "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -9400,10 +9406,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
@@ -9447,21 +9453,21 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           },
                         ],
@@ -9477,21 +9483,21 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           ],
                           "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -9507,26 +9513,28 @@
                     ],
                   },
                   "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                      # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                      # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                      # in the userEnteredValue.formulaValue
+                      # field.)
                   "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                       # the calculated value.  For cells with literals, this will be
                       # the same as the user_entered_value.
                       # This field is read-only.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
                           # (in the spreadsheet's locale).
                       "type": "A String", # The type of error.
                     },
+                    "formulaValue": "A String", # Represents a formula.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
                   },
                   "formattedValue": "A String", # The formatted value of the cell.
                       # This is the value as it's shown to the user.
@@ -9534,21 +9542,21 @@
                   "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                       # Note: Dates, Times and DateTimes are represented as doubles in
                       # serial number format.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
                           # (in the spreadsheet's locale).
                       "type": "A String", # The type of error.
                     },
+                    "formulaValue": "A String", # Represents a formula.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
                   },
                   "note": "A String", # Any note on the cell.
                   "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -9570,8 +9578,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "left": 42, # The left padding of the cell.
                       "bottom": 42, # The bottom padding of the cell.
+                      "left": 42, # The left padding of the cell.
                     },
                     "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -10132,7 +10140,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "left": { # A border along a cell. # The left border of the cell.
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -10266,7 +10274,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "left": { # A border along a cell. # The left border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -10419,8 +10427,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "left": 42, # The left padding of the cell.
                       "bottom": 42, # The bottom padding of the cell.
+                      "left": 42, # The left padding of the cell.
                     },
                     "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -10981,7 +10989,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "left": { # A border along a cell. # The left border of the cell.
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -11115,7 +11123,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "left": { # A border along a cell. # The left border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -11450,6 +11458,50 @@
         "autoFill": { # Fills in more data based on existing data. # Automatically fills in more data based on existing data.
           "useAlternateSeries": True or False, # True if we should generate data with the "alternate" series.
               # This differs based on the type and amount of source data.
+          "sourceAndDestination": { # A combination of a source range and how to extend that source. # The source and destination areas to autofill.
+              # This explicitly lists the source of the autofill and where to
+              # extend that data.
+            "source": { # A range on a sheet. # The location of the data to use as the source of the autofill.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "dimension": "A String", # The dimension that data should be filled into.
+            "fillLength": 42, # The number of rows or columns that data should be filled into.
+                # Positive numbers expand beyond the last row or last column
+                # of the source.  Negative numbers expand before the first row
+                # or first column of the source.
+          },
           "range": { # A range on a sheet. # The range to autofill. This will examine the range and detect
               # the location that has data and automatically fill that data
               # in to the rest of the range.
@@ -11482,60 +11534,16 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-          },
-          "sourceAndDestination": { # A combination of a source range and how to extend that source. # The source and destination areas to autofill.
-              # This explicitly lists the source of the autofill and where to
-              # extend that data.
-            "fillLength": 42, # The number of rows or columns that data should be filled into.
-                # Positive numbers expand beyond the last row or last column
-                # of the source.  Negative numbers expand before the first row
-                # or first column of the source.
-            "dimension": "A String", # The dimension that data should be filled into.
-            "source": { # A range on a sheet. # The location of the data to use as the source of the autofill.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            },
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
         "appendDimension": { # Appends rows or columns to the end of a sheet. # Appends dimensions to the end of a sheet.
           "length": 42, # The number of rows or columns to append.
-          "sheetId": 42, # The sheet to append rows or columns to.
           "dimension": "A String", # Whether rows or columns should be appended.
+          "sheetId": 42, # The sheet to append rows or columns to.
         },
         "updateBanding": { # Updates properties of the supplied banded range. # Updates a banded range
           "fields": "A String", # The fields that should be updated.  At least one field must be specified.
@@ -11572,10 +11580,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -12671,8 +12679,8 @@
               # Missing indexes indicate the range is unbounded on that side.
             "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
             "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
+            "sheetId": 42, # The sheet this span is on.
           },
         },
         "updateDimensionProperties": { # Updates properties of dimensions within the specified range. # Updates dimensions' properties.
@@ -12686,8 +12694,8 @@
               # Missing indexes indicate the range is unbounded on that side.
             "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
             "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
+            "sheetId": 42, # The sheet this span is on.
           },
           "properties": { # Properties about a dimension. # Properties to update.
             "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
@@ -12729,10 +12737,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         },
         "setDataValidation": { # Sets a data validation rule to every cell in the range. # Sets data validation for one or more cells.
@@ -12767,10 +12775,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "rule": { # A data validation rule. # The data validation rule to set on each cell in the range,
               # or empty to clear the data validation in the range.
@@ -12836,10 +12844,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "shiftDimension": "A String", # The dimension from which deleted cells will be replaced with.
               # If ROWS, existing cells will be shifted upward to
@@ -12849,48 +12857,46 @@
         "clearBasicFilter": { # Clears the basic filter, if any exists on the sheet. # Clears the basic filter on a sheet.
           "sheetId": 42, # The sheet ID on which the basic filter should be cleared.
         },
-        "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range.
-          "namedRange": { # A named range. # The named range to add. The namedRangeId
-              # field is optional; if one is not set, an id will be randomly generated. (It
-              # is an error to specify the ID of a range that already exists.)
-            "namedRangeId": "A String", # The ID of the named range.
-            "range": { # A range on a sheet. # The range this represents.
-                # All indexes are zero-based.
-                # Indexes are half open, e.g the start index is inclusive
-                # and the end index is exclusive -- [start_index, end_index).
-                # Missing indexes indicate the range is unbounded on that side.
-                #
-                # For example, if `"Sheet1"` is sheet ID 0, then:
-                #
-                #   `Sheet1!A1:A1 == sheet_id: 0,
-                #                   start_row_index: 0, end_row_index: 1,
-                #                   start_column_index: 0, end_column_index: 1`
-                #
-                #   `Sheet1!A3:B4 == sheet_id: 0,
-                #                   start_row_index: 2, end_row_index: 4,
-                #                   start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A:B == sheet_id: 0,
-                #                 start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1!A5:B == sheet_id: 0,
-                #                  start_row_index: 4,
-                #                  start_column_index: 0, end_column_index: 2`
-                #
-                #   `Sheet1 == sheet_id:0`
-                #
-                # The start index must always be less than or equal to the end index.
-                # If the start index equals the end index, then the range is empty.
-                # Empty ranges are typically not meaningful and are usually rendered in the
-                # UI as `#REF!`.
-              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-              "sheetId": 42, # The sheet this range is on.
-              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
-            },
-            "name": "A String", # The name of the named range.
+        "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text.
+            # based on a delimiter in each cell.
+          "source": { # A range on a sheet. # The source data range.  This must span exactly one column.
+              # All indexes are zero-based.
+              # Indexes are half open, e.g the start index is inclusive
+              # and the end index is exclusive -- [start_index, end_index).
+              # Missing indexes indicate the range is unbounded on that side.
+              #
+              # For example, if `"Sheet1"` is sheet ID 0, then:
+              #
+              #   `Sheet1!A1:A1 == sheet_id: 0,
+              #                   start_row_index: 0, end_row_index: 1,
+              #                   start_column_index: 0, end_column_index: 1`
+              #
+              #   `Sheet1!A3:B4 == sheet_id: 0,
+              #                   start_row_index: 2, end_row_index: 4,
+              #                   start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A:B == sheet_id: 0,
+              #                 start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1!A5:B == sheet_id: 0,
+              #                  start_row_index: 4,
+              #                  start_column_index: 0, end_column_index: 2`
+              #
+              #   `Sheet1 == sheet_id:0`
+              #
+              # The start index must always be less than or equal to the end index.
+              # If the start index equals the end index, then the range is empty.
+              # Empty ranges are typically not meaningful and are usually rendered in the
+              # UI as `#REF!`.
+            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "sheetId": 42, # The sheet this range is on.
+            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
+          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
+              # CUSTOM.
+          "delimiterType": "A String", # The delimiter type to use.
         },
         "updateChartSpec": { # Updates a chart's specifications. # Updates a chart's specifications.
             # (This does not move or resize a chart. To move or resize a chart, use
@@ -12948,10 +12954,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -13005,10 +13011,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -13080,10 +13086,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -13105,7 +13111,7 @@
               ],
               "legendPosition": "A String", # The position of the chart legend.
               "domains": [ # The domain of data this is charting.
-                  # Only a single domain is currently supported.
+                  # Only a single domain is supported.
                 { # The domain of a chart.
                     # For example, if charting stock prices over time, this would be the date.
                   "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -13158,10 +13164,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -13329,8 +13335,8 @@
               # Missing indexes indicate the range is unbounded on that side.
             "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
             "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
+            "sheetId": 42, # The sheet this span is on.
           },
           "destinationIndex": 42, # The zero-based start index of where to move the source data to,
               # based on the coordinates *before* the source data is removed
@@ -13345,46 +13351,48 @@
               # (the zero-based index of row 5).
               # The end result would be `A1..A5` of `0, 3, 1, 2, 4`.
         },
-        "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text.
-            # based on a delimiter in each cell.
-          "source": { # A range on a sheet. # The source data range.  This must span exactly one column.
-              # All indexes are zero-based.
-              # Indexes are half open, e.g the start index is inclusive
-              # and the end index is exclusive -- [start_index, end_index).
-              # Missing indexes indicate the range is unbounded on that side.
-              #
-              # For example, if `"Sheet1"` is sheet ID 0, then:
-              #
-              #   `Sheet1!A1:A1 == sheet_id: 0,
-              #                   start_row_index: 0, end_row_index: 1,
-              #                   start_column_index: 0, end_column_index: 1`
-              #
-              #   `Sheet1!A3:B4 == sheet_id: 0,
-              #                   start_row_index: 2, end_row_index: 4,
-              #                   start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A:B == sheet_id: 0,
-              #                 start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1!A5:B == sheet_id: 0,
-              #                  start_row_index: 4,
-              #                  start_column_index: 0, end_column_index: 2`
-              #
-              #   `Sheet1 == sheet_id:0`
-              #
-              # The start index must always be less than or equal to the end index.
-              # If the start index equals the end index, then the range is empty.
-              # Empty ranges are typically not meaningful and are usually rendered in the
-              # UI as `#REF!`.
-            "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
-            "sheetId": 42, # The sheet this range is on.
-            "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+        "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range.
+          "namedRange": { # A named range. # The named range to add. The namedRangeId
+              # field is optional; if one is not set, an id will be randomly generated. (It
+              # is an error to specify the ID of a range that already exists.)
+            "namedRangeId": "A String", # The ID of the named range.
+            "range": { # A range on a sheet. # The range this represents.
+                # All indexes are zero-based.
+                # Indexes are half open, e.g the start index is inclusive
+                # and the end index is exclusive -- [start_index, end_index).
+                # Missing indexes indicate the range is unbounded on that side.
+                #
+                # For example, if `"Sheet1"` is sheet ID 0, then:
+                #
+                #   `Sheet1!A1:A1 == sheet_id: 0,
+                #                   start_row_index: 0, end_row_index: 1,
+                #                   start_column_index: 0, end_column_index: 1`
+                #
+                #   `Sheet1!A3:B4 == sheet_id: 0,
+                #                   start_row_index: 2, end_row_index: 4,
+                #                   start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A:B == sheet_id: 0,
+                #                 start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1!A5:B == sheet_id: 0,
+                #                  start_row_index: 4,
+                #                  start_column_index: 0, end_column_index: 2`
+                #
+                #   `Sheet1 == sheet_id:0`
+                #
+                # The start index must always be less than or equal to the end index.
+                # If the start index equals the end index, then the range is empty.
+                # Empty ranges are typically not meaningful and are usually rendered in the
+                # UI as `#REF!`.
+              "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "sheetId": 42, # The sheet this range is on.
+              "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            },
+            "name": "A String", # The name of the named range.
           },
-          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
-              # CUSTOM.
-          "delimiterType": "A String", # The delimiter type to use.
         },
         "addBanding": { # Adds a new banded range to the spreadsheet. # Adds a new banded range
           "bandedRange": { # A banded (alternating colors) range in a sheet. # The banded range to add. The bandedRangeId
@@ -13420,10 +13428,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -14542,10 +14550,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "mergeType": "A String", # How the cells should be merged.
         },
@@ -14583,10 +14591,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "shiftDimension": "A String", # The dimension which will be shifted when inserting cells.
               # If ROWS, existing cells will be shifted down.
@@ -15172,10 +15180,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "innerVertical": { # A border along a cell. # The vertical border to put within the range.
             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
@@ -15479,10 +15487,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "destination": { # A coordinate in a sheet. # The top-left coordinate where the data should be pasted.
               # All indexes are zero-based.
@@ -15523,10 +15531,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "destination": { # A range on a sheet. # The location to paste to. If the range covers a span that's
               # a multiple of the source's height or width, then the
@@ -15562,10 +15570,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "pasteOrientation": "A String", # How that data should be oriented when pasting.
         },
@@ -15778,10 +15786,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -15806,8 +15814,8 @@
               # Missing indexes indicate the range is unbounded on that side.
             "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded.
             "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded.
-            "sheetId": 42, # The sheet this span is on.
             "dimension": "A String", # The dimension of the span.
+            "sheetId": 42, # The sheet this span is on.
           },
         },
         "updateFilterView": { # Updates properties of the filter view. # Updates the properties of a filter view.
@@ -15851,10 +15859,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -15965,10 +15973,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "name": "A String", # The name of the named range.
         },
@@ -15984,7 +15992,6 @@
             # * a combination of the ISO language code and country code, such as `en_US`
             #
             # Note: when updating this field, not all locales/languages are supported.
-        "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
         "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
             # CellData.effectiveFormat will not be set if the
             # cell's format is equal to this default format.
@@ -16002,8 +16009,8 @@
               # When updating padding, every field must be specified.
             "top": 42, # The top padding of the cell.
             "right": 42, # The right padding of the cell.
-            "left": 42, # The left padding of the cell.
             "bottom": 42, # The bottom padding of the cell.
+            "left": 42, # The left padding of the cell.
           },
           "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
           "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -16564,7 +16571,7 @@
                   # Deprecated; the width is determined by the "style" field.
               "style": "A String", # The style of the border.
             },
-            "left": { # A border along a cell. # The left border of the cell.
+            "bottom": { # A border along a cell. # The bottom border of the cell.
               "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
@@ -16698,7 +16705,7 @@
                   # Deprecated; the width is determined by the "style" field.
               "style": "A String", # The style of the border.
             },
-            "bottom": { # A border along a cell. # The bottom border of the cell.
+            "left": { # A border along a cell. # The left border of the cell.
               "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
@@ -16835,6 +16842,7 @@
           },
           "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
         },
+        "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
         "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
             # calculation.  Absence of this field means that circular references will
             # result in calculation errors.
@@ -16884,10 +16892,10 @@
                     # Empty ranges are typically not meaningful and are usually rendered in the
                     # UI as `#REF!`.
                   "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                   "sheetId": 42, # The sheet this range is on.
                   "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                 },
               ],
               "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -16936,8 +16944,8 @@
                       # When updating padding, every field must be specified.
                     "top": 42, # The top padding of the cell.
                     "right": 42, # The right padding of the cell.
-                    "left": 42, # The left padding of the cell.
                     "bottom": 42, # The bottom padding of the cell.
+                    "left": 42, # The left padding of the cell.
                   },
                   "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                   "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -17498,7 +17506,7 @@
                           # Deprecated; the width is determined by the "style" field.
                       "style": "A String", # The style of the border.
                     },
-                    "left": { # A border along a cell. # The left border of the cell.
+                    "bottom": { # A border along a cell. # The bottom border of the cell.
                       "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
@@ -17632,7 +17640,7 @@
                           # Deprecated; the width is determined by the "style" field.
                       "style": "A String", # The style of the border.
                     },
-                    "bottom": { # A border along a cell. # The bottom border of the cell.
+                    "left": { # A border along a cell. # The left border of the cell.
                       "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
@@ -18220,10 +18228,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
               "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                   # by-column basis throughout all the columns in the range. At least one of
@@ -19339,10 +19347,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           ],
           "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -19376,10 +19384,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -19500,10 +19508,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -19557,10 +19565,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -19632,10 +19640,10 @@
                                 # Empty ranges are typically not meaningful and are usually rendered in the
                                 # UI as `#REF!`.
                               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                               "sheetId": 42, # The sheet this range is on.
                               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                             },
                           ],
                         },
@@ -19657,7 +19665,7 @@
                   ],
                   "legendPosition": "A String", # The position of the chart legend.
                   "domains": [ # The domain of data this is charting.
-                      # Only a single domain is currently supported.
+                      # Only a single domain is supported.
                     { # The domain of a chart.
                         # For example, if charting stock prices over time, this would be the date.
                       "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -19710,10 +19718,10 @@
                                 # Empty ranges are typically not meaningful and are usually rendered in the
                                 # UI as `#REF!`.
                               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                               "sheetId": 42, # The sheet this range is on.
                               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                             },
                           ],
                         },
@@ -19915,10 +19923,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
               "sortSpecs": [ # The sort order per column. Later specifications are used when values
                   # are equal in the earlier specifications.
@@ -19999,10 +20007,10 @@
                     # Empty ranges are typically not meaningful and are usually rendered in the
                     # UI as `#REF!`.
                   "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                   "sheetId": 42, # The sheet this range is on.
                   "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                  "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                 },
               ],
               "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -20013,6 +20021,30 @@
                   #
                   # When writing, only one of range or named_range_id
                   # may be set.
+              "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                  # This field is only visible to users with edit access to the protected
+                  # range and the document.
+                  # Editors are not supported with warning_only protection.
+                "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                    # range.  Domain protection is only supported on documents within a domain.
+                "users": [ # The email addresses of users with edit access to the protected range.
+                  "A String",
+                ],
+                "groups": [ # The email addresses of groups with edit access to the protected range.
+                  "A String",
+                ],
+              },
+              "protectedRangeId": 42, # The ID of the protected range.
+                  # This field is read-only.
+              "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                  # Warning-based protection means that every user can edit data in the
+                  # protected range, except editing will prompt a warning asking the user
+                  # to confirm the edit.
+                  #
+                  # When writing: if this field is true, then editors is ignored.
+                  # Additionally, if this field is changed from true to false and the
+                  # `editors` field is not set (nor included in the field mask), then
+                  # the editors will be set to all the editors in the document.
               "range": { # A range on a sheet. # The range that is being protected.
                   # The range may be fully unbounded, in which case this is considered
                   # a protected sheet.
@@ -20048,35 +20080,11 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
-              "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                  # This field is only visible to users with edit access to the protected
-                  # range and the document.
-                  # Editors are not supported with warning_only protection.
-                "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                    # range.  Domain protection is only supported on documents within a domain.
-                "users": [ # The email addresses of users with edit access to the protected range.
-                  "A String",
-                ],
-                "groups": [ # The email addresses of groups with edit access to the protected range.
-                  "A String",
-                ],
-              },
-              "protectedRangeId": 42, # The ID of the protected range.
-                  # This field is read-only.
-              "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                  # Warning-based protection means that every user can edit data in the
-                  # protected range, except editing will prompt a warning asking the user
-                  # to confirm the edit.
-                  #
-                  # When writing: if this field is true, then editors is ignored.
-                  # Additionally, if this field is changed from true to false and the
-                  # `editors` field is not set (nor included in the field mask), then
-                  # the editors will be set to all the editors in the document.
             },
           ],
           "data": [ # Data in the grid, if this is a grid sheet.
@@ -20098,16 +20106,6 @@
                 },
               ],
               "startColumn": 42, # The first column this GridData refers to, zero-based.
-              "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                  # in start_column.
-                { # Properties about a dimension.
-                  "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                  "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                  "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                      # This field is read-only.
-                },
-              ],
-              "startRow": 42, # The first row this GridData refers to, zero-based.
               "rowData": [ # The data in the grid, one entry per row,
                   # starting with the row in startRow.
                   # The values in RowData will correspond to columns starting
@@ -20131,21 +20129,21 @@
                                 "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                     # (Note that formulaValue is not valid,
                                     #  because the values will be calculated.)
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
                                         # (in the spreadsheet's locale).
                                     "type": "A String", # The type of error.
                                   },
+                                  "formulaValue": "A String", # Represents a formula.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
                                 },
                               },
                             ],
@@ -20161,21 +20159,21 @@
                                   # to the "Grand Total" over the column groups. If a single value is listed,
                                   # this would correspond to using the "Total" of that bucket.
                                 { # The kinds of value that a cell in a spreadsheet can have.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
                                         # (in the spreadsheet's locale).
                                     "type": "A String", # The type of error.
                                   },
+                                  "formulaValue": "A String", # Represents a formula.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
                                 },
                               ],
                               "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -20219,10 +20217,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                         "values": [ # A list of values to include in the pivot table.
                           { # The definition of how a value in a pivot table should be calculated.
@@ -20266,21 +20264,21 @@
                                 "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                     # (Note that formulaValue is not valid,
                                     #  because the values will be calculated.)
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
                                         # (in the spreadsheet's locale).
                                     "type": "A String", # The type of error.
                                   },
+                                  "formulaValue": "A String", # Represents a formula.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
                                 },
                               },
                             ],
@@ -20296,21 +20294,21 @@
                                   # to the "Grand Total" over the column groups. If a single value is listed,
                                   # this would correspond to using the "Total" of that bucket.
                                 { # The kinds of value that a cell in a spreadsheet can have.
-                                  "numberValue": 3.14, # Represents a double value.
-                                      # Note: Dates, Times and DateTimes are represented as doubles in
-                                      # "serial number" format.
-                                  "boolValue": True or False, # Represents a boolean value.
-                                  "formulaValue": "A String", # Represents a formula.
                                   "stringValue": "A String", # Represents a string value.
                                       # Leading single quotes are not included. For example, if the user typed
                                       # `'123` into the UI, this would be represented as a `stringValue` of
                                       # `"123"`.
+                                  "boolValue": True or False, # Represents a boolean value.
                                   "errorValue": { # An error in a cell. # Represents an error.
                                       # This field is read-only.
                                     "message": "A String", # A message with more information about the error
                                         # (in the spreadsheet's locale).
                                     "type": "A String", # The type of error.
                                   },
+                                  "formulaValue": "A String", # Represents a formula.
+                                  "numberValue": 3.14, # Represents a double value.
+                                      # Note: Dates, Times and DateTimes are represented as doubles in
+                                      # "serial number" format.
                                 },
                               ],
                               "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -20326,26 +20324,28 @@
                         ],
                       },
                       "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                          # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                          # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                          # in the userEnteredValue.formulaValue
+                          # field.)
                       "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                           # the calculated value.  For cells with literals, this will be
                           # the same as the user_entered_value.
                           # This field is read-only.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
                               # (in the spreadsheet's locale).
                           "type": "A String", # The type of error.
                         },
+                        "formulaValue": "A String", # Represents a formula.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
                       },
                       "formattedValue": "A String", # The formatted value of the cell.
                           # This is the value as it's shown to the user.
@@ -20353,21 +20353,21 @@
                       "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                           # Note: Dates, Times and DateTimes are represented as doubles in
                           # serial number format.
-                        "numberValue": 3.14, # Represents a double value.
-                            # Note: Dates, Times and DateTimes are represented as doubles in
-                            # "serial number" format.
-                        "boolValue": True or False, # Represents a boolean value.
-                        "formulaValue": "A String", # Represents a formula.
                         "stringValue": "A String", # Represents a string value.
                             # Leading single quotes are not included. For example, if the user typed
                             # `'123` into the UI, this would be represented as a `stringValue` of
                             # `"123"`.
+                        "boolValue": True or False, # Represents a boolean value.
                         "errorValue": { # An error in a cell. # Represents an error.
                             # This field is read-only.
                           "message": "A String", # A message with more information about the error
                               # (in the spreadsheet's locale).
                           "type": "A String", # The type of error.
                         },
+                        "formulaValue": "A String", # Represents a formula.
+                        "numberValue": 3.14, # Represents a double value.
+                            # Note: Dates, Times and DateTimes are represented as doubles in
+                            # "serial number" format.
                       },
                       "note": "A String", # Any note on the cell.
                       "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -20389,8 +20389,8 @@
                             # When updating padding, every field must be specified.
                           "top": 42, # The top padding of the cell.
                           "right": 42, # The right padding of the cell.
-                          "left": 42, # The left padding of the cell.
                           "bottom": 42, # The bottom padding of the cell.
+                          "left": 42, # The left padding of the cell.
                         },
                         "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -20951,7 +20951,7 @@
                                 # Deprecated; the width is determined by the "style" field.
                             "style": "A String", # The style of the border.
                           },
-                          "left": { # A border along a cell. # The left border of the cell.
+                          "bottom": { # A border along a cell. # The bottom border of the cell.
                             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                                 # for simplicity of conversion to/from color representations in various
                                 # languages over compactness; for example, the fields of this representation
@@ -21085,7 +21085,7 @@
                                 # Deprecated; the width is determined by the "style" field.
                             "style": "A String", # The style of the border.
                           },
-                          "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "left": { # A border along a cell. # The left border of the cell.
                             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                                 # for simplicity of conversion to/from color representations in various
                                 # languages over compactness; for example, the fields of this representation
@@ -21238,8 +21238,8 @@
                             # When updating padding, every field must be specified.
                           "top": 42, # The top padding of the cell.
                           "right": 42, # The right padding of the cell.
-                          "left": 42, # The left padding of the cell.
                           "bottom": 42, # The bottom padding of the cell.
+                          "left": 42, # The left padding of the cell.
                         },
                         "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -21800,7 +21800,7 @@
                                 # Deprecated; the width is determined by the "style" field.
                             "style": "A String", # The style of the border.
                           },
-                          "left": { # A border along a cell. # The left border of the cell.
+                          "bottom": { # A border along a cell. # The bottom border of the cell.
                             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                                 # for simplicity of conversion to/from color representations in various
                                 # languages over compactness; for example, the fields of this representation
@@ -21934,7 +21934,7 @@
                                 # Deprecated; the width is determined by the "style" field.
                             "style": "A String", # The style of the border.
                           },
-                          "bottom": { # A border along a cell. # The bottom border of the cell.
+                          "left": { # A border along a cell. # The left border of the cell.
                             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                                 # for simplicity of conversion to/from color representations in various
                                 # languages over compactness; for example, the fields of this representation
@@ -22261,6 +22261,16 @@
                   ],
                 },
               ],
+              "startRow": 42, # The first row this GridData refers to, zero-based.
+              "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                  # in start_column.
+                { # Properties about a dimension.
+                  "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                  "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                  "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                      # This field is read-only.
+                },
+              ],
             },
           ],
           "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -22470,10 +22480,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -22777,10 +22787,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -22834,10 +22844,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -22909,10 +22919,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -22934,7 +22944,7 @@
                 ],
                 "legendPosition": "A String", # The position of the chart legend.
                 "domains": [ # The domain of data this is charting.
-                    # Only a single domain is currently supported.
+                    # Only a single domain is supported.
                   { # The domain of a chart.
                       # For example, if charting stock prices over time, this would be the date.
                     "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -22987,10 +22997,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -23189,10 +23199,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -23241,8 +23251,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -23803,7 +23813,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -23937,7 +23947,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -24526,10 +24536,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -24578,8 +24588,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -25140,7 +25150,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -25274,7 +25284,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -26032,10 +26042,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -26074,10 +26084,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -26088,6 +26098,30 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -26123,35 +26157,11 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
           },
         },
         "deleteConditionalFormatRule": { # The result of deleting a conditional format rule. # A reply from deleting a conditional format rule.
@@ -26188,10 +26198,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -26240,8 +26250,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -26802,7 +26812,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -26936,7 +26946,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -27524,10 +27534,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -28653,10 +28663,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -28752,10 +28762,10 @@
           # Empty ranges are typically not meaningful and are usually rendered in the
           # UI as `#REF!`.
         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
         "sheetId": 42, # The sheet this range is on.
         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
       },
       "name": "A String", # The name of the named range.
     },
@@ -28771,7 +28781,6 @@
         # * a combination of the ISO language code and country code, such as `en_US`
         #
         # Note: when updating this field, not all locales/languages are supported.
-    "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
     "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
         # CellData.effectiveFormat will not be set if the
         # cell's format is equal to this default format.
@@ -28789,8 +28798,8 @@
           # When updating padding, every field must be specified.
         "top": 42, # The top padding of the cell.
         "right": 42, # The right padding of the cell.
-        "left": 42, # The left padding of the cell.
         "bottom": 42, # The bottom padding of the cell.
+        "left": 42, # The left padding of the cell.
       },
       "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -29351,7 +29360,7 @@
               # Deprecated; the width is determined by the "style" field.
           "style": "A String", # The style of the border.
         },
-        "left": { # A border along a cell. # The left border of the cell.
+        "bottom": { # A border along a cell. # The bottom border of the cell.
           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
               # for simplicity of conversion to/from color representations in various
               # languages over compactness; for example, the fields of this representation
@@ -29485,7 +29494,7 @@
               # Deprecated; the width is determined by the "style" field.
           "style": "A String", # The style of the border.
         },
-        "bottom": { # A border along a cell. # The bottom border of the cell.
+        "left": { # A border along a cell. # The left border of the cell.
           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
               # for simplicity of conversion to/from color representations in various
               # languages over compactness; for example, the fields of this representation
@@ -29622,6 +29631,7 @@
       },
       "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
     },
+    "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
     "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
         # calculation.  Absence of this field means that circular references will
         # result in calculation errors.
@@ -29671,10 +29681,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           ],
           "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -29723,8 +29733,8 @@
                   # When updating padding, every field must be specified.
                 "top": 42, # The top padding of the cell.
                 "right": 42, # The right padding of the cell.
-                "left": 42, # The left padding of the cell.
                 "bottom": 42, # The bottom padding of the cell.
+                "left": 42, # The left padding of the cell.
               },
               "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
               "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -30285,7 +30295,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "left": { # A border along a cell. # The left border of the cell.
+                "bottom": { # A border along a cell. # The bottom border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -30419,7 +30429,7 @@
                       # Deprecated; the width is determined by the "style" field.
                   "style": "A String", # The style of the border.
                 },
-                "bottom": { # A border along a cell. # The bottom border of the cell.
+                "left": { # A border along a cell. # The left border of the cell.
                   "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -31007,10 +31017,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
               # by-column basis throughout all the columns in the range. At least one of
@@ -32126,10 +32136,10 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
       ],
       "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -32163,10 +32173,10 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
         "sortSpecs": [ # The sort order per column. Later specifications are used when values
             # are equal in the earlier specifications.
@@ -32287,10 +32297,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -32344,10 +32354,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -32419,10 +32429,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -32444,7 +32454,7 @@
               ],
               "legendPosition": "A String", # The position of the chart legend.
               "domains": [ # The domain of data this is charting.
-                  # Only a single domain is currently supported.
+                  # Only a single domain is supported.
                 { # The domain of a chart.
                     # For example, if charting stock prices over time, this would be the date.
                   "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -32497,10 +32507,10 @@
                             # Empty ranges are typically not meaningful and are usually rendered in the
                             # UI as `#REF!`.
                           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           "sheetId": 42, # The sheet this range is on.
                           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -32702,10 +32712,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -32786,10 +32796,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
           ],
           "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -32800,6 +32810,30 @@
               #
               # When writing, only one of range or named_range_id
               # may be set.
+          "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+              # This field is only visible to users with edit access to the protected
+              # range and the document.
+              # Editors are not supported with warning_only protection.
+            "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                # range.  Domain protection is only supported on documents within a domain.
+            "users": [ # The email addresses of users with edit access to the protected range.
+              "A String",
+            ],
+            "groups": [ # The email addresses of groups with edit access to the protected range.
+              "A String",
+            ],
+          },
+          "protectedRangeId": 42, # The ID of the protected range.
+              # This field is read-only.
+          "warningOnly": True or False, # True if this protected range will show a warning when editing.
+              # Warning-based protection means that every user can edit data in the
+              # protected range, except editing will prompt a warning asking the user
+              # to confirm the edit.
+              #
+              # When writing: if this field is true, then editors is ignored.
+              # Additionally, if this field is changed from true to false and the
+              # `editors` field is not set (nor included in the field mask), then
+              # the editors will be set to all the editors in the document.
           "range": { # A range on a sheet. # The range that is being protected.
               # The range may be fully unbounded, in which case this is considered
               # a protected sheet.
@@ -32835,35 +32869,11 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
-          "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-              # This field is only visible to users with edit access to the protected
-              # range and the document.
-              # Editors are not supported with warning_only protection.
-            "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                # range.  Domain protection is only supported on documents within a domain.
-            "users": [ # The email addresses of users with edit access to the protected range.
-              "A String",
-            ],
-            "groups": [ # The email addresses of groups with edit access to the protected range.
-              "A String",
-            ],
-          },
-          "protectedRangeId": 42, # The ID of the protected range.
-              # This field is read-only.
-          "warningOnly": True or False, # True if this protected range will show a warning when editing.
-              # Warning-based protection means that every user can edit data in the
-              # protected range, except editing will prompt a warning asking the user
-              # to confirm the edit.
-              #
-              # When writing: if this field is true, then editors is ignored.
-              # Additionally, if this field is changed from true to false and the
-              # `editors` field is not set (nor included in the field mask), then
-              # the editors will be set to all the editors in the document.
         },
       ],
       "data": [ # Data in the grid, if this is a grid sheet.
@@ -32885,16 +32895,6 @@
             },
           ],
           "startColumn": 42, # The first column this GridData refers to, zero-based.
-          "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-              # in start_column.
-            { # Properties about a dimension.
-              "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-              "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-              "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                  # This field is read-only.
-            },
-          ],
-          "startRow": 42, # The first row this GridData refers to, zero-based.
           "rowData": [ # The data in the grid, one entry per row,
               # starting with the row in startRow.
               # The values in RowData will correspond to columns starting
@@ -32918,21 +32918,21 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           },
                         ],
@@ -32948,21 +32948,21 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           ],
                           "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -33006,10 +33006,10 @@
                         # Empty ranges are typically not meaningful and are usually rendered in the
                         # UI as `#REF!`.
                       "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       "sheetId": 42, # The sheet this range is on.
                       "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                      "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
@@ -33053,21 +33053,21 @@
                             "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                 # (Note that formulaValue is not valid,
                                 #  because the values will be calculated.)
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           },
                         ],
@@ -33083,21 +33083,21 @@
                               # to the "Grand Total" over the column groups. If a single value is listed,
                               # this would correspond to using the "Total" of that bucket.
                             { # The kinds of value that a cell in a spreadsheet can have.
-                              "numberValue": 3.14, # Represents a double value.
-                                  # Note: Dates, Times and DateTimes are represented as doubles in
-                                  # "serial number" format.
-                              "boolValue": True or False, # Represents a boolean value.
-                              "formulaValue": "A String", # Represents a formula.
                               "stringValue": "A String", # Represents a string value.
                                   # Leading single quotes are not included. For example, if the user typed
                                   # `'123` into the UI, this would be represented as a `stringValue` of
                                   # `"123"`.
+                              "boolValue": True or False, # Represents a boolean value.
                               "errorValue": { # An error in a cell. # Represents an error.
                                   # This field is read-only.
                                 "message": "A String", # A message with more information about the error
                                     # (in the spreadsheet's locale).
                                 "type": "A String", # The type of error.
                               },
+                              "formulaValue": "A String", # Represents a formula.
+                              "numberValue": 3.14, # Represents a double value.
+                                  # Note: Dates, Times and DateTimes are represented as doubles in
+                                  # "serial number" format.
                             },
                           ],
                           "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -33113,26 +33113,28 @@
                     ],
                   },
                   "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                      # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                      # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                      # in the userEnteredValue.formulaValue
+                      # field.)
                   "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                       # the calculated value.  For cells with literals, this will be
                       # the same as the user_entered_value.
                       # This field is read-only.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
                           # (in the spreadsheet's locale).
                       "type": "A String", # The type of error.
                     },
+                    "formulaValue": "A String", # Represents a formula.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
                   },
                   "formattedValue": "A String", # The formatted value of the cell.
                       # This is the value as it's shown to the user.
@@ -33140,21 +33142,21 @@
                   "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                       # Note: Dates, Times and DateTimes are represented as doubles in
                       # serial number format.
-                    "numberValue": 3.14, # Represents a double value.
-                        # Note: Dates, Times and DateTimes are represented as doubles in
-                        # "serial number" format.
-                    "boolValue": True or False, # Represents a boolean value.
-                    "formulaValue": "A String", # Represents a formula.
                     "stringValue": "A String", # Represents a string value.
                         # Leading single quotes are not included. For example, if the user typed
                         # `'123` into the UI, this would be represented as a `stringValue` of
                         # `"123"`.
+                    "boolValue": True or False, # Represents a boolean value.
                     "errorValue": { # An error in a cell. # Represents an error.
                         # This field is read-only.
                       "message": "A String", # A message with more information about the error
                           # (in the spreadsheet's locale).
                       "type": "A String", # The type of error.
                     },
+                    "formulaValue": "A String", # Represents a formula.
+                    "numberValue": 3.14, # Represents a double value.
+                        # Note: Dates, Times and DateTimes are represented as doubles in
+                        # "serial number" format.
                   },
                   "note": "A String", # Any note on the cell.
                   "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -33176,8 +33178,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "left": 42, # The left padding of the cell.
                       "bottom": 42, # The bottom padding of the cell.
+                      "left": 42, # The left padding of the cell.
                     },
                     "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -33738,7 +33740,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "left": { # A border along a cell. # The left border of the cell.
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -33872,7 +33874,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "left": { # A border along a cell. # The left border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -34025,8 +34027,8 @@
                         # When updating padding, every field must be specified.
                       "top": 42, # The top padding of the cell.
                       "right": 42, # The right padding of the cell.
-                      "left": 42, # The left padding of the cell.
                       "bottom": 42, # The bottom padding of the cell.
+                      "left": 42, # The left padding of the cell.
                     },
                     "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                     "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -34587,7 +34589,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "left": { # A border along a cell. # The left border of the cell.
+                      "bottom": { # A border along a cell. # The bottom border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -34721,7 +34723,7 @@
                             # Deprecated; the width is determined by the "style" field.
                         "style": "A String", # The style of the border.
                       },
-                      "bottom": { # A border along a cell. # The bottom border of the cell.
+                      "left": { # A border along a cell. # The left border of the cell.
                         "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -35048,6 +35050,16 @@
               ],
             },
           ],
+          "startRow": 42, # The first row this GridData refers to, zero-based.
+          "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+              # in start_column.
+            { # Properties about a dimension.
+              "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+              "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+              "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                  # This field is read-only.
+            },
+          ],
         },
       ],
       "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -35258,10 +35270,10 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
         "name": "A String", # The name of the named range.
       },
@@ -35277,7 +35289,6 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if the
           # cell's format is equal to this default format.
@@ -35295,8 +35306,8 @@
             # When updating padding, every field must be specified.
           "top": 42, # The top padding of the cell.
           "right": 42, # The right padding of the cell.
-          "left": 42, # The left padding of the cell.
           "bottom": 42, # The bottom padding of the cell.
+          "left": 42, # The left padding of the cell.
         },
         "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -35857,7 +35868,7 @@
                 # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
-          "left": { # A border along a cell. # The left border of the cell.
+          "bottom": { # A border along a cell. # The bottom border of the cell.
             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                 # for simplicity of conversion to/from color representations in various
                 # languages over compactness; for example, the fields of this representation
@@ -35991,7 +36002,7 @@
                 # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
-          "bottom": { # A border along a cell. # The bottom border of the cell.
+          "left": { # A border along a cell. # The left border of the cell.
             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                 # for simplicity of conversion to/from color representations in various
                 # languages over compactness; for example, the fields of this representation
@@ -36128,6 +36139,7 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
+      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
           # calculation.  Absence of this field means that circular references will
           # result in calculation errors.
@@ -36177,10 +36189,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -36229,8 +36241,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -36791,7 +36803,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -36925,7 +36937,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -37513,10 +37525,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -38632,10 +38644,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         ],
         "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -38669,10 +38681,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -38793,10 +38805,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -38850,10 +38862,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -38925,10 +38937,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -38950,7 +38962,7 @@
                 ],
                 "legendPosition": "A String", # The position of the chart legend.
                 "domains": [ # The domain of data this is charting.
-                    # Only a single domain is currently supported.
+                    # Only a single domain is supported.
                   { # The domain of a chart.
                       # For example, if charting stock prices over time, this would be the date.
                     "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -39003,10 +39015,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -39208,10 +39220,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -39292,10 +39304,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -39306,6 +39318,30 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -39341,35 +39377,11 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
@@ -39391,16 +39403,6 @@
               },
             ],
             "startColumn": 42, # The first column this GridData refers to, zero-based.
-            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                # in start_column.
-              { # Properties about a dimension.
-                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                    # This field is read-only.
-              },
-            ],
-            "startRow": 42, # The first row this GridData refers to, zero-based.
             "rowData": [ # The data in the grid, one entry per row,
                 # starting with the row in startRow.
                 # The values in RowData will correspond to columns starting
@@ -39424,21 +39426,21 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             },
                           ],
@@ -39454,21 +39456,21 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             ],
                             "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -39512,10 +39514,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                       "values": [ # A list of values to include in the pivot table.
                         { # The definition of how a value in a pivot table should be calculated.
@@ -39559,21 +39561,21 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             },
                           ],
@@ -39589,21 +39591,21 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             ],
                             "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -39619,26 +39621,28 @@
                       ],
                     },
                     "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                        # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                        # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                        # in the userEnteredValue.formulaValue
+                        # field.)
                     "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                         # the calculated value.  For cells with literals, this will be
                         # the same as the user_entered_value.
                         # This field is read-only.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
                             # (in the spreadsheet's locale).
                         "type": "A String", # The type of error.
                       },
+                      "formulaValue": "A String", # Represents a formula.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
                     },
                     "formattedValue": "A String", # The formatted value of the cell.
                         # This is the value as it's shown to the user.
@@ -39646,21 +39650,21 @@
                     "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                         # Note: Dates, Times and DateTimes are represented as doubles in
                         # serial number format.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
                             # (in the spreadsheet's locale).
                         "type": "A String", # The type of error.
                       },
+                      "formulaValue": "A String", # Represents a formula.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
                     },
                     "note": "A String", # Any note on the cell.
                     "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -39682,8 +39686,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "left": 42, # The left padding of the cell.
                         "bottom": 42, # The bottom padding of the cell.
+                        "left": 42, # The left padding of the cell.
                       },
                       "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -40244,7 +40248,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "left": { # A border along a cell. # The left border of the cell.
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -40378,7 +40382,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "left": { # A border along a cell. # The left border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -40531,8 +40535,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "left": 42, # The left padding of the cell.
                         "bottom": 42, # The bottom padding of the cell.
+                        "left": 42, # The left padding of the cell.
                       },
                       "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -41093,7 +41097,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "left": { # A border along a cell. # The left border of the cell.
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -41227,7 +41231,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "left": { # A border along a cell. # The left border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -41554,6 +41558,16 @@
                 ],
               },
             ],
+            "startRow": 42, # The first row this GridData refers to, zero-based.
+            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                # in start_column.
+              { # Properties about a dimension.
+                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                    # This field is read-only.
+              },
+            ],
           },
         ],
         "properties": { # Properties of a sheet. # The properties of the sheet.
@@ -41794,10 +41808,10 @@
             # Empty ranges are typically not meaningful and are usually rendered in the
             # UI as `#REF!`.
           "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           "sheetId": 42, # The sheet this range is on.
           "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+          "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
         },
         "name": "A String", # The name of the named range.
       },
@@ -41813,7 +41827,6 @@
           # * a combination of the ISO language code and country code, such as `en_US`
           #
           # Note: when updating this field, not all locales/languages are supported.
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet.
           # CellData.effectiveFormat will not be set if the
           # cell's format is equal to this default format.
@@ -41831,8 +41844,8 @@
             # When updating padding, every field must be specified.
           "top": 42, # The top padding of the cell.
           "right": 42, # The right padding of the cell.
-          "left": 42, # The left padding of the cell.
           "bottom": 42, # The bottom padding of the cell.
+          "left": 42, # The left padding of the cell.
         },
         "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
         "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -42393,7 +42406,7 @@
                 # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
-          "left": { # A border along a cell. # The left border of the cell.
+          "bottom": { # A border along a cell. # The bottom border of the cell.
             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                 # for simplicity of conversion to/from color representations in various
                 # languages over compactness; for example, the fields of this representation
@@ -42527,7 +42540,7 @@
                 # Deprecated; the width is determined by the "style" field.
             "style": "A String", # The style of the border.
           },
-          "bottom": { # A border along a cell. # The bottom border of the cell.
+          "left": { # A border along a cell. # The left border of the cell.
             "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                 # for simplicity of conversion to/from color representations in various
                 # languages over compactness; for example, the fields of this representation
@@ -42664,6 +42677,7 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
+      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative
           # calculation.  Absence of this field means that circular references will
           # result in calculation errors.
@@ -42713,10 +42727,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule.
@@ -42765,8 +42779,8 @@
                     # When updating padding, every field must be specified.
                   "top": 42, # The top padding of the cell.
                   "right": 42, # The right padding of the cell.
-                  "left": 42, # The left padding of the cell.
                   "bottom": 42, # The bottom padding of the cell.
+                  "left": 42, # The left padding of the cell.
                 },
                 "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                 "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -43327,7 +43341,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "left": { # A border along a cell. # The left border of the cell.
+                  "bottom": { # A border along a cell. # The bottom border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -43461,7 +43475,7 @@
                         # Deprecated; the width is determined by the "style" field.
                     "style": "A String", # The style of the border.
                   },
-                  "bottom": { # A border along a cell. # The bottom border of the cell.
+                  "left": { # A border along a cell. # The left border of the cell.
                     "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -44049,10 +44063,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column-
                 # by-column basis throughout all the columns in the range. At least one of
@@ -45168,10 +45182,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
         ],
         "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -45205,10 +45219,10 @@
               # Empty ranges are typically not meaningful and are usually rendered in the
               # UI as `#REF!`.
             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             "sheetId": 42, # The sheet this range is on.
             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
           },
           "sortSpecs": [ # The sort order per column. Later specifications are used when values
               # are equal in the earlier specifications.
@@ -45329,10 +45343,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -45386,10 +45400,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -45461,10 +45475,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -45486,7 +45500,7 @@
                 ],
                 "legendPosition": "A String", # The position of the chart legend.
                 "domains": [ # The domain of data this is charting.
-                    # Only a single domain is currently supported.
+                    # Only a single domain is supported.
                   { # The domain of a chart.
                       # For example, if charting stock prices over time, this would be the date.
                     "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time,
@@ -45539,10 +45553,10 @@
                               # Empty ranges are typically not meaningful and are usually rendered in the
                               # UI as `#REF!`.
                             "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             "sheetId": 42, # The sheet this range is on.
                             "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                            "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -45744,10 +45758,10 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
             "sortSpecs": [ # The sort order per column. Later specifications are used when values
                 # are equal in the earlier specifications.
@@ -45828,10 +45842,10 @@
                   # Empty ranges are typically not meaningful and are usually rendered in the
                   # UI as `#REF!`.
                 "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 "sheetId": 42, # The sheet this range is on.
                 "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -45842,6 +45856,30 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -45877,35 +45915,11 @@
                 # Empty ranges are typically not meaningful and are usually rendered in the
                 # UI as `#REF!`.
               "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               "sheetId": 42, # The sheet this range is on.
               "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+              "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
             },
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
@@ -45927,16 +45941,6 @@
               },
             ],
             "startColumn": 42, # The first column this GridData refers to, zero-based.
-            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
-                # in start_column.
-              { # Properties about a dimension.
-                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
-                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
-                "hiddenByFilter": True or False, # True if this dimension is being filtered.
-                    # This field is read-only.
-              },
-            ],
-            "startRow": 42, # The first row this GridData refers to, zero-based.
             "rowData": [ # The data in the grid, one entry per row,
                 # starting with the row in startRow.
                 # The values in RowData will correspond to columns starting
@@ -45960,21 +45964,21 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             },
                           ],
@@ -45990,21 +45994,21 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             ],
                             "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -46048,10 +46052,10 @@
                           # Empty ranges are typically not meaningful and are usually rendered in the
                           # UI as `#REF!`.
                         "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded.
-                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         "sheetId": 42, # The sheet this range is on.
                         "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
-                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+                        "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded.
                       },
                       "values": [ # A list of values to include in the pivot table.
                         { # The definition of how a value in a pivot table should be calculated.
@@ -46095,21 +46099,21 @@
                               "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to.
                                   # (Note that formulaValue is not valid,
                                   #  because the values will be calculated.)
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             },
                           ],
@@ -46125,21 +46129,21 @@
                                 # to the "Grand Total" over the column groups. If a single value is listed,
                                 # this would correspond to using the "Total" of that bucket.
                               { # The kinds of value that a cell in a spreadsheet can have.
-                                "numberValue": 3.14, # Represents a double value.
-                                    # Note: Dates, Times and DateTimes are represented as doubles in
-                                    # "serial number" format.
-                                "boolValue": True or False, # Represents a boolean value.
-                                "formulaValue": "A String", # Represents a formula.
                                 "stringValue": "A String", # Represents a string value.
                                     # Leading single quotes are not included. For example, if the user typed
                                     # `'123` into the UI, this would be represented as a `stringValue` of
                                     # `"123"`.
+                                "boolValue": True or False, # Represents a boolean value.
                                 "errorValue": { # An error in a cell. # Represents an error.
                                     # This field is read-only.
                                   "message": "A String", # A message with more information about the error
                                       # (in the spreadsheet's locale).
                                   "type": "A String", # The type of error.
                                 },
+                                "formulaValue": "A String", # Represents a formula.
+                                "numberValue": 3.14, # Represents a double value.
+                                    # Note: Dates, Times and DateTimes are represented as doubles in
+                                    # "serial number" format.
                               },
                             ],
                             "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this
@@ -46155,26 +46159,28 @@
                       ],
                     },
                     "hyperlink": "A String", # A hyperlink this cell points to, if any.
-                        # This field is read-only.  (To set it, use a `=HYPERLINK` formula.)
+                        # This field is read-only.  (To set it, use a `=HYPERLINK` formula
+                        # in the userEnteredValue.formulaValue
+                        # field.)
                     "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be
                         # the calculated value.  For cells with literals, this will be
                         # the same as the user_entered_value.
                         # This field is read-only.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
                             # (in the spreadsheet's locale).
                         "type": "A String", # The type of error.
                       },
+                      "formulaValue": "A String", # Represents a formula.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
                     },
                     "formattedValue": "A String", # The formatted value of the cell.
                         # This is the value as it's shown to the user.
@@ -46182,21 +46188,21 @@
                     "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()`
                         # Note: Dates, Times and DateTimes are represented as doubles in
                         # serial number format.
-                      "numberValue": 3.14, # Represents a double value.
-                          # Note: Dates, Times and DateTimes are represented as doubles in
-                          # "serial number" format.
-                      "boolValue": True or False, # Represents a boolean value.
-                      "formulaValue": "A String", # Represents a formula.
                       "stringValue": "A String", # Represents a string value.
                           # Leading single quotes are not included. For example, if the user typed
                           # `'123` into the UI, this would be represented as a `stringValue` of
                           # `"123"`.
+                      "boolValue": True or False, # Represents a boolean value.
                       "errorValue": { # An error in a cell. # Represents an error.
                           # This field is read-only.
                         "message": "A String", # A message with more information about the error
                             # (in the spreadsheet's locale).
                         "type": "A String", # The type of error.
                       },
+                      "formulaValue": "A String", # Represents a formula.
+                      "numberValue": 3.14, # Represents a double value.
+                          # Note: Dates, Times and DateTimes are represented as doubles in
+                          # "serial number" format.
                     },
                     "note": "A String", # Any note on the cell.
                     "effectiveFormat": { # The format of a cell. # The effective format being used by the cell.
@@ -46218,8 +46224,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "left": 42, # The left padding of the cell.
                         "bottom": 42, # The bottom padding of the cell.
+                        "left": 42, # The left padding of the cell.
                       },
                       "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -46780,7 +46786,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "left": { # A border along a cell. # The left border of the cell.
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -46914,7 +46920,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "left": { # A border along a cell. # The left border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -47067,8 +47073,8 @@
                           # When updating padding, every field must be specified.
                         "top": 42, # The top padding of the cell.
                         "right": 42, # The right padding of the cell.
-                        "left": 42, # The left padding of the cell.
                         "bottom": 42, # The bottom padding of the cell.
+                        "left": 42, # The left padding of the cell.
                       },
                       "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
                       "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell.
@@ -47629,7 +47635,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "left": { # A border along a cell. # The left border of the cell.
+                        "bottom": { # A border along a cell. # The bottom border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -47763,7 +47769,7 @@
                               # Deprecated; the width is determined by the "style" field.
                           "style": "A String", # The style of the border.
                         },
-                        "bottom": { # A border along a cell. # The bottom border of the cell.
+                        "left": { # A border along a cell. # The left border of the cell.
                           "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border.
                               # for simplicity of conversion to/from color representations in various
                               # languages over compactness; for example, the fields of this representation
@@ -48090,6 +48096,16 @@
                 ],
               },
             ],
+            "startRow": 42, # The first row this GridData refers to, zero-based.
+            "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column
+                # in start_column.
+              { # Properties about a dimension.
+                "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels.
+                "hiddenByUser": True or False, # True if this dimension is explicitly hidden.
+                "hiddenByFilter": True or False, # True if this dimension is being filtered.
+                    # This field is read-only.
+              },
+            ],
           },
         ],
         "properties": { # Properties of a sheet. # The properties of the sheet.
diff --git a/docs/dyn/sheets_v4.spreadsheets.values.html b/docs/dyn/sheets_v4.spreadsheets.values.html
index 7cb7002..01f8e62 100644
--- a/docs/dyn/sheets_v4.spreadsheets.values.html
+++ b/docs/dyn/sheets_v4.spreadsheets.values.html
@@ -180,8 +180,8 @@
         # (before the values were appended).
         # Empty if no table was found.
     "updates": { # The response when updating a range of values in a spreadsheet. # Information about the updates that were applied.
-      "updatedColumns": 42, # The number of columns where at least one cell in the column was updated.
       "updatedRange": "A String", # The range (in A1 notation) that updates were applied to.
+      "updatedColumns": 42, # The number of columns where at least one cell in the column was updated.
       "updatedRows": 42, # The number of rows where at least one cell in the row was updated.
       "updatedData": { # Data within a range of the spreadsheet. # The values of the cells after updates were applied.
           # This is only included if the request's `includeValuesInResponse` field
@@ -251,7 +251,7 @@
 Returns:
   An object of the form:
 
-    { # The response when updating a range of values in a spreadsheet.
+    { # The response when clearing a range of values in a spreadsheet.
     "spreadsheetId": "A String", # The spreadsheet the updates were applied to.
     "clearedRanges": [ # The ranges that were cleared, in A1 notation.
         # (If the requests were for an unbounded range or a ranger larger
@@ -383,6 +383,13 @@
             # When writing, if this field is not set, it defaults to ROWS.
       },
     ],
+    "responseDateTimeRenderOption": "A String", # Determines how dates, times, and durations in the response should be
+        # rendered. This is ignored if response_value_render_option is
+        # FORMATTED_VALUE.
+        # The default dateTime render option is
+        # DateTimeRenderOption.SERIAL_NUMBER.
+    "responseValueRenderOption": "A String", # Determines how values in the response should be rendered.
+        # The default render option is ValueRenderOption.FORMATTED_VALUE.
     "includeValuesInResponse": True or False, # Determines if the update response should include the values
         # of the cells that were updated. By default, responses
         # do not include the updated values. The `updatedData` field within
@@ -390,12 +397,6 @@
         # the updated values. If the range to write was larger than than the range
         # actually written, the response will include all values in the requested
         # range (excluding trailing empty rows and columns).
-    "responseValueRenderOption": "A String", # Determines how values in the response should be rendered.
-        # The default render option is ValueRenderOption.FORMATTED_VALUE.
-    "responseDateTimeRenderOption": "A String", # Determines how dates, times, and durations in the response should be
-        # rendered. This is ignored if response_value_render_option is
-        # FORMATTED_VALUE.
-        # The default dateTime render option is [DateTimeRenderOption.SERIAL_NUMBER].
   }
 
   x__xgafv: string, V1 error format.
@@ -410,8 +411,8 @@
     "responses": [ # One UpdateValuesResponse per requested range, in the same order as
         # the requests appeared.
       { # The response when updating a range of values in a spreadsheet.
-        "updatedColumns": 42, # The number of columns where at least one cell in the column was updated.
         "updatedRange": "A String", # The range (in A1 notation) that updates were applied to.
+        "updatedColumns": 42, # The number of columns where at least one cell in the column was updated.
         "updatedRows": 42, # The number of rows where at least one cell in the row was updated.
         "updatedData": { # Data within a range of the spreadsheet. # The values of the cells after updates were applied.
             # This is only included if the request's `includeValuesInResponse` field
@@ -456,8 +457,8 @@
     "totalUpdatedColumns": 42, # The total number of columns where at least one cell in the column was
         # updated.
     "totalUpdatedCells": 42, # The total number of cells updated.
-    "totalUpdatedRows": 42, # The total number of rows where at least one cell in the row was updated.
     "spreadsheetId": "A String", # The spreadsheet the updates were applied to.
+    "totalUpdatedRows": 42, # The total number of rows where at least one cell in the row was updated.
     "totalUpdatedSheets": 42, # The total number of sheets where at least one cell in the sheet was
         # updated.
   }</pre>
@@ -630,8 +631,8 @@
   An object of the form:
 
     { # The response when updating a range of values in a spreadsheet.
-    "updatedColumns": 42, # The number of columns where at least one cell in the column was updated.
     "updatedRange": "A String", # The range (in A1 notation) that updates were applied to.
+    "updatedColumns": 42, # The number of columns where at least one cell in the column was updated.
     "updatedRows": 42, # The number of rows where at least one cell in the row was updated.
     "updatedData": { # Data within a range of the spreadsheet. # The values of the cells after updates were applied.
         # This is only included if the request's `includeValuesInResponse` field
diff --git a/docs/dyn/slides_v1.presentations.html b/docs/dyn/slides_v1.presentations.html
index 9bd4d5e..5f9bb60 100644
--- a/docs/dyn/slides_v1.presentations.html
+++ b/docs/dyn/slides_v1.presentations.html
@@ -156,6 +156,7 @@
               #
               # - `True`: insert below the cell.
               # - `False`: insert above the cell.
+          "tableObjectId": "A String", # The table to insert rows into.
           "number": 42, # The number of rows to be inserted. Maximum 20 per request.
           "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which rows will be inserted.
               #
@@ -165,7 +166,6 @@
             "rowIndex": 42, # The 0-based row index.
             "columnIndex": 42, # The 0-based column index.
           },
-          "tableObjectId": "A String", # The table to insert rows into.
         },
         "createVideo": { # Creates a video. # Creates a video.
           "source": "A String", # The video source.
@@ -322,10 +322,10 @@
             },
             "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -356,17 +356,17 @@
               "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                   # the right of the original bounding rectangle left edge, relative to the
                   # object's original width.
-              "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                  # below the original bounding rectangle top edge, relative to the object's
-                  # original height.
-              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                  # above the original bounding rectangle bottom edge, relative to the object's
-                  # original height.
               "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                   # Rotation angle is applied after the offset.
               "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                   # to the left of the original bounding rectangle right edge, relative to the
                   # object's original width.
+              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                  # above the original bounding rectangle bottom edge, relative to the object's
+                  # original height.
+              "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                  # below the original bounding rectangle top edge, relative to the object's
+                  # original height.
             },
             "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                 # is read-only.
@@ -485,10 +485,8 @@
             #
             # NOTE: Replacing shapes with a chart requires at least one of the
             # spreadsheets.readonly, spreadsheets, drive.readonly, or drive OAuth scopes.
-          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the chart.
           "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet.
-          "linkingMode": "A String", # The mode with which the chart is linked to the source spreadsheet. When
-              # not specified, the chart will be an image that is not linked.
+          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the chart.
           "containsText": { # A criteria that matches a specific string of text in a shape or table. # The criteria that the shapes must match in order to be replaced. The
               # request will replace all of the shapes that contain the given text.
             "text": "A String", # The text to search for in the shape or table.
@@ -497,6 +495,16 @@
                 # - `True`: the search is case sensitive.
                 # - `False`: the search is case insensitive.
           },
+          "pageObjectIds": [ # If non-empty, limits the matches to page elements only on the given pages.
+              #
+              # Returns a 400 bad request error if given the page object ID of a
+              # notes page or a
+              # notes master, or if a
+              # page with that object ID doesn't exist in the presentation.
+            "A String",
+          ],
+          "linkingMode": "A String", # The mode with which the chart is linked to the source spreadsheet. When
+              # not specified, the chart will be an image that is not linked.
         },
         "createImage": { # Creates an image. # Creates an image.
           "url": "A String", # The image URL.
@@ -624,176 +632,80 @@
             #
             # The nesting level of each paragraph will be visually preserved by adding
             # indent to the start of the corresponding paragraph.
-          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to delete bullets from, based on TextElement indexes.
-              # text.
-            "endIndex": 42, # The optional zero-based index of the end of the collection.
-                # Required for `SPECIFIC_RANGE` delete mode.
-            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
-                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
-            "type": "A String", # The type of range.
-          },
-          "objectId": "A String", # The object ID of the shape or table containing the text to delete bullets
-              # from.
           "cellLocation": { # A location of a single table cell within a table. # The optional table cell location if the text to be modified is in a table
               # cell. If present, the object_id must refer to a table.
             "rowIndex": 42, # The 0-based row index.
             "columnIndex": 42, # The 0-based column index.
           },
+          "objectId": "A String", # The object ID of the shape or table containing the text to delete bullets
+              # from.
+          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to delete bullets from, based on TextElement indexes.
+              # text.
+            "endIndex": 42, # The optional zero-based index of the end of the collection.
+                # Required for `FIXED_RANGE` ranges.
+            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
+                # Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
+            "type": "A String", # The type of range.
+          },
         },
-        "updateTextStyle": { # Update the styling of text in a Shape or # Updates the styling of text within a Shape or Table.
-            # Table.
+        "updateLineProperties": { # Updates the properties of a Line. # Updates the properties of a Line.
           "fields": "A String", # The fields that should be updated.
               #
-              # At least one field must be specified. The root `style` is implied and
-              # should not be specified. A single `"*"` can be used as short-hand for
-              # listing every field.
+              # At least one field must be specified. The root `lineProperties` is
+              # implied and should not be specified. A single `"*"` can be used as
+              # short-hand for listing every field.
               #
-              # For example, to update the text style to bold, set `fields` to `"bold"`.
+              # For example to update the line solid fill color, set `fields` to
+              # `"lineFill.solidFill.color"`.
               #
               # To reset a property to its default value, include its field name in the
               # field mask but leave the field itself unset.
-          "style": { # Represents the styling that can be applied to a TextRun. # The style(s) to set on the text.
+          "lineProperties": { # The properties of the Line. # The line properties to update.
               #
-              # If the value for a particular style matches that of the parent, that style
-              # will be set to inherit.
-              #
-              # Certain text style changes may cause other changes meant to mirror the
-              # behavior of the Slides editor. See the documentation of
-              # TextStyle for more information.
-              #
-              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-              # inherited from the parent. Which text styles are inherited depend on the
-              # nesting level of lists:
-              #
-              # * A text run in a paragraph that is not in a list will inherit its text style
-              #   from the the newline character in the paragraph at the 0 nesting level of
-              #   the list inside the parent placeholder.
-              # * A text run in a paragraph that is in a list will inherit its text style
-              #   from the newline character in the paragraph at its corresponding nesting
-              #   level of the list inside the parent placeholder.
-              #
-              # Inherited text styles are represented as unset fields in this message. If
-              # text is contained in a shape without a parent placeholder, unsetting these
-              # fields will revert the style to a value matching the defaults in the Slides
-              # editor.
-            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                # transparent, depending on if the `opaque_color` field in it is set.
-              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                  # a transparent color.
-                "themeColor": "A String", # An opaque theme color.
-                "rgbColor": { # An RGB color. # An opaque RGB color.
-                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                },
-              },
-            },
-            "bold": True or False, # Whether or not the text is rendered as bold.
-            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                #
-                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                # rendered in a smaller font size, computed based on the `font_size` field.
-                # The `font_size` itself is not affected by changes in this field.
-            "strikethrough": True or False, # Whether or not the text is struck through.
-            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                # read-only.
-                #
-                # This field is an extension of `font_family` meant to support explicit font
-                # weights without breaking backwards compatibility. As such, when reading the
-                # style of a range of text, the value of `weighted_font_family.font_family`
-                # will always be equal to that of `font_family`.
-              "fontFamily": "A String", # The font family of the text.
-                  #
-                  # The font family can be any font from the Font menu in Slides or from
-                  # [Google Fonts] (https://fonts.google.com/). If the font name is
-                  # unrecognized, the text is rendered in `Arial`.
-              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                  # only the numerical values described in the "Cascading Style Sheets Level
-                  # 2 Revision 1 (CSS 2.1) Specification",
-                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                  # non-numerical values in the specification are disallowed. Weights greater
-                  # than or equal to 700 are considered bold, and weights less than 700 are
-                  # not bold. The default value is `400` ("normal").
-            },
-            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-            "fontFamily": "A String", # The font family of the text.
-                #
-                # The font family can be any font from the Font menu in Slides or from
-                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                # unrecognized, the text is rendered in `Arial`.
-                #
-                # Some fonts can affect the weight of the text. If an update request
-                # specifies values for both `font_family` and `bold`, the explicitly-set
-                # `bold` value is used.
-            "italic": True or False, # Whether or not the text is italicized.
-            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                # are not inherited from parent text.
-                #
-                # Changing the link in an update request causes some other changes to the
-                # text style of the range:
-                #
-                # * When setting a link, the text foreground color will be set to
-                #   ThemeColorType.HYPERLINK and the text will
-                #   be underlined. If these fields are modified in the same
-                #   request, those values will be used instead of the link defaults.
-                # * Setting a link on a text range that overlaps with an existing link will
-                #   also update the existing link to point to the new URL.
-                # * Links are not settable on newline characters. As a result, setting a link
-                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                #   will separate the newline character(s) into their own text runs. The
-                #   link will be applied separately to the runs before and after the newline.
-                # * Removing a link will update the text style of the range to match the
-                #   style of the preceding text (or the default text styles if the preceding
-                #   text is another link) unless different styles are being set in the same
-                #   request.
-              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
-              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                  # in the presentation. There may not be a slide at this index.
-              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                  # addressed by its position.
-            },
-            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                # transparent, depending on if the `opaque_color` field in it is set.
-              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                  # a transparent color.
-                "themeColor": "A String", # An opaque theme color.
-                "rgbColor": { # An RGB color. # An opaque RGB color.
-                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                },
-              },
-            },
-            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                # points.
+              # When unset, these fields default to values that match the appearance of
+              # new lines created in the Slides editor.
+            "dashStyle": "A String", # The dash style of the line.
+            "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
               "magnitude": 3.14, # The magnitude.
               "unit": "A String", # The units for magnitude.
             },
-            "underline": True or False, # Whether or not the text is underlined.
+            "endArrow": "A String", # The style of the arrow at the end of the line.
+            "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                  # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
+              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                  # addressed by its position.
+            },
+            "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                # lines created in the Slides editor.
+              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                  # specified color value.
+                  #
+                  # If any field is unset, its value may be inherited from a parent placeholder
+                  # if it exists.
+                "color": { # A themeable solid color value. # The color value of the solid fill.
+                  "themeColor": "A String", # An opaque theme color.
+                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                },
+                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                    # That is, the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color.
+              },
+            },
+            "startArrow": "A String", # The style of the arrow at the beginning of the line.
           },
-          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to style.
-              #
-              # The range may be extended to include adjacent newlines.
-              #
-              # If the range fully contains a paragraph belonging to a list, the
-              # paragraph's bullet is also updated with the matching text style.
-              # text.
-            "endIndex": 42, # The optional zero-based index of the end of the collection.
-                # Required for `SPECIFIC_RANGE` delete mode.
-            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
-                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
-            "type": "A String", # The type of range.
-          },
-          "objectId": "A String", # The object ID of the shape or table with the text to be styled.
-          "cellLocation": { # A location of a single table cell within a table. # The location of the cell in the table containing the text to style. If
-              # `object_id` refers to a table, `cell_location` must have a value.
-              # Otherwise, it must not.
-            "rowIndex": 42, # The 0-based row index.
-            "columnIndex": 42, # The 0-based column index.
-          },
+          "objectId": "A String", # The object ID of the line the update is applied to.
         },
         "deleteText": { # Deletes text from a shape or a table cell. # Deletes text from a shape or a table cell.
           "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to delete, based on TextElement indexes.
@@ -812,9 +724,9 @@
               # include both code units.
               # text.
             "endIndex": 42, # The optional zero-based index of the end of the collection.
-                # Required for `SPECIFIC_RANGE` delete mode.
+                # Required for `FIXED_RANGE` ranges.
             "startIndex": 42, # The optional zero-based index of the beginning of the collection.
-                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
+                # Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
             "type": "A String", # The type of range.
           },
           "objectId": "A String", # The object ID of the shape or table from which the text will be deleted.
@@ -916,77 +828,207 @@
               # field mask but leave the field itself unset.
           "objectId": "A String", # The object ID of the page the update is applied to.
         },
-        "updateLineProperties": { # Updates the properties of a Line. # Updates the properties of a Line.
+        "updateTextStyle": { # Update the styling of text in a Shape or # Updates the styling of text within a Shape or Table.
+            # Table.
           "fields": "A String", # The fields that should be updated.
               #
-              # At least one field must be specified. The root `lineProperties` is
-              # implied and should not be specified. A single `"*"` can be used as
-              # short-hand for listing every field.
+              # At least one field must be specified. The root `style` is implied and
+              # should not be specified. A single `"*"` can be used as short-hand for
+              # listing every field.
               #
-              # For example to update the line solid fill color, set `fields` to
-              # `"lineFill.solidFill.color"`.
+              # For example, to update the text style to bold, set `fields` to `"bold"`.
               #
               # To reset a property to its default value, include its field name in the
               # field mask but leave the field itself unset.
-          "lineProperties": { # The properties of the Line. # The line properties to update.
+          "style": { # Represents the styling that can be applied to a TextRun. # The style(s) to set on the text.
               #
-              # When unset, these fields default to values that match the appearance of
-              # new lines created in the Slides editor.
-            "dashStyle": "A String", # The dash style of the line.
-            "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
-              "magnitude": 3.14, # The magnitude.
-              "unit": "A String", # The units for magnitude.
+              # If the value for a particular style matches that of the parent, that style
+              # will be set to inherit.
+              #
+              # Certain text style changes may cause other changes meant to mirror the
+              # behavior of the Slides editor. See the documentation of
+              # TextStyle for more information.
+              #
+              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+              # inherited from the parent. Which text styles are inherited depend on the
+              # nesting level of lists:
+              #
+              # * A text run in a paragraph that is not in a list will inherit its text style
+              #   from the the newline character in the paragraph at the 0 nesting level of
+              #   the list inside the parent placeholder.
+              # * A text run in a paragraph that is in a list will inherit its text style
+              #   from the newline character in the paragraph at its corresponding nesting
+              #   level of the list inside the parent placeholder.
+              #
+              # Inherited text styles are represented as unset fields in this message. If
+              # text is contained in a shape without a parent placeholder, unsetting these
+              # fields will revert the style to a value matching the defaults in the Slides
+              # editor.
+            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                # transparent, depending on if the `opaque_color` field in it is set.
+              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                  # a transparent color.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+              },
             },
-            "endArrow": "A String", # The style of the arrow at the end of the line.
-            "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+            "bold": True or False, # Whether or not the text is rendered as bold.
+            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                #
+                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                # rendered in a smaller font size, computed based on the `font_size` field.
+                # The `font_size` itself is not affected by changes in this field.
+            "strikethrough": True or False, # Whether or not the text is struck through.
+            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                #
+                # This field is an extension of `font_family` meant to support explicit font
+                # weights without breaking backwards compatibility. As such, when reading the
+                # style of a range of text, the value of `weighted_font_family#font_family`
+                # will always be equal to that of `font_family`. However, when writing, if
+                # both fields are included in the field mask (either explicitly or through
+                # the wildcard `"*"`), their values are reconciled as follows:
+                #
+                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                #   `font_family` is applied with weight `400` ("normal").
+                # * If both fields are set, the value of `font_family` must match that of
+                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                #   returned.
+                # * If `weighted_font_family` is set and `font_family` is not, the font
+                #   family and weight of `weighted_font_family` is applied.
+                # * If neither field is set, the font family and weight of the text inherit
+                #   from the parent. Note that these properties cannot inherit separately
+                #   from each other.
+                #
+                # If an update request specifies values for both `weighted_font_family` and
+                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                #
+                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                #
+                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                # is returned.
+              "fontFamily": "A String", # The font family of the text.
+                  #
+                  # The font family can be any font from the Font menu in Slides or from
+                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                  # unrecognized, the text is rendered in `Arial`.
+              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                  # multiple of `100` between `100` and `900`, inclusive. This range
+                  # corresponds to the numerical values described in the CSS 2.1
+                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                  # with non-numerical values disallowed. Weights greater than or equal to
+                  # `700` are considered bold, and weights less than `700`are not bold. The
+                  # default value is `400` ("normal").
+            },
+            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+            "fontFamily": "A String", # The font family of the text.
+                #
+                # The font family can be any font from the Font menu in Slides or from
+                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                # unrecognized, the text is rendered in `Arial`.
+                #
+                # Some fonts can affect the weight of the text. If an update request
+                # specifies values for both `font_family` and `bold`, the explicitly-set
+                # `bold` value is used.
+            "italic": True or False, # Whether or not the text is italicized.
+            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                # are not inherited from parent text.
+                #
+                # Changing the link in an update request causes some other changes to the
+                # text style of the range:
+                #
+                # * When setting a link, the text foreground color will be set to
+                #   ThemeColorType.HYPERLINK and the text will
+                #   be underlined. If these fields are modified in the same
+                #   request, those values will be used instead of the link defaults.
+                # * Setting a link on a text range that overlaps with an existing link will
+                #   also update the existing link to point to the new URL.
+                # * Links are not settable on newline characters. As a result, setting a link
+                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                #   will separate the newline character(s) into their own text runs. The
+                #   link will be applied separately to the runs before and after the newline.
+                # * Removing a link will update the text style of the range to match the
+                #   style of the preceding text (or the default text styles if the preceding
+                #   text is another link) unless different styles are being set in the same
+                #   request.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
-            "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
-                # lines created in the Slides editor.
-              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                  # specified color value.
-                  #
-                  # If any field is unset, its value may be inherited from a parent placeholder
-                  # if it exists.
-                "color": { # A themeable solid color value. # The color value of the solid fill.
-                  "themeColor": "A String", # An opaque theme color.
-                  "rgbColor": { # An RGB color. # An opaque RGB color.
-                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                  },
+            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                # transparent, depending on if the `opaque_color` field in it is set.
+              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                  # a transparent color.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
                 },
-                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                    # That is, the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color.
               },
             },
-            "startArrow": "A String", # The style of the arrow at the beginning of the line.
+            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                # points.
+              "magnitude": 3.14, # The magnitude.
+              "unit": "A String", # The units for magnitude.
+            },
+            "underline": True or False, # Whether or not the text is underlined.
           },
-          "objectId": "A String", # The object ID of the line the update is applied to.
+          "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to style.
+              #
+              # The range may be extended to include adjacent newlines.
+              #
+              # If the range fully contains a paragraph belonging to a list, the
+              # paragraph's bullet is also updated with the matching text style.
+              # text.
+            "endIndex": 42, # The optional zero-based index of the end of the collection.
+                # Required for `FIXED_RANGE` ranges.
+            "startIndex": 42, # The optional zero-based index of the beginning of the collection.
+                # Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
+            "type": "A String", # The type of range.
+          },
+          "objectId": "A String", # The object ID of the shape or table with the text to be styled.
+          "cellLocation": { # A location of a single table cell within a table. # The location of the cell in the table containing the text to style. If
+              # `object_id` refers to a table, `cell_location` must have a value.
+              # Otherwise, it must not.
+            "rowIndex": 42, # The 0-based row index.
+            "columnIndex": 42, # The 0-based column index.
+          },
         },
         "updateTableCellProperties": { # Update the properties of a TableCell. # Updates the properties of a TableCell.
-          "fields": "A String", # The fields that should be updated.
+          "tableRange": { # A table range represents a reference to a subset of a table. # The table range representing the subset of the table to which the updates
+              # are applied. If a table range is not specified, the updates will apply to
+              # the entire table.
               #
-              # At least one field must be specified. The root `tableCellProperties` is
-              # implied and should not be specified. A single `"*"` can be used as
-              # short-hand for listing every field.
+              # It's important to note that the cells specified by a table range do not
+              # necessarily form a rectangle. For example, let's say we have a 3 x 3 table
+              # where all the cells of the last row are merged together. The table looks
+              # like this:
               #
-              # For example to update the table cell background solid fill color, set
-              # `fields` to `"tableCellBackgroundFill.solidFill.color"`.
               #
-              # To reset a property to its default value, include its field name in the
-              # field mask but leave the field itself unset.
+              #   [             ]
+              #
+              # A table range with location = (0, 0), row span = 3 and column span = 2
+              # specifies the following cells:
+              #
+              #    x     x
+              #   [      x      ]
+            "rowSpan": 42, # The row span of the table range.
+            "columnSpan": 42, # The column span of the table range.
+            "location": { # A location of a single table cell within a table. # The starting location of the table range.
+              "rowIndex": 42, # The 0-based row index.
+              "columnIndex": 42, # The 0-based column index.
+            },
+          },
           "tableCellProperties": { # The properties of the TableCell. # The table cell properties to update.
             "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
                 # for newly created table cells in the Slides editor.
@@ -1020,38 +1062,19 @@
             },
           },
           "objectId": "A String", # The object ID of the table.
-          "tableRange": { # A table range represents a reference to a subset of a table. # The table range representing the subset of the table to which the updates
-              # are applied. If a table range is not specified, the updates will apply to
-              # the entire table.
+          "fields": "A String", # The fields that should be updated.
               #
-              # It's important to note that the cells specified by a table range do not
-              # necessarily form a rectangle. For example, let's say we have a 3 x 3 table
-              # where all the cells of the last row are merged together. The table looks
-              # like this:
+              # At least one field must be specified. The root `tableCellProperties` is
+              # implied and should not be specified. A single `"*"` can be used as
+              # short-hand for listing every field.
               #
+              # For example to update the table cell background solid fill color, set
+              # `fields` to `"tableCellBackgroundFill.solidFill.color"`.
               #
-              #   [             ]
-              #
-              # A table range with location = (0, 0), row span = 3 and column span = 2
-              # specifies the following cells:
-              #
-              #    x     x
-              #   [      x      ]
-            "rowSpan": 42, # The row span of the table range.
-            "columnSpan": 42, # The column span of the table range.
-            "location": { # A location of a single table cell within a table. # The starting location of the table range.
-              "rowIndex": 42, # The 0-based row index.
-              "columnIndex": 42, # The 0-based column index.
-            },
-          },
+              # To reset a property to its default value, include its field name in the
+              # field mask but leave the field itself unset.
         },
         "replaceAllShapesWithImage": { # Replaces all shapes that match the given criteria with the provided image. # Replaces all shapes matching some criteria with an image.
-          "imageUrl": "A String", # The image URL.
-              #
-              # The image is fetched once at insertion time and a copy is stored for
-              # display inside the presentation. Images must be less than 50MB in size,
-              # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
-              # format.
           "containsText": { # A criteria that matches a specific string of text in a shape or table. # If set, this request will replace all of the shapes that contain the
               # given text.
             "text": "A String", # The text to search for in the shape or table.
@@ -1060,6 +1083,20 @@
                 # - `True`: the search is case sensitive.
                 # - `False`: the search is case insensitive.
           },
+          "pageObjectIds": [ # If non-empty, limits the matches to page elements only on the given pages.
+              #
+              # Returns a 400 bad request error if given the page object ID of a
+              # notes page or a
+              # notes master, or if a
+              # page with that object ID doesn't exist in the presentation.
+            "A String",
+          ],
+          "imageUrl": "A String", # The image URL.
+              #
+              # The image is fetched once at insertion time and a copy is stored for
+              # display inside the presentation. Images must be less than 50MB in size,
+              # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+              # format.
           "replaceMethod": "A String", # The replace method.
         },
         "updateSlidesPosition": { # Updates the position of slides in the presentation. # Updates the position of a set of slides in the presentation.
@@ -1127,8 +1164,8 @@
               # Inherited paragraph styles are represented as unset fields in this message.
             "spacingMode": "A String", # The spacing mode for the paragraph.
             "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                # LEFT_TO_RIGHT
-                # since text direction is not inherited.
+                # LEFT_TO_RIGHT since
+                # text direction is not inherited.
             "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                 # inherited from the parent.
               "magnitude": 3.14, # The magnitude.
@@ -1163,9 +1200,9 @@
           "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text containing the paragraph(s) to style.
               # text.
             "endIndex": 42, # The optional zero-based index of the end of the collection.
-                # Required for `SPECIFIC_RANGE` delete mode.
+                # Required for `FIXED_RANGE` ranges.
             "startIndex": 42, # The optional zero-based index of the beginning of the collection.
-                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
+                # Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
             "type": "A String", # The type of range.
           },
           "objectId": "A String", # The object ID of the shape or table with the text to be styled.
@@ -1191,14 +1228,21 @@
                 # - `True`: the search is case sensitive.
                 # - `False`: the search is case insensitive.
           },
+          "pageObjectIds": [ # If non-empty, limits the matches to page elements only on the given pages.
+              #
+              # Returns a 400 bad request error if given the page object ID of a
+              # notes master,
+              # or if a page with that object ID doesn't exist in the presentation.
+            "A String",
+          ],
           "replaceText": "A String", # The text that will replace the matched text.
         },
         "createSheetsChart": { # Creates an embedded Google Sheets chart. # Creates an embedded Google Sheets chart.
             #
             # NOTE: Chart creation requires at least one of the spreadsheets.readonly,
             # spreadsheets, drive.readonly, or drive OAuth scopes.
-          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the chart.
           "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet.
+          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the chart.
           "linkingMode": "A String", # The mode with which the chart is linked to the source spreadsheet. When
               # not specified, the chart will be an image that is not linked.
           "elementProperties": { # Common properties for a page element. # The element properties for the chart.
@@ -1254,6 +1298,36 @@
               # If empty, a unique identifier will be generated.
         },
         "createSlide": { # Creates a new slide. # Creates a new slide.
+          "placeholderIdMappings": [ # An optional list of object ID mappings from the placeholder(s) on the layout to the placeholder(s)
+              # that will be created on the new slide from that specified layout. Can only
+              # be used when `slide_layout_reference` is specified.
+            { # The user-specified ID mapping for a placeholder that will be created on a
+                # slide from a specified layout.
+              "layoutPlaceholder": { # The placeholder information that uniquely identifies a placeholder shape. # The placeholder on a layout that will be applied to a slide. Only type and index are needed. For example, a
+                  # predefined `TITLE_AND_BODY` layout may usually have a TITLE placeholder
+                  # with index 0 and a BODY placeholder with index 0.
+                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                    # If unset, the parent placeholder shape does not exist, so the shape does
+                    # not inherit properties from any other shape.
+                "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                    # the same page, they would have different index values.
+                "type": "A String", # The type of the placeholder.
+              },
+              "objectId": "A String", # A user-supplied object ID for the placeholder identified above that to be
+                  # created onto a slide.
+                  #
+                  # If you specify an ID, it must be unique among all pages and page elements
+                  # in the presentation. The ID must start with an alphanumeric character or an
+                  # underscore (matches regex `[a-zA-Z0-9_]`); remaining characters
+                  # may include those as well as a hyphen or colon (matches regex
+                  # `[a-zA-Z0-9_-:]`).
+                  # The length of the ID must not be less than 5 or greater than 50.
+                  #
+                  # If you don't specify an ID, a unique one is generated.
+              "layoutPlaceholderObjectId": "A String", # The object ID of the placeholder on a layout that will be applied
+                  # to a slide.
+            },
+          ],
           "slideLayoutReference": { # Slide layout reference. This may reference either: # Layout reference of the slide to be inserted, based on the *current
               # master*, which is one of the following:
               #
@@ -1272,36 +1346,6 @@
             "predefinedLayout": "A String", # Predefined layout.
             "layoutId": "A String", # Layout ID: the object ID of one of the layouts in the presentation.
           },
-          "placeholderIdMappings": [ # An optional list of object ID mappings from the placeholder(s) on the layout to the placeholder(s)
-              # that will be created on the new slide from that specified layout. Can only
-              # be used when `slide_layout_reference` is specified.
-            { # The user-specified ID mapping for a placeholder that will be created on a
-                # slide from a specified layout.
-              "layoutPlaceholder": { # The placeholder information that uniquely identifies a placeholder shape. # The placeholder on a layout that will be applied to a slide. Only type and index are needed. For example, a
-                  # predefined `TITLE_AND_BODY` layout may usually have a TITLE placeholder
-                  # with index 0 and a BODY placeholder with index 0.
-                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
-                    # If unset, the parent placeholder shape does not exist, so the shape does
-                    # not inherit properties from any other shape.
-                "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                    # in the same page, they would have different index values.
-                "type": "A String", # The type of the placeholder.
-              },
-              "layoutPlaceholderObjectId": "A String", # The object ID of the placeholder on a layout that will be applied
-                  # to a slide.
-              "objectId": "A String", # A user-supplied object ID for the placeholder identified above that to be
-                  # created onto a slide.
-                  #
-                  # If you specify an ID, it must be unique among all pages and page elements
-                  # in the presentation. The ID must start with an alphanumeric character or an
-                  # underscore (matches regex `[a-zA-Z0-9_]`); remaining characters
-                  # may include those as well as a hyphen or colon (matches regex
-                  # `[a-zA-Z0-9_-:]`).
-                  # The length of the ID must not be less than 5 or greater than 50.
-                  #
-                  # If you don't specify an ID, a unique one is generated.
-            },
-          ],
           "objectId": "A String", # A user-supplied object ID.
               #
               # If you specify an ID, it must be unique among all pages and page elements
@@ -1437,10 +1481,10 @@
             "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                 # are not inherited from parent placeholders.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -1543,30 +1587,23 @@
               # The length of the ID must not be less than 5 or greater than 50.
               # If empty, a unique identifier will be generated.
         },
-        "updatePageElementTransform": { # Updates the transform of a page element. # Updates the transform of a page element.
-          "applyMode": "A String", # The apply mode of the transform update.
-          "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The input transform matrix used to update the page element.
-              # to transform source coordinates (x,y) into destination coordinates (x', y')
-              # according to:
+        "insertTableColumns": { # Inserts columns into a table. # Inserts columns into a table.
+            #
+            # Other columns in the table will be resized to fit the new column.
+          "number": 42, # The number of columns to be inserted. Maximum 20 per request.
+          "insertRight": True or False, # Whether to insert new columns to the right of the reference cell location.
               #
-              #       x'  x  =   shear_y  scale_y  translate_y
-              #       1  [ 1 ]
+              # - `True`: insert to the right.
+              # - `False`: insert to the left.
+          "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which columns will be inserted.
               #
-              # After transformation,
-              #
-              #      x' = scale_x * x + shear_x * y + translate_x;
-              #      y' = scale_y * y + shear_y * x + translate_y;
-              #
-              # This message is therefore composed of these six matrix elements.
-            "translateX": 3.14, # The X coordinate translation element.
-            "translateY": 3.14, # The Y coordinate translation element.
-            "scaleX": 3.14, # The X coordinate scaling element.
-            "scaleY": 3.14, # The Y coordinate scaling element.
-            "shearY": 3.14, # The Y coordinate shearing element.
-            "shearX": 3.14, # The X coordinate shearing element.
-            "unit": "A String", # The units for translate elements.
+              # A new column will be inserted to the left (or right) of the column where
+              # the reference cell is. If the reference cell is a merged cell, a new
+              # column will be inserted to the left (or right) of the merged cell.
+            "rowIndex": 42, # The 0-based row index.
+            "columnIndex": 42, # The 0-based column index.
           },
-          "objectId": "A String", # The object ID of the page element to update.
+          "tableObjectId": "A String", # The table to insert columns into.
         },
         "createParagraphBullets": { # Creates bullets for all of the paragraphs that overlap with the given # Creates bullets for paragraphs.
             # text index range.
@@ -1584,9 +1621,9 @@
           "textRange": { # Specifies a contiguous range of an indexed collection, such as characters in # The range of text to apply the bullet presets to, based on TextElement indexes.
               # text.
             "endIndex": 42, # The optional zero-based index of the end of the collection.
-                # Required for `SPECIFIC_RANGE` delete mode.
+                # Required for `FIXED_RANGE` ranges.
             "startIndex": 42, # The optional zero-based index of the beginning of the collection.
-                # Required for `SPECIFIC_RANGE` and `FROM_START_INDEX` ranges.
+                # Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
             "type": "A String", # The type of range.
           },
           "objectId": "A String", # The object ID of the shape or table containing the text to add bullets to.
@@ -1666,28 +1703,34 @@
           },
           "tableObjectId": "A String", # The table to delete columns from.
         },
-        "insertTableColumns": { # Inserts columns into a table. # Inserts columns into a table.
-            #
-            # Other columns in the table will be resized to fit the new column.
-          "number": 42, # The number of columns to be inserted. Maximum 20 per request.
-          "insertRight": True or False, # Whether to insert new columns to the right of the reference cell location.
+        "updatePageElementTransform": { # Updates the transform of a page element. # Updates the transform of a page element.
+          "applyMode": "A String", # The apply mode of the transform update.
+          "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The input transform matrix used to update the page element.
+              # to transform source coordinates (x,y) into destination coordinates (x', y')
+              # according to:
               #
-              # - `True`: insert to the right.
-              # - `False`: insert to the left.
-          "cellLocation": { # A location of a single table cell within a table. # The reference table cell location from which columns will be inserted.
+              #       x'  x  =   shear_y  scale_y  translate_y
+              #       1  [ 1 ]
               #
-              # A new column will be inserted to the left (or right) of the column where
-              # the reference cell is. If the reference cell is a merged cell, a new
-              # column will be inserted to the left (or right) of the merged cell.
-            "rowIndex": 42, # The 0-based row index.
-            "columnIndex": 42, # The 0-based column index.
+              # After transformation,
+              #
+              #      x' = scale_x * x + shear_x * y + translate_x;
+              #      y' = scale_y * y + shear_y * x + translate_y;
+              #
+              # This message is therefore composed of these six matrix elements.
+            "translateX": 3.14, # The X coordinate translation element.
+            "translateY": 3.14, # The Y coordinate translation element.
+            "scaleX": 3.14, # The X coordinate scaling element.
+            "scaleY": 3.14, # The Y coordinate scaling element.
+            "shearY": 3.14, # The Y coordinate shearing element.
+            "shearX": 3.14, # The X coordinate shearing element.
+            "unit": "A String", # The units for translate elements.
           },
-          "tableObjectId": "A String", # The table to insert columns into.
+          "objectId": "A String", # The object ID of the page element to update.
         },
       },
     ],
-    "writeControl": { # Provides control over how write requests are executed. # Provides control over how write requests are executed, such as
-        # conditionally updating the presentation.
+    "writeControl": { # Provides control over how write requests are executed. # Provides control over how write requests are executed.
       "requiredRevisionId": "A String", # The revision ID of the presentation required for the write request. If
           # specified and the `required_revision_id` doesn't exactly match the
           # presentation's current `revision_id`, the request will not be processed and
@@ -1760,2057 +1803,6 @@
 
 { # A Google Slides presentation.
     "presentationId": "A String", # The ID of the presentation.
-    "masters": [ # The slide masters in the presentation. A slide master contains all common
-        # page elements and the common properties for a set of layouts. They serve
-        # three purposes:
-        # 
-        # - Placeholder shapes on a master contain the default text styles and shape
-        #   properties of all placeholder shapes on pages that use that master.
-        # - The master page properties define the common page properties inherited by
-        #   its layouts.
-        # - Any other shapes on the master slide will appear on all slides using that
-        #   master, regardless of their layout.
-      { # A page in a presentation.
-        "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
-            # relevant for pages with page_type LAYOUT.
-          "displayName": "A String", # The human readable name of the layout in the presentation's locale.
-          "name": "A String", # The name of the layout.
-          "masterObjectId": "A String", # The object ID of the master that this layout is based on.
-        },
-        "pageElements": [ # The page elements rendered on the page.
-          { # A visual element rendered on a page.
-            "wordArt": { # A PageElement kind representing # A word art page element.
-                # word art.
-              "renderedText": "A String", # The text rendered as word art.
-            },
-            "description": "A String", # The description of the page element. Combined with title to display alt
-                # text.
-            "objectId": "A String", # The object ID for this page element. Object IDs used by
-                # google.apps.slides.v1.Page and
-                # google.apps.slides.v1.PageElement share the same namespace.
-            "title": "A String", # The title of the page element. Combined with description to display alt
-                # text.
-            "image": { # A PageElement kind representing an # An image page element.
-                # image.
-              "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
-                  # This URL is tagged with the account of the requester. Anyone with the URL
-                  # effectively accesses the image as the original requester. Access to the
-                  # image may be lost if the presentation's sharing settings change.
-              "imageProperties": { # The properties of the Image. # The properties of the image.
-                "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
-                    #
-                    # If these fields are unset, they may be inherited from a parent placeholder
-                    # if it exists. If there is no parent, the fields will default to the value
-                    # used for new page elements created in the Slides editor, which may depend on
-                    # the page element kind.
-                  "outlineFill": { # The fill of the outline. # The fill of the outline.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                  },
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-                "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
-                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
-                    # This property is read-only.
-                  "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                      # stops.
-                      #
-                      # The colors in the gradient will replace the corresponding colors at
-                      # the same position in the color palette and apply to the image. This
-                      # property is read-only.
-                    { # A color and position in a gradient band.
-                      "color": { # A themeable solid color value. # The color of the gradient stop.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
-                          # fully opaque.
-                      "position": 3.14, # The relative position of the color stop in the gradient band measured
-                          # in percentage. The value should be in the interval [0.0, 1.0].
-                    },
-                  ],
-                  "name": "A String", # The name of the recolor effect.
-                      #
-                      # The name is determined from the `recolor_stops` by matching the gradient
-                      # against the colors in the page's current color scheme. This property is
-                      # read-only.
-                },
-                "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
-                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
-                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                      # in the presentation. There may not be a slide at this index.
-                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                      # addressed by its position.
-                },
-                "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
-                    # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
-                    # This property is read-only.
-                "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
-                    # This property is read-only.
-                    # Image.
-                    #
-                    # The crop properties is represented by the offsets of four edges which define
-                    # a crop rectangle. The offsets are measured in percentage from the
-                    # corresponding edges of the object's original bounding rectangle towards
-                    # inside, relative to the object's original dimensions.
-                    #
-                    # - If the offset is in the interval (0, 1), the corresponding edge of crop
-                    # rectangle is positioned inside of the object's original bounding rectangle.
-                    # - If the offset is negative or greater than 1, the corresponding edge of crop
-                    # rectangle is positioned outside of the object's original bounding rectangle.
-                    # - If the left edge of the crop rectangle is on the right side of its right
-                    # edge, the object will be flipped horizontally.
-                    # - If the top edge of the crop rectangle is below its bottom edge, the object
-                    # will be flipped vertically.
-                    # - If all offsets and rotation angle is 0, the object is not cropped.
-                    #
-                    # After cropping, the content in the crop rectangle will be stretched to fit
-                    # its container.
-                  "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
-                      # the right of the original bounding rectangle left edge, relative to the
-                      # object's original width.
-                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                      # below the original bounding rectangle top edge, relative to the object's
-                      # original height.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
-                  "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                      # Rotation angle is applied after the offset.
-                  "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
-                      # to the left of the original bounding rectangle right edge, relative to the
-                      # object's original width.
-                },
-                "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
-                    # is read-only.
-                    #
-                    # If these fields are unset, they may be inherited from a parent placeholder
-                    # if it exists. If there is no parent, the fields will default to the value
-                    # used for new page elements created in the Slides editor, which may depend on
-                    # the page element kind.
-                  "color": { # A themeable solid color value. # The shadow color value.
-                    "themeColor": "A String", # An opaque theme color.
-                    "rgbColor": { # An RGB color. # An opaque RGB color.
-                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                    },
-                  },
-                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                      # relative to the alignment position.
-                      # to transform source coordinates (x,y) into destination coordinates (x', y')
-                      # according to:
-                      #
-                      #       x'  x  =   shear_y  scale_y  translate_y
-                      #       1  [ 1 ]
-                      #
-                      # After transformation,
-                      #
-                      #      x' = scale_x * x + shear_x * y + translate_x;
-                      #      y' = scale_y * y + shear_y * x + translate_y;
-                      #
-                      # This message is therefore composed of these six matrix elements.
-                    "translateX": 3.14, # The X coordinate translation element.
-                    "translateY": 3.14, # The Y coordinate translation element.
-                    "scaleX": 3.14, # The X coordinate scaling element.
-                    "scaleY": 3.14, # The Y coordinate scaling element.
-                    "shearY": 3.14, # The Y coordinate shearing element.
-                    "shearX": 3.14, # The X coordinate shearing element.
-                    "unit": "A String", # The units for translate elements.
-                  },
-                  "propertyState": "A String", # The shadow property state.
-                      #
-                      # Updating the the shadow on a page element will implicitly update this field
-                      # to `RENDERED`, unless another value is specified in the same request. To
-                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                      # case, any other shadow fields set in the same request will be ignored.
-                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                      # shadow becomes.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                  "type": "A String", # The type of the shadow.
-                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                      # scale and skew of the shadow.
-                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                },
-                "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
-                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-              },
-            },
-            "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
-                # to transform source coordinates (x,y) into destination coordinates (x', y')
-                # according to:
-                #
-                #       x'  x  =   shear_y  scale_y  translate_y
-                #       1  [ 1 ]
-                #
-                # After transformation,
-                #
-                #      x' = scale_x * x + shear_x * y + translate_x;
-                #      y' = scale_y * y + shear_y * x + translate_y;
-                #
-                # This message is therefore composed of these six matrix elements.
-              "translateX": 3.14, # The X coordinate translation element.
-              "translateY": 3.14, # The Y coordinate translation element.
-              "scaleX": 3.14, # The X coordinate scaling element.
-              "scaleY": 3.14, # The Y coordinate scaling element.
-              "shearY": 3.14, # The Y coordinate shearing element.
-              "shearX": 3.14, # The X coordinate shearing element.
-              "unit": "A String", # The units for translate elements.
-            },
-            "shape": { # A PageElement kind representing a # A generic shape.
-                # generic shape that does not have a more specific classification.
-              "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
-                  # text box or rectangle) or a table cell in a page.
-                "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                      # associated with a list. A paragraph that is part of a list has an implicit
-                      # reference to that list's ID.
-                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                        # level. A list has at most nine levels of nesting, so the possible values
-                        # for the keys of this map are 0 through 8, inclusive.
-                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                          # level of nesting.
-                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is rendered as bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                        },
-                      },
-                    },
-                    "listId": "A String", # The ID of the list.
-                  },
-                },
-                "textElements": [ # The text contents broken down into its component parts, including styling
-                    # information. This property is read-only.
-                  { # A TextElement describes the content of a range of indices in the text content
-                      # of a Shape or TableCell.
-                    "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
-                        # replaced with content that can change over time.
-                      "content": "A String", # The rendered content of this auto text, if available.
-                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
-                          #
-                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                          # inherited from the parent. Which text styles are inherited depend on the
-                          # nesting level of lists:
-                          #
-                          # * A text run in a paragraph that is not in a list will inherit its text style
-                          #   from the the newline character in the paragraph at the 0 nesting level of
-                          #   the list inside the parent placeholder.
-                          # * A text run in a paragraph that is in a list will inherit its text style
-                          #   from the newline character in the paragraph at its corresponding nesting
-                          #   level of the list inside the parent placeholder.
-                          #
-                          # Inherited text styles are represented as unset fields in this message. If
-                          # text is contained in a shape without a parent placeholder, unsetting these
-                          # fields will revert the style to a value matching the defaults in the Slides
-                          # editor.
-                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                            # transparent, depending on if the `opaque_color` field in it is set.
-                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                              # a transparent color.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                        },
-                        "bold": True or False, # Whether or not the text is rendered as bold.
-                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                            #
-                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                            # rendered in a smaller font size, computed based on the `font_size` field.
-                            # The `font_size` itself is not affected by changes in this field.
-                        "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
-                            #
-                            # This field is an extension of `font_family` meant to support explicit font
-                            # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
-                        },
-                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                        "fontFamily": "A String", # The font family of the text.
-                            #
-                            # The font family can be any font from the Font menu in Slides or from
-                            # [Google Fonts] (https://fonts.google.com/). If the font name is
-                            # unrecognized, the text is rendered in `Arial`.
-                            #
-                            # Some fonts can affect the weight of the text. If an update request
-                            # specifies values for both `font_family` and `bold`, the explicitly-set
-                            # `bold` value is used.
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                            # are not inherited from parent text.
-                            #
-                            # Changing the link in an update request causes some other changes to the
-                            # text style of the range:
-                            #
-                            # * When setting a link, the text foreground color will be set to
-                            #   ThemeColorType.HYPERLINK and the text will
-                            #   be underlined. If these fields are modified in the same
-                            #   request, those values will be used instead of the link defaults.
-                            # * Setting a link on a text range that overlaps with an existing link will
-                            #   also update the existing link to point to the new URL.
-                            # * Links are not settable on newline characters. As a result, setting a link
-                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                            #   will separate the newline character(s) into their own text runs. The
-                            #   link will be applied separately to the runs before and after the newline.
-                            # * Removing a link will update the text style of the range to match the
-                            #   style of the preceding text (or the default text styles if the preceding
-                            #   text is another link) unless different styles are being set in the same
-                            #   request.
-                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
-                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                              # in the presentation. There may not be a slide at this index.
-                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                              # addressed by its position.
-                        },
-                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                            # transparent, depending on if the `opaque_color` field in it is set.
-                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                              # a transparent color.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                        },
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "underline": True or False, # Whether or not the text is underlined.
-                      },
-                      "type": "A String", # The type of this auto text.
-                    },
-                    "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
-                        # units.
-                    "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
-                    "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
-                        #
-                        # The `start_index` and `end_index` of this TextElement represent the
-                        # range of the paragraph. Other TextElements with an index range contained
-                        # inside this paragraph's range are considered to be part of this
-                        # paragraph. The range of indices of two separate paragraphs will never
-                        # overlap.
-                      "style": { # Styles that apply to a whole paragraph. # The paragraph's style
-                          #
-                          # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
-                          # inherited from the parent. Which paragraph styles are inherited depend on the
-                          # nesting level of lists:
-                          #
-                          # * A paragraph not in a list will inherit its paragraph style from the
-                          #   paragraph at the 0 nesting level of the list inside the parent placeholder.
-                          # * A paragraph in a list will inherit its paragraph style from the paragraph
-                          #   at its corresponding nesting level of the list inside the parent
-                          #   placeholder.
-                          #
-                          # Inherited paragraph styles are represented as unset fields in this message.
-                        "spacingMode": "A String", # The spacing mode for the paragraph.
-                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                            # LEFT_TO_RIGHT
-                            # since text direction is not inherited.
-                        "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
-                            # is represented as 100.0. If unset, the value is inherited from the parent.
-                        "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                            # the start of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                            # inherited from the parent.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                            # the end of the text, based on the current text direction. If unset, the
-                            # value is inherited from the parent.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                            # If unset, the value is inherited from the parent.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "alignment": "A String", # The text alignment for this paragraph.
-                      },
-                      "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
-                          # belong to a list.
-                        "nestingLevel": 42, # The nesting level of this paragraph in the list.
-                        "listId": "A String", # The ID of the list this paragraph belongs to.
-                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is rendered as bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                        },
-                        "glyph": "A String", # The rendered bullet glyph for this paragraph.
-                      },
-                    },
-                    "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
-                        # in the run have the same TextStyle.
-                        #
-                        # The `start_index` and `end_index` of TextRuns will always be fully
-                        # contained in the index range of a single `paragraph_marker` TextElement.
-                        # In other words, a TextRun will never span multiple paragraphs.
-                        # styling.
-                      "content": "A String", # The text of this run.
-                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
-                          #
-                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                          # inherited from the parent. Which text styles are inherited depend on the
-                          # nesting level of lists:
-                          #
-                          # * A text run in a paragraph that is not in a list will inherit its text style
-                          #   from the the newline character in the paragraph at the 0 nesting level of
-                          #   the list inside the parent placeholder.
-                          # * A text run in a paragraph that is in a list will inherit its text style
-                          #   from the newline character in the paragraph at its corresponding nesting
-                          #   level of the list inside the parent placeholder.
-                          #
-                          # Inherited text styles are represented as unset fields in this message. If
-                          # text is contained in a shape without a parent placeholder, unsetting these
-                          # fields will revert the style to a value matching the defaults in the Slides
-                          # editor.
-                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                            # transparent, depending on if the `opaque_color` field in it is set.
-                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                              # a transparent color.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                        },
-                        "bold": True or False, # Whether or not the text is rendered as bold.
-                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                            #
-                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                            # rendered in a smaller font size, computed based on the `font_size` field.
-                            # The `font_size` itself is not affected by changes in this field.
-                        "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
-                            #
-                            # This field is an extension of `font_family` meant to support explicit font
-                            # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
-                        },
-                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                        "fontFamily": "A String", # The font family of the text.
-                            #
-                            # The font family can be any font from the Font menu in Slides or from
-                            # [Google Fonts] (https://fonts.google.com/). If the font name is
-                            # unrecognized, the text is rendered in `Arial`.
-                            #
-                            # Some fonts can affect the weight of the text. If an update request
-                            # specifies values for both `font_family` and `bold`, the explicitly-set
-                            # `bold` value is used.
-                        "italic": True or False, # Whether or not the text is italicized.
-                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                            # are not inherited from parent text.
-                            #
-                            # Changing the link in an update request causes some other changes to the
-                            # text style of the range:
-                            #
-                            # * When setting a link, the text foreground color will be set to
-                            #   ThemeColorType.HYPERLINK and the text will
-                            #   be underlined. If these fields are modified in the same
-                            #   request, those values will be used instead of the link defaults.
-                            # * Setting a link on a text range that overlaps with an existing link will
-                            #   also update the existing link to point to the new URL.
-                            # * Links are not settable on newline characters. As a result, setting a link
-                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                            #   will separate the newline character(s) into their own text runs. The
-                            #   link will be applied separately to the runs before and after the newline.
-                            # * Removing a link will update the text style of the range to match the
-                            #   style of the preceding text (or the default text styles if the preceding
-                            #   text is another link) unless different styles are being set in the same
-                            #   request.
-                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
-                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                              # in the presentation. There may not be a slide at this index.
-                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                              # addressed by its position.
-                        },
-                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                            # transparent, depending on if the `opaque_color` field in it is set.
-                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                              # a transparent color.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                        },
-                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                            # points.
-                          "magnitude": 3.14, # The magnitude.
-                          "unit": "A String", # The units for magnitude.
-                        },
-                        "underline": True or False, # Whether or not the text is underlined.
-                      },
-                    },
-                  },
-                ],
-              },
-              "shapeProperties": { # The properties of a Shape. # The properties of the shape.
-                  #
-                  # If the shape is a placeholder shape as determined by the
-                  # placeholder field, then these
-                  # properties may be inherited from a parent placeholder shape.
-                  # Determining the rendered value of the property depends on the corresponding
-                  # property_state field value.
-                "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
-                    # a parent placeholder if it exists. If the shape has no parent, then the
-                    # default shadow matches the defaults for new shapes created in the Slides
-                    # editor. This property is read-only.
-                    #
-                    # If these fields are unset, they may be inherited from a parent placeholder
-                    # if it exists. If there is no parent, the fields will default to the value
-                    # used for new page elements created in the Slides editor, which may depend on
-                    # the page element kind.
-                  "color": { # A themeable solid color value. # The shadow color value.
-                    "themeColor": "A String", # An opaque theme color.
-                    "rgbColor": { # An RGB color. # An opaque RGB color.
-                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                    },
-                  },
-                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                      # relative to the alignment position.
-                      # to transform source coordinates (x,y) into destination coordinates (x', y')
-                      # according to:
-                      #
-                      #       x'  x  =   shear_y  scale_y  translate_y
-                      #       1  [ 1 ]
-                      #
-                      # After transformation,
-                      #
-                      #      x' = scale_x * x + shear_x * y + translate_x;
-                      #      y' = scale_y * y + shear_y * x + translate_y;
-                      #
-                      # This message is therefore composed of these six matrix elements.
-                    "translateX": 3.14, # The X coordinate translation element.
-                    "translateY": 3.14, # The Y coordinate translation element.
-                    "scaleX": 3.14, # The X coordinate scaling element.
-                    "scaleY": 3.14, # The Y coordinate scaling element.
-                    "shearY": 3.14, # The Y coordinate shearing element.
-                    "shearX": 3.14, # The X coordinate shearing element.
-                    "unit": "A String", # The units for translate elements.
-                  },
-                  "propertyState": "A String", # The shadow property state.
-                      #
-                      # Updating the the shadow on a page element will implicitly update this field
-                      # to `RENDERED`, unless another value is specified in the same request. To
-                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                      # case, any other shadow fields set in the same request will be ignored.
-                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                      # shadow becomes.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                  "type": "A String", # The type of the shadow.
-                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                      # scale and skew of the shadow.
-                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                },
-                "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
-                    # inherited from a parent placeholder if it exists. If the shape has no
-                    # parent, then the default background fill depends on the shape type,
-                    # matching the defaults for new shapes created in the Slides editor.
-                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                      # specified color value.
-                      #
-                      # If any field is unset, its value may be inherited from a parent placeholder
-                      # if it exists.
-                    "color": { # A themeable solid color value. # The color value of the solid fill.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                        # That is, the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color.
-                  },
-                  "propertyState": "A String", # The background fill property state.
-                      #
-                      # Updating the the fill on a shape will implicitly update this field to
-                      # `RENDERED`, unless another value is specified in the same request. To
-                      # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
-                      # any other fill fields set in the same request will be ignored.
-                },
-                "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
-                    # are not inherited from parent placeholders.
-                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
-                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                      # in the presentation. There may not be a slide at this index.
-                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                      # addressed by its position.
-                },
-                "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
-                    # parent placeholder if it exists. If the shape has no parent, then the
-                    # default outline depends on the shape type, matching the defaults for
-                    # new shapes created in the Slides editor.
-                    #
-                    # If these fields are unset, they may be inherited from a parent placeholder
-                    # if it exists. If there is no parent, the fields will default to the value
-                    # used for new page elements created in the Slides editor, which may depend on
-                    # the page element kind.
-                  "outlineFill": { # The fill of the outline. # The fill of the outline.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                  },
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-              },
-              "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
-                  # layouts and masters.
-                  #
-                  # If set, the shape is a placeholder shape and any inherited properties
-                  # can be resolved by looking at the parent placeholder identified by the
-                  # Placeholder.parent_object_id field.
-                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
-                    # If unset, the parent placeholder shape does not exist, so the shape does
-                    # not inherit properties from any other shape.
-                "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                    # in the same page, they would have different index values.
-                "type": "A String", # The type of the placeholder.
-              },
-              "shapeType": "A String", # The type of the shape.
-            },
-            "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
-                # represented as images.
-                # a linked chart embedded from Google Sheets.
-              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                  # embedded.
-              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                  # minutes. This URL is tagged with the account of the requester. Anyone with
-                  # the URL effectively accesses the image as the original requester. Access to
-                  # the image may be lost if the presentation's sharing settings change.
-              "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
-                "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
-                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
-                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
-                      # This property is read-only.
-                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops.
-                        #
-                        # The colors in the gradient will replace the corresponding colors at
-                        # the same position in the color palette and apply to the image. This
-                        # property is read-only.
-                      { # A color and position in a gradient band.
-                        "color": { # A themeable solid color value. # The color of the gradient stop.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
-                            # fully opaque.
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
-                      },
-                    ],
-                    "name": "A String", # The name of the recolor effect.
-                        #
-                        # The name is determined from the `recolor_stops` by matching the gradient
-                        # against the colors in the page's current color scheme. This property is
-                        # read-only.
-                  },
-                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
-                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
-                      # This property is read-only.
-                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
-                      # This property is read-only.
-                      # Image.
-                      #
-                      # The crop properties is represented by the offsets of four edges which define
-                      # a crop rectangle. The offsets are measured in percentage from the
-                      # corresponding edges of the object's original bounding rectangle towards
-                      # inside, relative to the object's original dimensions.
-                      #
-                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
-                      # rectangle is positioned inside of the object's original bounding rectangle.
-                      # - If the offset is negative or greater than 1, the corresponding edge of crop
-                      # rectangle is positioned outside of the object's original bounding rectangle.
-                      # - If the left edge of the crop rectangle is on the right side of its right
-                      # edge, the object will be flipped horizontally.
-                      # - If the top edge of the crop rectangle is below its bottom edge, the object
-                      # will be flipped vertically.
-                      # - If all offsets and rotation angle is 0, the object is not cropped.
-                      #
-                      # After cropping, the content in the crop rectangle will be stretched to fit
-                      # its container.
-                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
-                        # the right of the original bounding rectangle left edge, relative to the
-                        # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
-                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                        # Rotation angle is applied after the offset.
-                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
-                        # to the left of the original bounding rectangle right edge, relative to the
-                        # object's original width.
-                  },
-                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
-                      # is read-only.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "color": { # A themeable solid color value. # The shadow color value.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                        # relative to the alignment position.
-                        # to transform source coordinates (x,y) into destination coordinates (x', y')
-                        # according to:
-                        #
-                        #       x'  x  =   shear_y  scale_y  translate_y
-                        #       1  [ 1 ]
-                        #
-                        # After transformation,
-                        #
-                        #      x' = scale_x * x + shear_x * y + translate_x;
-                        #      y' = scale_y * y + shear_y * x + translate_y;
-                        #
-                        # This message is therefore composed of these six matrix elements.
-                      "translateX": 3.14, # The X coordinate translation element.
-                      "translateY": 3.14, # The Y coordinate translation element.
-                      "scaleX": 3.14, # The X coordinate scaling element.
-                      "scaleY": 3.14, # The Y coordinate scaling element.
-                      "shearY": 3.14, # The Y coordinate shearing element.
-                      "shearX": 3.14, # The X coordinate shearing element.
-                      "unit": "A String", # The units for translate elements.
-                    },
-                    "propertyState": "A String", # The shadow property state.
-                        #
-                        # Updating the the shadow on a page element will implicitly update this field
-                        # to `RENDERED`, unless another value is specified in the same request. To
-                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                        # case, any other shadow fields set in the same request will be ignored.
-                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                        # shadow becomes.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                    "type": "A String", # The type of the shadow.
-                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                        # scale and skew of the shadow.
-                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                  },
-                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
-                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                },
-              },
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
-            },
-            "video": { # A PageElement kind representing a # A video page element.
-                # video.
-              "url": "A String", # An URL to a video. The URL is valid as long as the source video
-                  # exists and sharing settings do not change.
-              "source": "A String", # The video source.
-              "id": "A String", # The video source's unique identifier for this video.
-              "videoProperties": { # The properties of the Video. # The properties of the video.
-                "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
-                    # videos created in the Slides editor.
-                    #
-                    # If these fields are unset, they may be inherited from a parent placeholder
-                    # if it exists. If there is no parent, the fields will default to the value
-                    # used for new page elements created in the Slides editor, which may depend on
-                    # the page element kind.
-                  "outlineFill": { # The fill of the outline. # The fill of the outline.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                  },
-                  "propertyState": "A String", # The outline property state.
-                      #
-                      # Updating the the outline on a page element will implicitly update this
-                      # field to`RENDERED`, unless another value is specified in the same request.
-                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                      # this case, any other outline fields set in the same request will be
-                      # ignored.
-                  "dashStyle": "A String", # The dash style of the outline.
-                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-              },
-            },
-            "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
-                # joined collection of PageElements.
-              "children": [ # The collection of elements in the group. The minimum size of a group is 2.
-                # Object with schema name: PageElement
-              ],
-            },
-            "table": { # A PageElement kind representing a # A table page element.
-                # table.
-              "tableColumns": [ # Properties of each column.
-                { # Properties of each column in a table.
-                  "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-              ],
-              "tableRows": [ # Properties and contents of each row.
-                  #
-                  # Cells that span multiple rows are contained in only one of these rows and
-                  # have a row_span greater
-                  # than 1.
-                { # Properties and contents of each row in a table.
-                  "tableCells": [ # Properties and contents of each cell.
-                      #
-                      # Cells that span multiple columns are represented only once with a
-                      # column_span greater
-                      # than 1. As a result, the length of this collection does not always match
-                      # the number of columns of the entire table.
-                    { # Properties and contents of each table cell.
-                      "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
-                          # text box or rectangle) or a table cell in a page.
-                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                              # associated with a list. A paragraph that is part of a list has an implicit
-                              # reference to that list's ID.
-                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                # level. A list has at most nine levels of nesting, so the possible values
-                                # for the keys of this map are 0 through 8, inclusive.
-                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                  # level of nesting.
-                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is rendered as bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                },
-                              },
-                            },
-                            "listId": "A String", # The ID of the list.
-                          },
-                        },
-                        "textElements": [ # The text contents broken down into its component parts, including styling
-                            # information. This property is read-only.
-                          { # A TextElement describes the content of a range of indices in the text content
-                              # of a Shape or TableCell.
-                            "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
-                                # replaced with content that can change over time.
-                              "content": "A String", # The rendered content of this auto text, if available.
-                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
-                                  #
-                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                  # inherited from the parent. Which text styles are inherited depend on the
-                                  # nesting level of lists:
-                                  #
-                                  # * A text run in a paragraph that is not in a list will inherit its text style
-                                  #   from the the newline character in the paragraph at the 0 nesting level of
-                                  #   the list inside the parent placeholder.
-                                  # * A text run in a paragraph that is in a list will inherit its text style
-                                  #   from the newline character in the paragraph at its corresponding nesting
-                                  #   level of the list inside the parent placeholder.
-                                  #
-                                  # Inherited text styles are represented as unset fields in this message. If
-                                  # text is contained in a shape without a parent placeholder, unsetting these
-                                  # fields will revert the style to a value matching the defaults in the Slides
-                                  # editor.
-                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                    # transparent, depending on if the `opaque_color` field in it is set.
-                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                      # a transparent color.
-                                    "themeColor": "A String", # An opaque theme color.
-                                    "rgbColor": { # An RGB color. # An opaque RGB color.
-                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                    },
-                                  },
-                                },
-                                "bold": True or False, # Whether or not the text is rendered as bold.
-                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                    #
-                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                    # rendered in a smaller font size, computed based on the `font_size` field.
-                                    # The `font_size` itself is not affected by changes in this field.
-                                "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
-                                    #
-                                    # This field is an extension of `font_family` meant to support explicit font
-                                    # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
-                                },
-                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                "fontFamily": "A String", # The font family of the text.
-                                    #
-                                    # The font family can be any font from the Font menu in Slides or from
-                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                    # unrecognized, the text is rendered in `Arial`.
-                                    #
-                                    # Some fonts can affect the weight of the text. If an update request
-                                    # specifies values for both `font_family` and `bold`, the explicitly-set
-                                    # `bold` value is used.
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                    # are not inherited from parent text.
-                                    #
-                                    # Changing the link in an update request causes some other changes to the
-                                    # text style of the range:
-                                    #
-                                    # * When setting a link, the text foreground color will be set to
-                                    #   ThemeColorType.HYPERLINK and the text will
-                                    #   be underlined. If these fields are modified in the same
-                                    #   request, those values will be used instead of the link defaults.
-                                    # * Setting a link on a text range that overlaps with an existing link will
-                                    #   also update the existing link to point to the new URL.
-                                    # * Links are not settable on newline characters. As a result, setting a link
-                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                    #   will separate the newline character(s) into their own text runs. The
-                                    #   link will be applied separately to the runs before and after the newline.
-                                    # * Removing a link will update the text style of the range to match the
-                                    #   style of the preceding text (or the default text styles if the preceding
-                                    #   text is another link) unless different styles are being set in the same
-                                    #   request.
-                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
-                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                      # in the presentation. There may not be a slide at this index.
-                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                      # addressed by its position.
-                                },
-                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                    # transparent, depending on if the `opaque_color` field in it is set.
-                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                      # a transparent color.
-                                    "themeColor": "A String", # An opaque theme color.
-                                    "rgbColor": { # An RGB color. # An opaque RGB color.
-                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                    },
-                                  },
-                                },
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "underline": True or False, # Whether or not the text is underlined.
-                              },
-                              "type": "A String", # The type of this auto text.
-                            },
-                            "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
-                                # units.
-                            "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
-                            "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
-                                #
-                                # The `start_index` and `end_index` of this TextElement represent the
-                                # range of the paragraph. Other TextElements with an index range contained
-                                # inside this paragraph's range are considered to be part of this
-                                # paragraph. The range of indices of two separate paragraphs will never
-                                # overlap.
-                              "style": { # Styles that apply to a whole paragraph. # The paragraph's style
-                                  #
-                                  # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
-                                  # inherited from the parent. Which paragraph styles are inherited depend on the
-                                  # nesting level of lists:
-                                  #
-                                  # * A paragraph not in a list will inherit its paragraph style from the
-                                  #   paragraph at the 0 nesting level of the list inside the parent placeholder.
-                                  # * A paragraph in a list will inherit its paragraph style from the paragraph
-                                  #   at its corresponding nesting level of the list inside the parent
-                                  #   placeholder.
-                                  #
-                                  # Inherited paragraph styles are represented as unset fields in this message.
-                                "spacingMode": "A String", # The spacing mode for the paragraph.
-                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                    # LEFT_TO_RIGHT
-                                    # since text direction is not inherited.
-                                "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
-                                    # is represented as 100.0. If unset, the value is inherited from the parent.
-                                "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                                    # the start of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                    # inherited from the parent.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                                    # the end of the text, based on the current text direction. If unset, the
-                                    # value is inherited from the parent.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                    # If unset, the value is inherited from the parent.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "alignment": "A String", # The text alignment for this paragraph.
-                              },
-                              "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
-                                  # belong to a list.
-                                "nestingLevel": 42, # The nesting level of this paragraph in the list.
-                                "listId": "A String", # The ID of the list this paragraph belongs to.
-                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is rendered as bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                },
-                                "glyph": "A String", # The rendered bullet glyph for this paragraph.
-                              },
-                            },
-                            "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
-                                # in the run have the same TextStyle.
-                                #
-                                # The `start_index` and `end_index` of TextRuns will always be fully
-                                # contained in the index range of a single `paragraph_marker` TextElement.
-                                # In other words, a TextRun will never span multiple paragraphs.
-                                # styling.
-                              "content": "A String", # The text of this run.
-                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
-                                  #
-                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                  # inherited from the parent. Which text styles are inherited depend on the
-                                  # nesting level of lists:
-                                  #
-                                  # * A text run in a paragraph that is not in a list will inherit its text style
-                                  #   from the the newline character in the paragraph at the 0 nesting level of
-                                  #   the list inside the parent placeholder.
-                                  # * A text run in a paragraph that is in a list will inherit its text style
-                                  #   from the newline character in the paragraph at its corresponding nesting
-                                  #   level of the list inside the parent placeholder.
-                                  #
-                                  # Inherited text styles are represented as unset fields in this message. If
-                                  # text is contained in a shape without a parent placeholder, unsetting these
-                                  # fields will revert the style to a value matching the defaults in the Slides
-                                  # editor.
-                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                    # transparent, depending on if the `opaque_color` field in it is set.
-                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                      # a transparent color.
-                                    "themeColor": "A String", # An opaque theme color.
-                                    "rgbColor": { # An RGB color. # An opaque RGB color.
-                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                    },
-                                  },
-                                },
-                                "bold": True or False, # Whether or not the text is rendered as bold.
-                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                    #
-                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                    # rendered in a smaller font size, computed based on the `font_size` field.
-                                    # The `font_size` itself is not affected by changes in this field.
-                                "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
-                                    #
-                                    # This field is an extension of `font_family` meant to support explicit font
-                                    # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
-                                },
-                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                "fontFamily": "A String", # The font family of the text.
-                                    #
-                                    # The font family can be any font from the Font menu in Slides or from
-                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                    # unrecognized, the text is rendered in `Arial`.
-                                    #
-                                    # Some fonts can affect the weight of the text. If an update request
-                                    # specifies values for both `font_family` and `bold`, the explicitly-set
-                                    # `bold` value is used.
-                                "italic": True or False, # Whether or not the text is italicized.
-                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                    # are not inherited from parent text.
-                                    #
-                                    # Changing the link in an update request causes some other changes to the
-                                    # text style of the range:
-                                    #
-                                    # * When setting a link, the text foreground color will be set to
-                                    #   ThemeColorType.HYPERLINK and the text will
-                                    #   be underlined. If these fields are modified in the same
-                                    #   request, those values will be used instead of the link defaults.
-                                    # * Setting a link on a text range that overlaps with an existing link will
-                                    #   also update the existing link to point to the new URL.
-                                    # * Links are not settable on newline characters. As a result, setting a link
-                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                    #   will separate the newline character(s) into their own text runs. The
-                                    #   link will be applied separately to the runs before and after the newline.
-                                    # * Removing a link will update the text style of the range to match the
-                                    #   style of the preceding text (or the default text styles if the preceding
-                                    #   text is another link) unless different styles are being set in the same
-                                    #   request.
-                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
-                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                      # in the presentation. There may not be a slide at this index.
-                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                      # addressed by its position.
-                                },
-                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                    # transparent, depending on if the `opaque_color` field in it is set.
-                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                      # a transparent color.
-                                    "themeColor": "A String", # An opaque theme color.
-                                    "rgbColor": { # An RGB color. # An opaque RGB color.
-                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                    },
-                                  },
-                                },
-                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                    # points.
-                                  "magnitude": 3.14, # The magnitude.
-                                  "unit": "A String", # The units for magnitude.
-                                },
-                                "underline": True or False, # Whether or not the text is underlined.
-                              },
-                            },
-                          },
-                        ],
-                      },
-                      "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
-                        "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
-                            # for newly created table cells in the Slides editor.
-                          "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                              # specified color value.
-                              #
-                              # If any field is unset, its value may be inherited from a parent placeholder
-                              # if it exists.
-                            "color": { # A themeable solid color value. # The color value of the solid fill.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                            "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                                # That is, the final pixel color is defined by the equation:
-                                #
-                                #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                                #
-                                # This means that a value of 1.0 corresponds to a solid color, whereas
-                                # a value of 0.0 corresponds to a completely transparent color.
-                          },
-                          "propertyState": "A String", # The background fill property state.
-                              #
-                              # Updating the the fill on a table cell will implicitly update this field
-                              # to `RENDERED`, unless another value is specified in the same request. To
-                              # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
-                              # case, any other fill fields set in the same request will be ignored.
-                        },
-                      },
-                      "rowSpan": 42, # Row span of the cell.
-                      "columnSpan": 42, # Column span of the cell.
-                      "location": { # A location of a single table cell within a table. # The location of the cell within the table.
-                        "rowIndex": 42, # The 0-based row index.
-                        "columnIndex": 42, # The 0-based column index.
-                      },
-                    },
-                  ],
-                  "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-              ],
-              "rows": 42, # Number of rows in the table.
-              "columns": 42, # Number of columns in the table.
-            },
-            "line": { # A PageElement kind representing a # A line page element.
-                # line, curved connector, or bent connector.
-              "lineProperties": { # The properties of the Line. # The properties of the line.
-                  #
-                  # When unset, these fields default to values that match the appearance of
-                  # new lines created in the Slides editor.
-                "dashStyle": "A String", # The dash style of the line.
-                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-                "endArrow": "A String", # The style of the arrow at the end of the line.
-                "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
-                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
-                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                      # in the presentation. There may not be a slide at this index.
-                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                      # addressed by its position.
-                },
-                "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
-                    # lines created in the Slides editor.
-                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                      # specified color value.
-                      #
-                      # If any field is unset, its value may be inherited from a parent placeholder
-                      # if it exists.
-                    "color": { # A themeable solid color value. # The color value of the solid fill.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                        # That is, the final pixel color is defined by the equation:
-                        #
-                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                        #
-                        # This means that a value of 1.0 corresponds to a solid color, whereas
-                        # a value of 0.0 corresponds to a completely transparent color.
-                  },
-                },
-                "startArrow": "A String", # The style of the arrow at the beginning of the line.
-              },
-              "lineType": "A String", # The type of the line.
-            },
-            "size": { # A width and height. # The size of the page element.
-              "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-                "magnitude": 3.14, # The magnitude.
-                "unit": "A String", # The units for magnitude.
-              },
-              "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-                "magnitude": 3.14, # The magnitude.
-                "unit": "A String", # The units for magnitude.
-              },
-            },
-          },
-        ],
-        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
-            # relevant for pages with page_type NOTES.
-          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
-              # notes for the corresponding slide.
-              # The actual shape may not always exist on the notes page. Inserting text
-              # using this object ID will automatically create the shape. In this case, the
-              # actual shape may have different object ID. The `GetPresentation` or
-              # `GetPage` action will always return the latest object ID.
-        },
-        "objectId": "A String", # The object ID for this page. Object IDs used by
-            # Page and
-            # PageElement share the same namespace.
-        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
-            # update requests to assert that the presentation revision hasn't changed
-            # since the last read operation. Only populated if the user has edit access
-            # to the presentation.
-            #
-            # The format of the revision ID may change over time, so it should be treated
-            # opaquely. A returned revision ID is only guaranteed to be valid for 24
-            # hours after it has been returned and cannot be shared across
-            # users. Callers can assume that if two revision IDs are equal then the
-            # presentation has not changed.
-        "pageProperties": { # The properties of the Page. # The properties of the page.
-            #
-            # The page will inherit properties from the parent page. Depending on the page
-            # type the hierarchy is defined in either
-            # SlideProperties or
-            # LayoutProperties.
-          "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
-              # from a parent page if it exists. If the page has no parent, then the
-              # background fill defaults to the corresponding fill in the Slides editor.
-            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                # specified color value.
-                #
-                # If any field is unset, its value may be inherited from a parent placeholder
-                # if it exists.
-              "color": { # A themeable solid color value. # The color value of the solid fill.
-                "themeColor": "A String", # An opaque theme color.
-                "rgbColor": { # An RGB color. # An opaque RGB color.
-                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                },
-              },
-              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                  # That is, the final pixel color is defined by the equation:
-                  #
-                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                  #
-                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                  # a value of 0.0 corresponds to a completely transparent color.
-            },
-            "propertyState": "A String", # The background fill property state.
-                #
-                # Updating the the fill on a page will implicitly update this field to
-                # `RENDERED`, unless another value is specified in the same request. To
-                # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
-                # any other fill fields set in the same request will be ignored.
-            "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
-                # the specified picture. The picture is stretched to fit its container.
-              "contentUrl": "A String", # Reading the content_url:
-                  #
-                  # An URL to a picture with a default lifetime of 30 minutes.
-                  # This URL is tagged with the account of the requester. Anyone with the URL
-                  # effectively accesses the picture as the original requester. Access to the
-                  # picture may be lost if the presentation's sharing settings change.
-                  #
-                  # Writing the content_url:
-                  #
-                  # The picture is fetched once at insertion time and a copy is stored for
-                  # display inside the presentation. Pictures must be less than 50MB in size,
-                  # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
-                  # format.
-              "size": { # A width and height. # The original size of the picture fill. This field is read-only.
-                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-              },
-            },
-          },
-          "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
-              # a parent page. If the page has no parent, the color scheme uses a default
-              # Slides color scheme. This field is read-only.
-            "colors": [ # The ThemeColorType and corresponding concrete color pairs.
-              { # A pair mapping a theme color type to the concrete color it represents.
-                "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
-                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                },
-                "type": "A String", # The type of the theme color.
-              },
-            ],
-          },
-        },
-        "pageType": "A String", # The type of the page.
-        "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
-            # relevant for pages with page_type SLIDE.
-          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
-              # appearance of a notes page when printing or exporting slides with speaker
-              # notes. A notes page inherits properties from the
-              # notes master.
-              # The placeholder shape with type BODY on the notes page contains the speaker
-              # notes for this slide. The ID of this shape is identified by the
-              # speakerNotesObjectId field.
-              # The notes page is read-only except for the text content and styles of the
-              # speaker notes shape.
-          "masterObjectId": "A String", # The object ID of the master that this slide is based on.
-          "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
-        },
-      },
-    ],
-    "pageSize": { # A width and height. # The size of pages in the presentation.
-      "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-        "magnitude": 3.14, # The magnitude.
-        "unit": "A String", # The units for magnitude.
-      },
-      "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-        "magnitude": 3.14, # The magnitude.
-        "unit": "A String", # The units for magnitude.
-      },
-    },
-    "title": "A String", # The title of the presentation.
-    "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
-    "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
-        # to assert that the presentation revision hasn't changed since the last
-        # read operation. Only populated if the user has edit access to the
-        # presentation.
-        # 
-        # The format of the revision ID may change over time, so it should be treated
-        # opaquely. A returned revision ID is only guaranteed to be valid for 24
-        # hours after it has been returned and cannot be shared across users. Callers
-        # can assume that if two revision IDs are equal then the presentation has not
-        # changed.
     "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes:
         # 
         # - Placeholder shapes on a notes master contain the default text styles and
@@ -3923,10 +1915,10 @@
               },
               "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                    # presentation with this ID. A page with this ID may not exist.
                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                     # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                     # addressed by its position.
               },
@@ -3957,17 +1949,17 @@
                 "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                     # the right of the original bounding rectangle left edge, relative to the
                     # object's original width.
-                "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                    # below the original bounding rectangle top edge, relative to the object's
-                    # original height.
-                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                    # above the original bounding rectangle bottom edge, relative to the object's
-                    # original height.
                 "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                     # Rotation angle is applied after the offset.
                 "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                     # to the left of the original bounding rectangle right edge, relative to the
                     # object's original width.
+                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                    # above the original bounding rectangle bottom edge, relative to the object's
+                    # original height.
+                "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                    # below the original bounding rectangle top edge, relative to the object's
+                    # original height.
               },
               "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                   # is read-only.
@@ -4097,26 +2089,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -4150,10 +2163,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -4224,26 +2237,47 @@
                           # rendered in a smaller font size, computed based on the `font_size` field.
                           # The `font_size` itself is not affected by changes in this field.
                       "strikethrough": True or False, # Whether or not the text is struck through.
-                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                          # read-only.
+                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                           #
                           # This field is an extension of `font_family` meant to support explicit font
                           # weights without breaking backwards compatibility. As such, when reading the
-                          # style of a range of text, the value of `weighted_font_family.font_family`
-                          # will always be equal to that of `font_family`.
+                          # style of a range of text, the value of `weighted_font_family#font_family`
+                          # will always be equal to that of `font_family`. However, when writing, if
+                          # both fields are included in the field mask (either explicitly or through
+                          # the wildcard `"*"`), their values are reconciled as follows:
+                          #
+                          # * If `font_family` is set and `weighted_font_family` is not, the value of
+                          #   `font_family` is applied with weight `400` ("normal").
+                          # * If both fields are set, the value of `font_family` must match that of
+                          #   `weighted_font_family#font_family`. If so, the font family and weight of
+                          #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                          #   returned.
+                          # * If `weighted_font_family` is set and `font_family` is not, the font
+                          #   family and weight of `weighted_font_family` is applied.
+                          # * If neither field is set, the font family and weight of the text inherit
+                          #   from the parent. Note that these properties cannot inherit separately
+                          #   from each other.
+                          #
+                          # If an update request specifies values for both `weighted_font_family` and
+                          # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                          #
+                          # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                          #
+                          # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                          # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                          # is returned.
                         "fontFamily": "A String", # The font family of the text.
                             #
                             # The font family can be any font from the Font menu in Slides or from
                             # [Google Fonts] (https://fonts.google.com/). If the font name is
                             # unrecognized, the text is rendered in `Arial`.
                         "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                            # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                            # only the numerical values described in the "Cascading Style Sheets Level
-                            # 2 Revision 1 (CSS 2.1) Specification",
-                            # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                            # non-numerical values in the specification are disallowed. Weights greater
-                            # than or equal to 700 are considered bold, and weights less than 700 are
-                            # not bold. The default value is `400` ("normal").
+                            # multiple of `100` between `100` and `900`, inclusive. This range
+                            # corresponds to the numerical values described in the CSS 2.1
+                            # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                            # with non-numerical values disallowed. Weights greater than or equal to
+                            # `700` are considered bold, and weights less than `700`are not bold. The
+                            # default value is `400` ("normal").
                       },
                       "smallCaps": True or False, # Whether or not the text is in small capital letters.
                       "fontFamily": "A String", # The font family of the text.
@@ -4277,10 +2311,10 @@
                           #   text is another link) unless different styles are being set in the same
                           #   request.
                         "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                            # presentation with this ID. A page with this ID may not exist.
                         "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                             # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
                         "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                             # addressed by its position.
                       },
@@ -4330,8 +2364,8 @@
                         # Inherited paragraph styles are represented as unset fields in this message.
                       "spacingMode": "A String", # The spacing mode for the paragraph.
                       "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                          # LEFT_TO_RIGHT
-                          # since text direction is not inherited.
+                          # LEFT_TO_RIGHT since
+                          # text direction is not inherited.
                       "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                           # inherited from the parent.
                         "magnitude": 3.14, # The magnitude.
@@ -4403,26 +2437,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -4456,10 +2511,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -4529,26 +2584,47 @@
                           # rendered in a smaller font size, computed based on the `font_size` field.
                           # The `font_size` itself is not affected by changes in this field.
                       "strikethrough": True or False, # Whether or not the text is struck through.
-                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                          # read-only.
+                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                           #
                           # This field is an extension of `font_family` meant to support explicit font
                           # weights without breaking backwards compatibility. As such, when reading the
-                          # style of a range of text, the value of `weighted_font_family.font_family`
-                          # will always be equal to that of `font_family`.
+                          # style of a range of text, the value of `weighted_font_family#font_family`
+                          # will always be equal to that of `font_family`. However, when writing, if
+                          # both fields are included in the field mask (either explicitly or through
+                          # the wildcard `"*"`), their values are reconciled as follows:
+                          #
+                          # * If `font_family` is set and `weighted_font_family` is not, the value of
+                          #   `font_family` is applied with weight `400` ("normal").
+                          # * If both fields are set, the value of `font_family` must match that of
+                          #   `weighted_font_family#font_family`. If so, the font family and weight of
+                          #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                          #   returned.
+                          # * If `weighted_font_family` is set and `font_family` is not, the font
+                          #   family and weight of `weighted_font_family` is applied.
+                          # * If neither field is set, the font family and weight of the text inherit
+                          #   from the parent. Note that these properties cannot inherit separately
+                          #   from each other.
+                          #
+                          # If an update request specifies values for both `weighted_font_family` and
+                          # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                          #
+                          # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                          #
+                          # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                          # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                          # is returned.
                         "fontFamily": "A String", # The font family of the text.
                             #
                             # The font family can be any font from the Font menu in Slides or from
                             # [Google Fonts] (https://fonts.google.com/). If the font name is
                             # unrecognized, the text is rendered in `Arial`.
                         "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                            # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                            # only the numerical values described in the "Cascading Style Sheets Level
-                            # 2 Revision 1 (CSS 2.1) Specification",
-                            # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                            # non-numerical values in the specification are disallowed. Weights greater
-                            # than or equal to 700 are considered bold, and weights less than 700 are
-                            # not bold. The default value is `400` ("normal").
+                            # multiple of `100` between `100` and `900`, inclusive. This range
+                            # corresponds to the numerical values described in the CSS 2.1
+                            # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                            # with non-numerical values disallowed. Weights greater than or equal to
+                            # `700` are considered bold, and weights less than `700`are not bold. The
+                            # default value is `400` ("normal").
                       },
                       "smallCaps": True or False, # Whether or not the text is in small capital letters.
                       "fontFamily": "A String", # The font family of the text.
@@ -4582,10 +2658,10 @@
                           #   text is another link) unless different styles are being set in the same
                           #   request.
                         "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                            # presentation with this ID. A page with this ID may not exist.
                         "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                             # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
                         "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                             # addressed by its position.
                       },
@@ -4710,10 +2786,10 @@
               "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                   # are not inherited from parent placeholders.
                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                    # presentation with this ID. A page with this ID may not exist.
                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                     # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                     # addressed by its position.
               },
@@ -4772,8 +2848,8 @@
               "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                   # If unset, the parent placeholder shape does not exist, so the shape does
                   # not inherit properties from any other shape.
-              "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                  # in the same page, they would have different index values.
+              "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                  # the same page, they would have different index values.
               "type": "A String", # The type of the placeholder.
             },
             "shapeType": "A String", # The type of the shape.
@@ -4781,12 +2857,11 @@
           "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
               # represented as images.
               # a linked chart embedded from Google Sheets.
-            "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                # embedded.
             "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                 # minutes. This URL is tagged with the account of the requester. Anyone with
                 # the URL effectively accesses the image as the original requester. Access to
                 # the image may be lost if the presentation's sharing settings change.
+            "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
             "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
               "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                 "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -4864,10 +2939,10 @@
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -4898,17 +2973,17 @@
                   "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                       # the right of the original bounding rectangle left edge, relative to the
                       # object's original width.
-                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                      # below the original bounding rectangle top edge, relative to the object's
-                      # original height.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
                 },
                 "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                     # is read-only.
@@ -4968,14 +3043,13 @@
                     # [-1.0, 1.0], where 0 means no effect. This property is read-only.
               },
             },
-            "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+            "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                # embedded.
           },
           "video": { # A PageElement kind representing a # A video page element.
               # video.
             "url": "A String", # An URL to a video. The URL is valid as long as the source video
                 # exists and sharing settings do not change.
-            "source": "A String", # The video source.
-            "id": "A String", # The video source's unique identifier for this video.
             "videoProperties": { # The properties of the Video. # The properties of the video.
               "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                   # videos created in the Slides editor.
@@ -5021,6 +3095,8 @@
                 },
               },
             },
+            "id": "A String", # The video source's unique identifier for this video.
+            "source": "A String", # The video source.
           },
           "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
               # joined collection of PageElements.
@@ -5098,26 +3174,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -5151,10 +3248,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -5225,26 +3322,47 @@
                                   # rendered in a smaller font size, computed based on the `font_size` field.
                                   # The `font_size` itself is not affected by changes in this field.
                               "strikethrough": True or False, # Whether or not the text is struck through.
-                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                  # read-only.
+                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                   #
                                   # This field is an extension of `font_family` meant to support explicit font
                                   # weights without breaking backwards compatibility. As such, when reading the
-                                  # style of a range of text, the value of `weighted_font_family.font_family`
-                                  # will always be equal to that of `font_family`.
+                                  # style of a range of text, the value of `weighted_font_family#font_family`
+                                  # will always be equal to that of `font_family`. However, when writing, if
+                                  # both fields are included in the field mask (either explicitly or through
+                                  # the wildcard `"*"`), their values are reconciled as follows:
+                                  #
+                                  # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                  #   `font_family` is applied with weight `400` ("normal").
+                                  # * If both fields are set, the value of `font_family` must match that of
+                                  #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                  #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                  #   returned.
+                                  # * If `weighted_font_family` is set and `font_family` is not, the font
+                                  #   family and weight of `weighted_font_family` is applied.
+                                  # * If neither field is set, the font family and weight of the text inherit
+                                  #   from the parent. Note that these properties cannot inherit separately
+                                  #   from each other.
+                                  #
+                                  # If an update request specifies values for both `weighted_font_family` and
+                                  # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                  #
+                                  # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                  #
+                                  # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                  # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                  # is returned.
                                 "fontFamily": "A String", # The font family of the text.
                                     #
                                     # The font family can be any font from the Font menu in Slides or from
                                     # [Google Fonts] (https://fonts.google.com/). If the font name is
                                     # unrecognized, the text is rendered in `Arial`.
                                 "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                    # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                    # only the numerical values described in the "Cascading Style Sheets Level
-                                    # 2 Revision 1 (CSS 2.1) Specification",
-                                    # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                    # non-numerical values in the specification are disallowed. Weights greater
-                                    # than or equal to 700 are considered bold, and weights less than 700 are
-                                    # not bold. The default value is `400` ("normal").
+                                    # multiple of `100` between `100` and `900`, inclusive. This range
+                                    # corresponds to the numerical values described in the CSS 2.1
+                                    # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                    # with non-numerical values disallowed. Weights greater than or equal to
+                                    # `700` are considered bold, and weights less than `700`are not bold. The
+                                    # default value is `400` ("normal").
                               },
                               "smallCaps": True or False, # Whether or not the text is in small capital letters.
                               "fontFamily": "A String", # The font family of the text.
@@ -5278,10 +3396,10 @@
                                   #   text is another link) unless different styles are being set in the same
                                   #   request.
                                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                    # presentation with this ID. A page with this ID may not exist.
                                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                     # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
                                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                     # addressed by its position.
                               },
@@ -5331,8 +3449,8 @@
                                 # Inherited paragraph styles are represented as unset fields in this message.
                               "spacingMode": "A String", # The spacing mode for the paragraph.
                               "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                  # LEFT_TO_RIGHT
-                                  # since text direction is not inherited.
+                                  # LEFT_TO_RIGHT since
+                                  # text direction is not inherited.
                               "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                   # inherited from the parent.
                                 "magnitude": 3.14, # The magnitude.
@@ -5404,26 +3522,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -5457,10 +3596,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -5530,26 +3669,47 @@
                                   # rendered in a smaller font size, computed based on the `font_size` field.
                                   # The `font_size` itself is not affected by changes in this field.
                               "strikethrough": True or False, # Whether or not the text is struck through.
-                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                  # read-only.
+                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                   #
                                   # This field is an extension of `font_family` meant to support explicit font
                                   # weights without breaking backwards compatibility. As such, when reading the
-                                  # style of a range of text, the value of `weighted_font_family.font_family`
-                                  # will always be equal to that of `font_family`.
+                                  # style of a range of text, the value of `weighted_font_family#font_family`
+                                  # will always be equal to that of `font_family`. However, when writing, if
+                                  # both fields are included in the field mask (either explicitly or through
+                                  # the wildcard `"*"`), their values are reconciled as follows:
+                                  #
+                                  # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                  #   `font_family` is applied with weight `400` ("normal").
+                                  # * If both fields are set, the value of `font_family` must match that of
+                                  #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                  #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                  #   returned.
+                                  # * If `weighted_font_family` is set and `font_family` is not, the font
+                                  #   family and weight of `weighted_font_family` is applied.
+                                  # * If neither field is set, the font family and weight of the text inherit
+                                  #   from the parent. Note that these properties cannot inherit separately
+                                  #   from each other.
+                                  #
+                                  # If an update request specifies values for both `weighted_font_family` and
+                                  # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                  #
+                                  # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                  #
+                                  # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                  # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                  # is returned.
                                 "fontFamily": "A String", # The font family of the text.
                                     #
                                     # The font family can be any font from the Font menu in Slides or from
                                     # [Google Fonts] (https://fonts.google.com/). If the font name is
                                     # unrecognized, the text is rendered in `Arial`.
                                 "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                    # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                    # only the numerical values described in the "Cascading Style Sheets Level
-                                    # 2 Revision 1 (CSS 2.1) Specification",
-                                    # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                    # non-numerical values in the specification are disallowed. Weights greater
-                                    # than or equal to 700 are considered bold, and weights less than 700 are
-                                    # not bold. The default value is `400` ("normal").
+                                    # multiple of `100` between `100` and `900`, inclusive. This range
+                                    # corresponds to the numerical values described in the CSS 2.1
+                                    # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                    # with non-numerical values disallowed. Weights greater than or equal to
+                                    # `700` are considered bold, and weights less than `700`are not bold. The
+                                    # default value is `400` ("normal").
                               },
                               "smallCaps": True or False, # Whether or not the text is in small capital letters.
                               "fontFamily": "A String", # The font family of the text.
@@ -5583,10 +3743,10 @@
                                   #   text is another link) unless different styles are being set in the same
                                   #   request.
                                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                    # presentation with this ID. A page with this ID may not exist.
                                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                     # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
                                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                     # addressed by its position.
                               },
@@ -5676,10 +3836,10 @@
               "endArrow": "A String", # The style of the arrow at the end of the line.
               "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                    # presentation with this ID. A page with this ID may not exist.
                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                     # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                     # addressed by its position.
               },
@@ -5742,9 +3902,11 @@
           #
           # The format of the revision ID may change over time, so it should be treated
           # opaquely. A returned revision ID is only guaranteed to be valid for 24
-          # hours after it has been returned and cannot be shared across
-          # users. Callers can assume that if two revision IDs are equal then the
-          # presentation has not changed.
+          # hours after it has been returned and cannot be shared across users. If the
+          # revision ID is unchanged between calls, then the presentation has not
+          # changed. Conversely, a changed ID (for the same presentation and user)
+          # usually means the presentation has been updated; however, a changed ID can
+          # also be due to internal factors such as ID format changes.
       "pageProperties": { # The properties of the Page. # The properties of the page.
           #
           # The page will inherit properties from the parent page. Depending on the page
@@ -5839,8 +4001,40 @@
         "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
       },
     },
-    "slides": [ # The slides in the presentation.
-        # A slide inherits properties from a slide layout.
+    "pageSize": { # A width and height. # The size of pages in the presentation.
+      "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+        "magnitude": 3.14, # The magnitude.
+        "unit": "A String", # The units for magnitude.
+      },
+      "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+        "magnitude": 3.14, # The magnitude.
+        "unit": "A String", # The units for magnitude.
+      },
+    },
+    "title": "A String", # The title of the presentation.
+    "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
+    "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
+        # to assert that the presentation revision hasn't changed since the last
+        # read operation. Only populated if the user has edit access to the
+        # presentation.
+        # 
+        # The format of the revision ID may change over time, so it should be treated
+        # opaquely. A returned revision ID is only guaranteed to be valid for 24
+        # hours after it has been returned and cannot be shared across users. If the
+        # revision ID is unchanged between calls, then the presentation has not
+        # changed. Conversely, a changed ID (for the same presentation and user)
+        # usually means the presentation has been updated; however, a changed ID can
+        # also be due to internal factors such as ID format changes.
+    "masters": [ # The slide masters in the presentation. A slide master contains all common
+        # page elements and the common properties for a set of layouts. They serve
+        # three purposes:
+        # 
+        # - Placeholder shapes on a master contain the default text styles and shape
+        #   properties of all placeholder shapes on pages that use that master.
+        # - The master page properties define the common page properties inherited by
+        #   its layouts.
+        # - Any other shapes on the master slide will appear on all slides using that
+        #   master, regardless of their layout.
       { # A page in a presentation.
         "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
             # relevant for pages with page_type LAYOUT.
@@ -5943,10 +4137,10 @@
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -5977,17 +4171,17 @@
                   "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                       # the right of the original bounding rectangle left edge, relative to the
                       # object's original width.
-                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                      # below the original bounding rectangle top edge, relative to the object's
-                      # original height.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
                 },
                 "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                     # is read-only.
@@ -6117,26 +4311,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -6170,10 +4385,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -6244,26 +4459,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -6297,10 +4533,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -6350,8 +4586,8 @@
                           # Inherited paragraph styles are represented as unset fields in this message.
                         "spacingMode": "A String", # The spacing mode for the paragraph.
                         "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                            # LEFT_TO_RIGHT
-                            # since text direction is not inherited.
+                            # LEFT_TO_RIGHT since
+                            # text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                             # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
@@ -6423,26 +4659,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -6476,10 +4733,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -6549,26 +4806,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -6602,10 +4880,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -6730,10 +5008,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -6792,8 +5070,8 @@
                 "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                     # If unset, the parent placeholder shape does not exist, so the shape does
                     # not inherit properties from any other shape.
-                "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                    # in the same page, they would have different index values.
+                "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                    # the same page, they would have different index values.
                 "type": "A String", # The type of the placeholder.
               },
               "shapeType": "A String", # The type of the shape.
@@ -6801,12 +5079,11 @@
             "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                 # represented as images.
                 # a linked chart embedded from Google Sheets.
-              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                  # embedded.
               "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                   # minutes. This URL is tagged with the account of the requester. Anyone with
                   # the URL effectively accesses the image as the original requester. Access to
                   # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -6884,10 +5161,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -6918,17 +5195,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -6988,14 +5265,13 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
-              "source": "A String", # The video source.
-              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -7041,6 +5317,8 @@
                   },
                 },
               },
+              "id": "A String", # The video source's unique identifier for this video.
+              "source": "A String", # The video source.
             },
             "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                 # joined collection of PageElements.
@@ -7118,26 +5396,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -7171,10 +5470,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -7245,26 +5544,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -7298,10 +5618,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -7351,8 +5671,8 @@
                                   # Inherited paragraph styles are represented as unset fields in this message.
                                 "spacingMode": "A String", # The spacing mode for the paragraph.
                                 "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                    # LEFT_TO_RIGHT
-                                    # since text direction is not inherited.
+                                    # LEFT_TO_RIGHT since
+                                    # text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                     # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
@@ -7424,26 +5744,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -7477,10 +5818,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -7550,26 +5891,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -7603,10 +5965,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -7696,10 +6058,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -7762,9 +6124,2202 @@
             #
             # The format of the revision ID may change over time, so it should be treated
             # opaquely. A returned revision ID is only guaranteed to be valid for 24
-            # hours after it has been returned and cannot be shared across
-            # users. Callers can assume that if two revision IDs are equal then the
-            # presentation has not changed.
+            # hours after it has been returned and cannot be shared across users. If the
+            # revision ID is unchanged between calls, then the presentation has not
+            # changed. Conversely, a changed ID (for the same presentation and user)
+            # usually means the presentation has been updated; however, a changed ID can
+            # also be due to internal factors such as ID format changes.
+        "pageProperties": { # The properties of the Page. # The properties of the page.
+            #
+            # The page will inherit properties from the parent page. Depending on the page
+            # type the hierarchy is defined in either
+            # SlideProperties or
+            # LayoutProperties.
+          "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
+              # from a parent page if it exists. If the page has no parent, then the
+              # background fill defaults to the corresponding fill in the Slides editor.
+            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                # specified color value.
+                #
+                # If any field is unset, its value may be inherited from a parent placeholder
+                # if it exists.
+              "color": { # A themeable solid color value. # The color value of the solid fill.
+                "themeColor": "A String", # An opaque theme color.
+                "rgbColor": { # An RGB color. # An opaque RGB color.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+              },
+              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                  # That is, the final pixel color is defined by the equation:
+                  #
+                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                  #
+                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                  # a value of 0.0 corresponds to a completely transparent color.
+            },
+            "propertyState": "A String", # The background fill property state.
+                #
+                # Updating the the fill on a page will implicitly update this field to
+                # `RENDERED`, unless another value is specified in the same request. To
+                # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
+                # any other fill fields set in the same request will be ignored.
+            "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
+                # the specified picture. The picture is stretched to fit its container.
+              "contentUrl": "A String", # Reading the content_url:
+                  #
+                  # An URL to a picture with a default lifetime of 30 minutes.
+                  # This URL is tagged with the account of the requester. Anyone with the URL
+                  # effectively accesses the picture as the original requester. Access to the
+                  # picture may be lost if the presentation's sharing settings change.
+                  #
+                  # Writing the content_url:
+                  #
+                  # The picture is fetched once at insertion time and a copy is stored for
+                  # display inside the presentation. Pictures must be less than 50MB in size,
+                  # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+                  # format.
+              "size": { # A width and height. # The original size of the picture fill. This field is read-only.
+                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+          },
+          "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
+              # a parent page. If the page has no parent, the color scheme uses a default
+              # Slides color scheme. This field is read-only.
+            "colors": [ # The ThemeColorType and corresponding concrete color pairs.
+              { # A pair mapping a theme color type to the concrete color it represents.
+                "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
+                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                },
+                "type": "A String", # The type of the theme color.
+              },
+            ],
+          },
+        },
+        "pageType": "A String", # The type of the page.
+        "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
+            # relevant for pages with page_type SLIDE.
+          "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+              # appearance of a notes page when printing or exporting slides with speaker
+              # notes. A notes page inherits properties from the
+              # notes master.
+              # The placeholder shape with type BODY on the notes page contains the speaker
+              # notes for this slide. The ID of this shape is identified by the
+              # speakerNotesObjectId field.
+              # The notes page is read-only except for the text content and styles of the
+              # speaker notes shape.
+          "masterObjectId": "A String", # The object ID of the master that this slide is based on.
+          "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
+        },
+      },
+    ],
+    "slides": [ # The slides in the presentation.
+        # A slide inherits properties from a slide layout.
+      { # A page in a presentation.
+        "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
+            # relevant for pages with page_type LAYOUT.
+          "displayName": "A String", # The human readable name of the layout in the presentation's locale.
+          "name": "A String", # The name of the layout.
+          "masterObjectId": "A String", # The object ID of the master that this layout is based on.
+        },
+        "pageElements": [ # The page elements rendered on the page.
+          { # A visual element rendered on a page.
+            "wordArt": { # A PageElement kind representing # A word art page element.
+                # word art.
+              "renderedText": "A String", # The text rendered as word art.
+            },
+            "description": "A String", # The description of the page element. Combined with title to display alt
+                # text.
+            "objectId": "A String", # The object ID for this page element. Object IDs used by
+                # google.apps.slides.v1.Page and
+                # google.apps.slides.v1.PageElement share the same namespace.
+            "title": "A String", # The title of the page element. Combined with description to display alt
+                # text.
+            "image": { # A PageElement kind representing an # An image page element.
+                # image.
+              "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
+                  # This URL is tagged with the account of the requester. Anyone with the URL
+                  # effectively accesses the image as the original requester. Access to the
+                  # image may be lost if the presentation's sharing settings change.
+              "imageProperties": { # The properties of the Image. # The properties of the image.
+                "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+                "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                    # This property is read-only.
+                  "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                      # stops.
+                      #
+                      # The colors in the gradient will replace the corresponding colors at
+                      # the same position in the color palette and apply to the image. This
+                      # property is read-only.
+                    { # A color and position in a gradient band.
+                      "color": { # A themeable solid color value. # The color of the gradient stop.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                          # fully opaque.
+                      "position": 3.14, # The relative position of the color stop in the gradient band measured
+                          # in percentage. The value should be in the interval [0.0, 1.0].
+                    },
+                  ],
+                  "name": "A String", # The name of the recolor effect.
+                      #
+                      # The name is determined from the `recolor_stops` by matching the gradient
+                      # against the colors in the page's current color scheme. This property is
+                      # read-only.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                    # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                    # This property is read-only.
+                "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                    # This property is read-only.
+                    # Image.
+                    #
+                    # The crop properties is represented by the offsets of four edges which define
+                    # a crop rectangle. The offsets are measured in percentage from the
+                    # corresponding edges of the object's original bounding rectangle towards
+                    # inside, relative to the object's original dimensions.
+                    #
+                    # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                    # rectangle is positioned inside of the object's original bounding rectangle.
+                    # - If the offset is negative or greater than 1, the corresponding edge of crop
+                    # rectangle is positioned outside of the object's original bounding rectangle.
+                    # - If the left edge of the crop rectangle is on the right side of its right
+                    # edge, the object will be flipped horizontally.
+                    # - If the top edge of the crop rectangle is below its bottom edge, the object
+                    # will be flipped vertically.
+                    # - If all offsets and rotation angle is 0, the object is not cropped.
+                    #
+                    # After cropping, the content in the crop rectangle will be stretched to fit
+                    # its container.
+                  "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                      # the right of the original bounding rectangle left edge, relative to the
+                      # object's original width.
+                  "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                      # Rotation angle is applied after the offset.
+                  "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                      # to the left of the original bounding rectangle right edge, relative to the
+                      # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
+                },
+                "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                    # is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                    # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+              },
+            },
+            "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
+                # to transform source coordinates (x,y) into destination coordinates (x', y')
+                # according to:
+                #
+                #       x'  x  =   shear_y  scale_y  translate_y
+                #       1  [ 1 ]
+                #
+                # After transformation,
+                #
+                #      x' = scale_x * x + shear_x * y + translate_x;
+                #      y' = scale_y * y + shear_y * x + translate_y;
+                #
+                # This message is therefore composed of these six matrix elements.
+              "translateX": 3.14, # The X coordinate translation element.
+              "translateY": 3.14, # The Y coordinate translation element.
+              "scaleX": 3.14, # The X coordinate scaling element.
+              "scaleY": 3.14, # The Y coordinate scaling element.
+              "shearY": 3.14, # The Y coordinate shearing element.
+              "shearX": 3.14, # The X coordinate shearing element.
+              "unit": "A String", # The units for translate elements.
+            },
+            "shape": { # A PageElement kind representing a # A generic shape.
+                # generic shape that does not have a more specific classification.
+              "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
+                  # text box or rectangle) or a table cell in a page.
+                "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                  "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                      # associated with a list. A paragraph that is part of a list has an implicit
+                      # reference to that list's ID.
+                    "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                        # level. A list has at most nine levels of nesting, so the possible values
+                        # for the keys of this map are 0 through 8, inclusive.
+                      "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                          # level of nesting.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
+                          },
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                        },
+                      },
+                    },
+                    "listId": "A String", # The ID of the list.
+                  },
+                },
+                "textElements": [ # The text contents broken down into its component parts, including styling
+                    # information. This property is read-only.
+                  { # A TextElement describes the content of a range of indices in the text content
+                      # of a Shape or TableCell.
+                    "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                        # replaced with content that can change over time.
+                      "content": "A String", # The rendered content of this auto text, if available.
+                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                            #
+                            # This field is an extension of `font_family` meant to support explicit font
+                            # weights without breaking backwards compatibility. As such, when reading the
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
+                        },
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                      },
+                      "type": "A String", # The type of this auto text.
+                    },
+                    "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                        # units.
+                    "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                    "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                        #
+                        # The `start_index` and `end_index` of this TextElement represent the
+                        # range of the paragraph. Other TextElements with an index range contained
+                        # inside this paragraph's range are considered to be part of this
+                        # paragraph. The range of indices of two separate paragraphs will never
+                        # overlap.
+                      "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                          # inherited from the parent. Which paragraph styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A paragraph not in a list will inherit its paragraph style from the
+                          #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                          # * A paragraph in a list will inherit its paragraph style from the paragraph
+                          #   at its corresponding nesting level of the list inside the parent
+                          #   placeholder.
+                          #
+                          # Inherited paragraph styles are represented as unset fields in this message.
+                        "spacingMode": "A String", # The spacing mode for the paragraph.
+                        "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                            # LEFT_TO_RIGHT since
+                            # text direction is not inherited.
+                        "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                            # inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                            # is represented as 100.0. If unset, the value is inherited from the parent.
+                        "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                            # the start of the text, based on the current text direction. If unset, the
+                            # value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                            # inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                            # the end of the text, based on the current text direction. If unset, the
+                            # value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                            # If unset, the value is inherited from the parent.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "alignment": "A String", # The text alignment for this paragraph.
+                      },
+                      "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                          # belong to a list.
+                        "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                        "listId": "A String", # The ID of the list this paragraph belongs to.
+                        "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
+                          },
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                        },
+                        "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                      },
+                    },
+                    "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                        # in the run have the same TextStyle.
+                        #
+                        # The `start_index` and `end_index` of TextRuns will always be fully
+                        # contained in the index range of a single `paragraph_marker` TextElement.
+                        # In other words, a TextRun will never span multiple paragraphs.
+                        # styling.
+                      "content": "A String", # The text of this run.
+                      "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                          #
+                          # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                          # inherited from the parent. Which text styles are inherited depend on the
+                          # nesting level of lists:
+                          #
+                          # * A text run in a paragraph that is not in a list will inherit its text style
+                          #   from the the newline character in the paragraph at the 0 nesting level of
+                          #   the list inside the parent placeholder.
+                          # * A text run in a paragraph that is in a list will inherit its text style
+                          #   from the newline character in the paragraph at its corresponding nesting
+                          #   level of the list inside the parent placeholder.
+                          #
+                          # Inherited text styles are represented as unset fields in this message. If
+                          # text is contained in a shape without a parent placeholder, unsetting these
+                          # fields will revert the style to a value matching the defaults in the Slides
+                          # editor.
+                        "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "bold": True or False, # Whether or not the text is rendered as bold.
+                        "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                            #
+                            # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                            # rendered in a smaller font size, computed based on the `font_size` field.
+                            # The `font_size` itself is not affected by changes in this field.
+                        "strikethrough": True or False, # Whether or not the text is struck through.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                            #
+                            # This field is an extension of `font_family` meant to support explicit font
+                            # weights without breaking backwards compatibility. As such, when reading the
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
+                        },
+                        "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                        "fontFamily": "A String", # The font family of the text.
+                            #
+                            # The font family can be any font from the Font menu in Slides or from
+                            # [Google Fonts] (https://fonts.google.com/). If the font name is
+                            # unrecognized, the text is rendered in `Arial`.
+                            #
+                            # Some fonts can affect the weight of the text. If an update request
+                            # specifies values for both `font_family` and `bold`, the explicitly-set
+                            # `bold` value is used.
+                        "italic": True or False, # Whether or not the text is italicized.
+                        "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                            # are not inherited from parent text.
+                            #
+                            # Changing the link in an update request causes some other changes to the
+                            # text style of the range:
+                            #
+                            # * When setting a link, the text foreground color will be set to
+                            #   ThemeColorType.HYPERLINK and the text will
+                            #   be underlined. If these fields are modified in the same
+                            #   request, those values will be used instead of the link defaults.
+                            # * Setting a link on a text range that overlaps with an existing link will
+                            #   also update the existing link to point to the new URL.
+                            # * Links are not settable on newline characters. As a result, setting a link
+                            #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                            #   will separate the newline character(s) into their own text runs. The
+                            #   link will be applied separately to the runs before and after the newline.
+                            # * Removing a link will update the text style of the range to match the
+                            #   style of the preceding text (or the default text styles if the preceding
+                            #   text is another link) unless different styles are being set in the same
+                            #   request.
+                          "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                          "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                              # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                            # transparent, depending on if the `opaque_color` field in it is set.
+                          "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                              # a transparent color.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                            # points.
+                          "magnitude": 3.14, # The magnitude.
+                          "unit": "A String", # The units for magnitude.
+                        },
+                        "underline": True or False, # Whether or not the text is underlined.
+                      },
+                    },
+                  },
+                ],
+              },
+              "shapeProperties": { # The properties of a Shape. # The properties of the shape.
+                  #
+                  # If the shape is a placeholder shape as determined by the
+                  # placeholder field, then these
+                  # properties may be inherited from a parent placeholder shape.
+                  # Determining the rendered value of the property depends on the corresponding
+                  # property_state field value.
+                "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
+                    # a parent placeholder if it exists. If the shape has no parent, then the
+                    # default shadow matches the defaults for new shapes created in the Slides
+                    # editor. This property is read-only.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "color": { # A themeable solid color value. # The shadow color value.
+                    "themeColor": "A String", # An opaque theme color.
+                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                    },
+                  },
+                  "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                      # relative to the alignment position.
+                      # to transform source coordinates (x,y) into destination coordinates (x', y')
+                      # according to:
+                      #
+                      #       x'  x  =   shear_y  scale_y  translate_y
+                      #       1  [ 1 ]
+                      #
+                      # After transformation,
+                      #
+                      #      x' = scale_x * x + shear_x * y + translate_x;
+                      #      y' = scale_y * y + shear_y * x + translate_y;
+                      #
+                      # This message is therefore composed of these six matrix elements.
+                    "translateX": 3.14, # The X coordinate translation element.
+                    "translateY": 3.14, # The Y coordinate translation element.
+                    "scaleX": 3.14, # The X coordinate scaling element.
+                    "scaleY": 3.14, # The Y coordinate scaling element.
+                    "shearY": 3.14, # The Y coordinate shearing element.
+                    "shearX": 3.14, # The X coordinate shearing element.
+                    "unit": "A String", # The units for translate elements.
+                  },
+                  "propertyState": "A String", # The shadow property state.
+                      #
+                      # Updating the the shadow on a page element will implicitly update this field
+                      # to `RENDERED`, unless another value is specified in the same request. To
+                      # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                      # case, any other shadow fields set in the same request will be ignored.
+                  "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                      # shadow becomes.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                  "type": "A String", # The type of the shadow.
+                  "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                      # scale and skew of the shadow.
+                  "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                },
+                "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
+                    # inherited from a parent placeholder if it exists. If the shape has no
+                    # parent, then the default background fill depends on the shape type,
+                    # matching the defaults for new shapes created in the Slides editor.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                  "propertyState": "A String", # The background fill property state.
+                      #
+                      # Updating the the fill on a shape will implicitly update this field to
+                      # `RENDERED`, unless another value is specified in the same request. To
+                      # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
+                      # any other fill fields set in the same request will be ignored.
+                },
+                "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
+                    # are not inherited from parent placeholders.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
+                    # parent placeholder if it exists. If the shape has no parent, then the
+                    # default outline depends on the shape type, matching the defaults for
+                    # new shapes created in the Slides editor.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+              "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
+                  # layouts and masters.
+                  #
+                  # If set, the shape is a placeholder shape and any inherited properties
+                  # can be resolved by looking at the parent placeholder identified by the
+                  # Placeholder.parent_object_id field.
+                "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                    # If unset, the parent placeholder shape does not exist, so the shape does
+                    # not inherit properties from any other shape.
+                "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                    # the same page, they would have different index values.
+                "type": "A String", # The type of the placeholder.
+              },
+              "shapeType": "A String", # The type of the shape.
+            },
+            "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
+                # represented as images.
+                # a linked chart embedded from Google Sheets.
+              "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                  # minutes. This URL is tagged with the account of the requester. Anyone with
+                  # the URL effectively accesses the image as the original requester. Access to
+                  # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
+                "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
+                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                      # This property is read-only.
+                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
+                      { # A color and position in a gradient band.
+                        "color": { # A themeable solid color value. # The color of the gradient stop.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                            # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
+                      },
+                    ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                      # This property is read-only.
+                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                      # This property is read-only.
+                      # Image.
+                      #
+                      # The crop properties is represented by the offsets of four edges which define
+                      # a crop rectangle. The offsets are measured in percentage from the
+                      # corresponding edges of the object's original bounding rectangle towards
+                      # inside, relative to the object's original dimensions.
+                      #
+                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                      # rectangle is positioned inside of the object's original bounding rectangle.
+                      # - If the offset is negative or greater than 1, the corresponding edge of crop
+                      # rectangle is positioned outside of the object's original bounding rectangle.
+                      # - If the left edge of the crop rectangle is on the right side of its right
+                      # edge, the object will be flipped horizontally.
+                      # - If the top edge of the crop rectangle is below its bottom edge, the object
+                      # will be flipped vertically.
+                      # - If all offsets and rotation angle is 0, the object is not cropped.
+                      #
+                      # After cropping, the content in the crop rectangle will be stretched to fit
+                      # its container.
+                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                        # the right of the original bounding rectangle left edge, relative to the
+                        # object's original width.
+                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                        # Rotation angle is applied after the offset.
+                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                        # to the left of the original bounding rectangle right edge, relative to the
+                        # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
+                  },
+                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                      # is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                },
+              },
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
+            },
+            "video": { # A PageElement kind representing a # A video page element.
+                # video.
+              "url": "A String", # An URL to a video. The URL is valid as long as the source video
+                  # exists and sharing settings do not change.
+              "videoProperties": { # The properties of the Video. # The properties of the video.
+                "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
+                    # videos created in the Slides editor.
+                    #
+                    # If these fields are unset, they may be inherited from a parent placeholder
+                    # if it exists. If there is no parent, the fields will default to the value
+                    # used for new page elements created in the Slides editor, which may depend on
+                    # the page element kind.
+                  "outlineFill": { # The fill of the outline. # The fill of the outline.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "propertyState": "A String", # The outline property state.
+                      #
+                      # Updating the the outline on a page element will implicitly update this
+                      # field to`RENDERED`, unless another value is specified in the same request.
+                      # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                      # this case, any other outline fields set in the same request will be
+                      # ignored.
+                  "dashStyle": "A String", # The dash style of the outline.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+              "id": "A String", # The video source's unique identifier for this video.
+              "source": "A String", # The video source.
+            },
+            "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
+                # joined collection of PageElements.
+              "children": [ # The collection of elements in the group. The minimum size of a group is 2.
+                # Object with schema name: PageElement
+              ],
+            },
+            "table": { # A PageElement kind representing a # A table page element.
+                # table.
+              "tableColumns": [ # Properties of each column.
+                { # Properties of each column in a table.
+                  "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              ],
+              "tableRows": [ # Properties and contents of each row.
+                  #
+                  # Cells that span multiple rows are contained in only one of these rows and
+                  # have a row_span greater
+                  # than 1.
+                { # Properties and contents of each row in a table.
+                  "tableCells": [ # Properties and contents of each cell.
+                      #
+                      # Cells that span multiple columns are represented only once with a
+                      # column_span greater
+                      # than 1. As a result, the length of this collection does not always match
+                      # the number of columns of the entire table.
+                    { # Properties and contents of each table cell.
+                      "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
+                          # text box or rectangle) or a table cell in a page.
+                        "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                          "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                              # associated with a list. A paragraph that is part of a list has an implicit
+                              # reference to that list's ID.
+                            "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                # level. A list has at most nine levels of nesting, so the possible values
+                                # for the keys of this map are 0 through 8, inclusive.
+                              "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                  # level of nesting.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
+                                  },
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                },
+                              },
+                            },
+                            "listId": "A String", # The ID of the list.
+                          },
+                        },
+                        "textElements": [ # The text contents broken down into its component parts, including styling
+                            # information. This property is read-only.
+                          { # A TextElement describes the content of a range of indices in the text content
+                              # of a Shape or TableCell.
+                            "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                                # replaced with content that can change over time.
+                              "content": "A String", # The rendered content of this auto text, if available.
+                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                    #
+                                    # This field is an extension of `font_family` meant to support explicit font
+                                    # weights without breaking backwards compatibility. As such, when reading the
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
+                                },
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                              },
+                              "type": "A String", # The type of this auto text.
+                            },
+                            "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                                # units.
+                            "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                            "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                                #
+                                # The `start_index` and `end_index` of this TextElement represent the
+                                # range of the paragraph. Other TextElements with an index range contained
+                                # inside this paragraph's range are considered to be part of this
+                                # paragraph. The range of indices of two separate paragraphs will never
+                                # overlap.
+                              "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                                  # inherited from the parent. Which paragraph styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A paragraph not in a list will inherit its paragraph style from the
+                                  #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                                  # * A paragraph in a list will inherit its paragraph style from the paragraph
+                                  #   at its corresponding nesting level of the list inside the parent
+                                  #   placeholder.
+                                  #
+                                  # Inherited paragraph styles are represented as unset fields in this message.
+                                "spacingMode": "A String", # The spacing mode for the paragraph.
+                                "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                    # LEFT_TO_RIGHT since
+                                    # text direction is not inherited.
+                                "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                    # inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                                    # is represented as 100.0. If unset, the value is inherited from the parent.
+                                "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                    # the start of the text, based on the current text direction. If unset, the
+                                    # value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                    # inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                    # the end of the text, based on the current text direction. If unset, the
+                                    # value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                                    # If unset, the value is inherited from the parent.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "alignment": "A String", # The text alignment for this paragraph.
+                              },
+                              "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                                  # belong to a list.
+                                "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                                "listId": "A String", # The ID of the list this paragraph belongs to.
+                                "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
+                                  },
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                },
+                                "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                              },
+                            },
+                            "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                                # in the run have the same TextStyle.
+                                #
+                                # The `start_index` and `end_index` of TextRuns will always be fully
+                                # contained in the index range of a single `paragraph_marker` TextElement.
+                                # In other words, a TextRun will never span multiple paragraphs.
+                                # styling.
+                              "content": "A String", # The text of this run.
+                              "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                                  #
+                                  # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                  # inherited from the parent. Which text styles are inherited depend on the
+                                  # nesting level of lists:
+                                  #
+                                  # * A text run in a paragraph that is not in a list will inherit its text style
+                                  #   from the the newline character in the paragraph at the 0 nesting level of
+                                  #   the list inside the parent placeholder.
+                                  # * A text run in a paragraph that is in a list will inherit its text style
+                                  #   from the newline character in the paragraph at its corresponding nesting
+                                  #   level of the list inside the parent placeholder.
+                                  #
+                                  # Inherited text styles are represented as unset fields in this message. If
+                                  # text is contained in a shape without a parent placeholder, unsetting these
+                                  # fields will revert the style to a value matching the defaults in the Slides
+                                  # editor.
+                                "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "bold": True or False, # Whether or not the text is rendered as bold.
+                                "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                    #
+                                    # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                    # rendered in a smaller font size, computed based on the `font_size` field.
+                                    # The `font_size` itself is not affected by changes in this field.
+                                "strikethrough": True or False, # Whether or not the text is struck through.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                    #
+                                    # This field is an extension of `font_family` meant to support explicit font
+                                    # weights without breaking backwards compatibility. As such, when reading the
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
+                                },
+                                "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                "fontFamily": "A String", # The font family of the text.
+                                    #
+                                    # The font family can be any font from the Font menu in Slides or from
+                                    # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                    # unrecognized, the text is rendered in `Arial`.
+                                    #
+                                    # Some fonts can affect the weight of the text. If an update request
+                                    # specifies values for both `font_family` and `bold`, the explicitly-set
+                                    # `bold` value is used.
+                                "italic": True or False, # Whether or not the text is italicized.
+                                "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                    # are not inherited from parent text.
+                                    #
+                                    # Changing the link in an update request causes some other changes to the
+                                    # text style of the range:
+                                    #
+                                    # * When setting a link, the text foreground color will be set to
+                                    #   ThemeColorType.HYPERLINK and the text will
+                                    #   be underlined. If these fields are modified in the same
+                                    #   request, those values will be used instead of the link defaults.
+                                    # * Setting a link on a text range that overlaps with an existing link will
+                                    #   also update the existing link to point to the new URL.
+                                    # * Links are not settable on newline characters. As a result, setting a link
+                                    #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                    #   will separate the newline character(s) into their own text runs. The
+                                    #   link will be applied separately to the runs before and after the newline.
+                                    # * Removing a link will update the text style of the range to match the
+                                    #   style of the preceding text (or the default text styles if the preceding
+                                    #   text is another link) unless different styles are being set in the same
+                                    #   request.
+                                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                      # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                    # transparent, depending on if the `opaque_color` field in it is set.
+                                  "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                      # a transparent color.
+                                    "themeColor": "A String", # An opaque theme color.
+                                    "rgbColor": { # An RGB color. # An opaque RGB color.
+                                      "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                      "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                      "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                    },
+                                  },
+                                },
+                                "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                    # points.
+                                  "magnitude": 3.14, # The magnitude.
+                                  "unit": "A String", # The units for magnitude.
+                                },
+                                "underline": True or False, # Whether or not the text is underlined.
+                              },
+                            },
+                          },
+                        ],
+                      },
+                      "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
+                        "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
+                            # for newly created table cells in the Slides editor.
+                          "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                              # specified color value.
+                              #
+                              # If any field is unset, its value may be inherited from a parent placeholder
+                              # if it exists.
+                            "color": { # A themeable solid color value. # The color value of the solid fill.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                            "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                                # That is, the final pixel color is defined by the equation:
+                                #
+                                #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                                #
+                                # This means that a value of 1.0 corresponds to a solid color, whereas
+                                # a value of 0.0 corresponds to a completely transparent color.
+                          },
+                          "propertyState": "A String", # The background fill property state.
+                              #
+                              # Updating the the fill on a table cell will implicitly update this field
+                              # to `RENDERED`, unless another value is specified in the same request. To
+                              # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
+                              # case, any other fill fields set in the same request will be ignored.
+                        },
+                      },
+                      "rowSpan": 42, # Row span of the cell.
+                      "columnSpan": 42, # Column span of the cell.
+                      "location": { # A location of a single table cell within a table. # The location of the cell within the table.
+                        "rowIndex": 42, # The 0-based row index.
+                        "columnIndex": 42, # The 0-based column index.
+                      },
+                    },
+                  ],
+                  "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              ],
+              "rows": 42, # Number of rows in the table.
+              "columns": 42, # Number of columns in the table.
+            },
+            "line": { # A PageElement kind representing a # A line page element.
+                # line, curved connector, or bent connector.
+              "lineProperties": { # The properties of the Line. # The properties of the line.
+                  #
+                  # When unset, these fields default to values that match the appearance of
+                  # new lines created in the Slides editor.
+                "dashStyle": "A String", # The dash style of the line.
+                "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "endArrow": "A String", # The style of the arrow at the end of the line.
+                "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+                  "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                  "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                      # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
+                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                      # addressed by its position.
+                },
+                "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                    # lines created in the Slides editor.
+                  "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                      # specified color value.
+                      #
+                      # If any field is unset, its value may be inherited from a parent placeholder
+                      # if it exists.
+                    "color": { # A themeable solid color value. # The color value of the solid fill.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                        # That is, the final pixel color is defined by the equation:
+                        #
+                        #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                        #
+                        # This means that a value of 1.0 corresponds to a solid color, whereas
+                        # a value of 0.0 corresponds to a completely transparent color.
+                  },
+                },
+                "startArrow": "A String", # The style of the arrow at the beginning of the line.
+              },
+              "lineType": "A String", # The type of the line.
+            },
+            "size": { # A width and height. # The size of the page element.
+              "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+              "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                "magnitude": 3.14, # The magnitude.
+                "unit": "A String", # The units for magnitude.
+              },
+            },
+          },
+        ],
+        "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+            # relevant for pages with page_type NOTES.
+          "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+              # notes for the corresponding slide.
+              # The actual shape may not always exist on the notes page. Inserting text
+              # using this object ID will automatically create the shape. In this case, the
+              # actual shape may have different object ID. The `GetPresentation` or
+              # `GetPage` action will always return the latest object ID.
+        },
+        "objectId": "A String", # The object ID for this page. Object IDs used by
+            # Page and
+            # PageElement share the same namespace.
+        "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+            # update requests to assert that the presentation revision hasn't changed
+            # since the last read operation. Only populated if the user has edit access
+            # to the presentation.
+            #
+            # The format of the revision ID may change over time, so it should be treated
+            # opaquely. A returned revision ID is only guaranteed to be valid for 24
+            # hours after it has been returned and cannot be shared across users. If the
+            # revision ID is unchanged between calls, then the presentation has not
+            # changed. Conversely, a changed ID (for the same presentation and user)
+            # usually means the presentation has been updated; however, a changed ID can
+            # also be due to internal factors such as ID format changes.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -7965,10 +8520,10 @@
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -7999,17 +8554,17 @@
                   "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                       # the right of the original bounding rectangle left edge, relative to the
                       # object's original width.
-                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                      # below the original bounding rectangle top edge, relative to the object's
-                      # original height.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
                 },
                 "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                     # is read-only.
@@ -8139,26 +8694,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -8192,10 +8768,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -8266,26 +8842,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -8319,10 +8916,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -8372,8 +8969,8 @@
                           # Inherited paragraph styles are represented as unset fields in this message.
                         "spacingMode": "A String", # The spacing mode for the paragraph.
                         "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                            # LEFT_TO_RIGHT
-                            # since text direction is not inherited.
+                            # LEFT_TO_RIGHT since
+                            # text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                             # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
@@ -8445,26 +9042,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -8498,10 +9116,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -8571,26 +9189,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -8624,10 +9263,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -8752,10 +9391,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -8814,8 +9453,8 @@
                 "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                     # If unset, the parent placeholder shape does not exist, so the shape does
                     # not inherit properties from any other shape.
-                "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                    # in the same page, they would have different index values.
+                "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                    # the same page, they would have different index values.
                 "type": "A String", # The type of the placeholder.
               },
               "shapeType": "A String", # The type of the shape.
@@ -8823,12 +9462,11 @@
             "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                 # represented as images.
                 # a linked chart embedded from Google Sheets.
-              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                  # embedded.
               "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                   # minutes. This URL is tagged with the account of the requester. Anyone with
                   # the URL effectively accesses the image as the original requester. Access to
                   # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -8906,10 +9544,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -8940,17 +9578,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -9010,14 +9648,13 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
-              "source": "A String", # The video source.
-              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -9063,6 +9700,8 @@
                   },
                 },
               },
+              "id": "A String", # The video source's unique identifier for this video.
+              "source": "A String", # The video source.
             },
             "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                 # joined collection of PageElements.
@@ -9140,26 +9779,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -9193,10 +9853,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -9267,26 +9927,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -9320,10 +10001,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -9373,8 +10054,8 @@
                                   # Inherited paragraph styles are represented as unset fields in this message.
                                 "spacingMode": "A String", # The spacing mode for the paragraph.
                                 "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                    # LEFT_TO_RIGHT
-                                    # since text direction is not inherited.
+                                    # LEFT_TO_RIGHT since
+                                    # text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                     # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
@@ -9446,26 +10127,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -9499,10 +10201,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -9572,26 +10274,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -9625,10 +10348,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -9718,10 +10441,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -9784,9 +10507,11 @@
             #
             # The format of the revision ID may change over time, so it should be treated
             # opaquely. A returned revision ID is only guaranteed to be valid for 24
-            # hours after it has been returned and cannot be shared across
-            # users. Callers can assume that if two revision IDs are equal then the
-            # presentation has not changed.
+            # hours after it has been returned and cannot be shared across users. If the
+            # revision ID is unchanged between calls, then the presentation has not
+            # changed. Conversely, a changed ID (for the same presentation and user)
+            # usually means the presentation has been updated; however, a changed ID can
+            # also be due to internal factors such as ID format changes.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -9894,2057 +10619,6 @@
 
     { # A Google Slides presentation.
       "presentationId": "A String", # The ID of the presentation.
-      "masters": [ # The slide masters in the presentation. A slide master contains all common
-          # page elements and the common properties for a set of layouts. They serve
-          # three purposes:
-          #
-          # - Placeholder shapes on a master contain the default text styles and shape
-          #   properties of all placeholder shapes on pages that use that master.
-          # - The master page properties define the common page properties inherited by
-          #   its layouts.
-          # - Any other shapes on the master slide will appear on all slides using that
-          #   master, regardless of their layout.
-        { # A page in a presentation.
-          "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
-              # relevant for pages with page_type LAYOUT.
-            "displayName": "A String", # The human readable name of the layout in the presentation's locale.
-            "name": "A String", # The name of the layout.
-            "masterObjectId": "A String", # The object ID of the master that this layout is based on.
-          },
-          "pageElements": [ # The page elements rendered on the page.
-            { # A visual element rendered on a page.
-              "wordArt": { # A PageElement kind representing # A word art page element.
-                  # word art.
-                "renderedText": "A String", # The text rendered as word art.
-              },
-              "description": "A String", # The description of the page element. Combined with title to display alt
-                  # text.
-              "objectId": "A String", # The object ID for this page element. Object IDs used by
-                  # google.apps.slides.v1.Page and
-                  # google.apps.slides.v1.PageElement share the same namespace.
-              "title": "A String", # The title of the page element. Combined with description to display alt
-                  # text.
-              "image": { # A PageElement kind representing an # An image page element.
-                  # image.
-                "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
-                    # This URL is tagged with the account of the requester. Anyone with the URL
-                    # effectively accesses the image as the original requester. Access to the
-                    # image may be lost if the presentation's sharing settings change.
-                "imageProperties": { # The properties of the Image. # The properties of the image.
-                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
-                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
-                      # This property is read-only.
-                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops.
-                        #
-                        # The colors in the gradient will replace the corresponding colors at
-                        # the same position in the color palette and apply to the image. This
-                        # property is read-only.
-                      { # A color and position in a gradient band.
-                        "color": { # A themeable solid color value. # The color of the gradient stop.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
-                            # fully opaque.
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
-                      },
-                    ],
-                    "name": "A String", # The name of the recolor effect.
-                        #
-                        # The name is determined from the `recolor_stops` by matching the gradient
-                        # against the colors in the page's current color scheme. This property is
-                        # read-only.
-                  },
-                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
-                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
-                      # This property is read-only.
-                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
-                      # This property is read-only.
-                      # Image.
-                      #
-                      # The crop properties is represented by the offsets of four edges which define
-                      # a crop rectangle. The offsets are measured in percentage from the
-                      # corresponding edges of the object's original bounding rectangle towards
-                      # inside, relative to the object's original dimensions.
-                      #
-                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
-                      # rectangle is positioned inside of the object's original bounding rectangle.
-                      # - If the offset is negative or greater than 1, the corresponding edge of crop
-                      # rectangle is positioned outside of the object's original bounding rectangle.
-                      # - If the left edge of the crop rectangle is on the right side of its right
-                      # edge, the object will be flipped horizontally.
-                      # - If the top edge of the crop rectangle is below its bottom edge, the object
-                      # will be flipped vertically.
-                      # - If all offsets and rotation angle is 0, the object is not cropped.
-                      #
-                      # After cropping, the content in the crop rectangle will be stretched to fit
-                      # its container.
-                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
-                        # the right of the original bounding rectangle left edge, relative to the
-                        # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
-                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                        # Rotation angle is applied after the offset.
-                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
-                        # to the left of the original bounding rectangle right edge, relative to the
-                        # object's original width.
-                  },
-                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
-                      # is read-only.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "color": { # A themeable solid color value. # The shadow color value.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                        # relative to the alignment position.
-                        # to transform source coordinates (x,y) into destination coordinates (x', y')
-                        # according to:
-                        #
-                        #       x'  x  =   shear_y  scale_y  translate_y
-                        #       1  [ 1 ]
-                        #
-                        # After transformation,
-                        #
-                        #      x' = scale_x * x + shear_x * y + translate_x;
-                        #      y' = scale_y * y + shear_y * x + translate_y;
-                        #
-                        # This message is therefore composed of these six matrix elements.
-                      "translateX": 3.14, # The X coordinate translation element.
-                      "translateY": 3.14, # The Y coordinate translation element.
-                      "scaleX": 3.14, # The X coordinate scaling element.
-                      "scaleY": 3.14, # The Y coordinate scaling element.
-                      "shearY": 3.14, # The Y coordinate shearing element.
-                      "shearX": 3.14, # The X coordinate shearing element.
-                      "unit": "A String", # The units for translate elements.
-                    },
-                    "propertyState": "A String", # The shadow property state.
-                        #
-                        # Updating the the shadow on a page element will implicitly update this field
-                        # to `RENDERED`, unless another value is specified in the same request. To
-                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                        # case, any other shadow fields set in the same request will be ignored.
-                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                        # shadow becomes.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                    "type": "A String", # The type of the shadow.
-                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                        # scale and skew of the shadow.
-                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                  },
-                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
-                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                },
-              },
-              "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
-                  # to transform source coordinates (x,y) into destination coordinates (x', y')
-                  # according to:
-                  #
-                  #       x'  x  =   shear_y  scale_y  translate_y
-                  #       1  [ 1 ]
-                  #
-                  # After transformation,
-                  #
-                  #      x' = scale_x * x + shear_x * y + translate_x;
-                  #      y' = scale_y * y + shear_y * x + translate_y;
-                  #
-                  # This message is therefore composed of these six matrix elements.
-                "translateX": 3.14, # The X coordinate translation element.
-                "translateY": 3.14, # The Y coordinate translation element.
-                "scaleX": 3.14, # The X coordinate scaling element.
-                "scaleY": 3.14, # The Y coordinate scaling element.
-                "shearY": 3.14, # The Y coordinate shearing element.
-                "shearX": 3.14, # The X coordinate shearing element.
-                "unit": "A String", # The units for translate elements.
-              },
-              "shape": { # A PageElement kind representing a # A generic shape.
-                  # generic shape that does not have a more specific classification.
-                "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
-                    # text box or rectangle) or a table cell in a page.
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is rendered as bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "fontFamily": "A String", # The font family of the text.
-                                  #
-                                  # The font family can be any font from the Font menu in Slides or from
-                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                  # unrecognized, the text is rendered in `Arial`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
-                  "textElements": [ # The text contents broken down into its component parts, including styling
-                      # information. This property is read-only.
-                    { # A TextElement describes the content of a range of indices in the text content
-                        # of a Shape or TableCell.
-                      "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
-                          # replaced with content that can change over time.
-                        "content": "A String", # The rendered content of this auto text, if available.
-                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is rendered as bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                        },
-                        "type": "A String", # The type of this auto text.
-                      },
-                      "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
-                          # units.
-                      "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
-                      "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
-                          #
-                          # The `start_index` and `end_index` of this TextElement represent the
-                          # range of the paragraph. Other TextElements with an index range contained
-                          # inside this paragraph's range are considered to be part of this
-                          # paragraph. The range of indices of two separate paragraphs will never
-                          # overlap.
-                        "style": { # Styles that apply to a whole paragraph. # The paragraph's style
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
-                            # inherited from the parent. Which paragraph styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A paragraph not in a list will inherit its paragraph style from the
-                            #   paragraph at the 0 nesting level of the list inside the parent placeholder.
-                            # * A paragraph in a list will inherit its paragraph style from the paragraph
-                            #   at its corresponding nesting level of the list inside the parent
-                            #   placeholder.
-                            #
-                            # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph.
-                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                              # LEFT_TO_RIGHT
-                              # since text direction is not inherited.
-                          "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
-                              # is represented as 100.0. If unset, the value is inherited from the parent.
-                          "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                              # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                              # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "alignment": "A String", # The text alignment for this paragraph.
-                        },
-                        "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
-                            # belong to a list.
-                          "nestingLevel": 42, # The nesting level of this paragraph in the list.
-                          "listId": "A String", # The ID of the list this paragraph belongs to.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is rendered as bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "fontFamily": "A String", # The font family of the text.
-                                  #
-                                  # The font family can be any font from the Font menu in Slides or from
-                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                  # unrecognized, the text is rendered in `Arial`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                          },
-                          "glyph": "A String", # The rendered bullet glyph for this paragraph.
-                        },
-                      },
-                      "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
-                          # in the run have the same TextStyle.
-                          #
-                          # The `start_index` and `end_index` of TextRuns will always be fully
-                          # contained in the index range of a single `paragraph_marker` TextElement.
-                          # In other words, a TextRun will never span multiple paragraphs.
-                          # styling.
-                        "content": "A String", # The text of this run.
-                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is rendered as bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                        },
-                      },
-                    },
-                  ],
-                },
-                "shapeProperties": { # The properties of a Shape. # The properties of the shape.
-                    #
-                    # If the shape is a placeholder shape as determined by the
-                    # placeholder field, then these
-                    # properties may be inherited from a parent placeholder shape.
-                    # Determining the rendered value of the property depends on the corresponding
-                    # property_state field value.
-                  "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
-                      # a parent placeholder if it exists. If the shape has no parent, then the
-                      # default shadow matches the defaults for new shapes created in the Slides
-                      # editor. This property is read-only.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "color": { # A themeable solid color value. # The shadow color value.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                        # relative to the alignment position.
-                        # to transform source coordinates (x,y) into destination coordinates (x', y')
-                        # according to:
-                        #
-                        #       x'  x  =   shear_y  scale_y  translate_y
-                        #       1  [ 1 ]
-                        #
-                        # After transformation,
-                        #
-                        #      x' = scale_x * x + shear_x * y + translate_x;
-                        #      y' = scale_y * y + shear_y * x + translate_y;
-                        #
-                        # This message is therefore composed of these six matrix elements.
-                      "translateX": 3.14, # The X coordinate translation element.
-                      "translateY": 3.14, # The Y coordinate translation element.
-                      "scaleX": 3.14, # The X coordinate scaling element.
-                      "scaleY": 3.14, # The Y coordinate scaling element.
-                      "shearY": 3.14, # The Y coordinate shearing element.
-                      "shearX": 3.14, # The X coordinate shearing element.
-                      "unit": "A String", # The units for translate elements.
-                    },
-                    "propertyState": "A String", # The shadow property state.
-                        #
-                        # Updating the the shadow on a page element will implicitly update this field
-                        # to `RENDERED`, unless another value is specified in the same request. To
-                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                        # case, any other shadow fields set in the same request will be ignored.
-                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                        # shadow becomes.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                    "type": "A String", # The type of the shadow.
-                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                        # scale and skew of the shadow.
-                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                  },
-                  "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
-                      # inherited from a parent placeholder if it exists. If the shape has no
-                      # parent, then the default background fill depends on the shape type,
-                      # matching the defaults for new shapes created in the Slides editor.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                    "propertyState": "A String", # The background fill property state.
-                        #
-                        # Updating the the fill on a shape will implicitly update this field to
-                        # `RENDERED`, unless another value is specified in the same request. To
-                        # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
-                        # any other fill fields set in the same request will be ignored.
-                  },
-                  "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
-                      # are not inherited from parent placeholders.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
-                      # parent placeholder if it exists. If the shape has no parent, then the
-                      # default outline depends on the shape type, matching the defaults for
-                      # new shapes created in the Slides editor.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                },
-                "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
-                    # layouts and masters.
-                    #
-                    # If set, the shape is a placeholder shape and any inherited properties
-                    # can be resolved by looking at the parent placeholder identified by the
-                    # Placeholder.parent_object_id field.
-                  "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
-                      # If unset, the parent placeholder shape does not exist, so the shape does
-                      # not inherit properties from any other shape.
-                  "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                      # in the same page, they would have different index values.
-                  "type": "A String", # The type of the placeholder.
-                },
-                "shapeType": "A String", # The type of the shape.
-              },
-              "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
-                  # represented as images.
-                  # a linked chart embedded from Google Sheets.
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
-                "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
-                  "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
-                    "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
-                        #
-                        # If these fields are unset, they may be inherited from a parent placeholder
-                        # if it exists. If there is no parent, the fields will default to the value
-                        # used for new page elements created in the Slides editor, which may depend on
-                        # the page element kind.
-                      "outlineFill": { # The fill of the outline. # The fill of the outline.
-                        "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                            # specified color value.
-                            #
-                            # If any field is unset, its value may be inherited from a parent placeholder
-                            # if it exists.
-                          "color": { # A themeable solid color value. # The color value of the solid fill.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                          "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                              # That is, the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color.
-                        },
-                      },
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                        "magnitude": 3.14, # The magnitude.
-                        "unit": "A String", # The units for magnitude.
-                      },
-                    },
-                    "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
-                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                    "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
-                        # This property is read-only.
-                      "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops.
-                          #
-                          # The colors in the gradient will replace the corresponding colors at
-                          # the same position in the color palette and apply to the image. This
-                          # property is read-only.
-                        { # A color and position in a gradient band.
-                          "color": { # A themeable solid color value. # The color of the gradient stop.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                          "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
-                              # fully opaque.
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
-                        },
-                      ],
-                      "name": "A String", # The name of the recolor effect.
-                          #
-                          # The name is determined from the `recolor_stops` by matching the gradient
-                          # against the colors in the page's current color scheme. This property is
-                          # read-only.
-                    },
-                    "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
-                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
-                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                          # in the presentation. There may not be a slide at this index.
-                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                          # addressed by its position.
-                    },
-                    "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
-                        # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
-                        # This property is read-only.
-                    "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
-                        # This property is read-only.
-                        # Image.
-                        #
-                        # The crop properties is represented by the offsets of four edges which define
-                        # a crop rectangle. The offsets are measured in percentage from the
-                        # corresponding edges of the object's original bounding rectangle towards
-                        # inside, relative to the object's original dimensions.
-                        #
-                        # - If the offset is in the interval (0, 1), the corresponding edge of crop
-                        # rectangle is positioned inside of the object's original bounding rectangle.
-                        # - If the offset is negative or greater than 1, the corresponding edge of crop
-                        # rectangle is positioned outside of the object's original bounding rectangle.
-                        # - If the left edge of the crop rectangle is on the right side of its right
-                        # edge, the object will be flipped horizontally.
-                        # - If the top edge of the crop rectangle is below its bottom edge, the object
-                        # will be flipped vertically.
-                        # - If all offsets and rotation angle is 0, the object is not cropped.
-                        #
-                        # After cropping, the content in the crop rectangle will be stretched to fit
-                        # its container.
-                      "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
-                          # the right of the original bounding rectangle left edge, relative to the
-                          # object's original width.
-                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                          # below the original bounding rectangle top edge, relative to the object's
-                          # original height.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
-                      "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                          # Rotation angle is applied after the offset.
-                      "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
-                          # to the left of the original bounding rectangle right edge, relative to the
-                          # object's original width.
-                    },
-                    "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
-                        # is read-only.
-                        #
-                        # If these fields are unset, they may be inherited from a parent placeholder
-                        # if it exists. If there is no parent, the fields will default to the value
-                        # used for new page elements created in the Slides editor, which may depend on
-                        # the page element kind.
-                      "color": { # A themeable solid color value. # The shadow color value.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                          # relative to the alignment position.
-                          # to transform source coordinates (x,y) into destination coordinates (x', y')
-                          # according to:
-                          #
-                          #       x'  x  =   shear_y  scale_y  translate_y
-                          #       1  [ 1 ]
-                          #
-                          # After transformation,
-                          #
-                          #      x' = scale_x * x + shear_x * y + translate_x;
-                          #      y' = scale_y * y + shear_y * x + translate_y;
-                          #
-                          # This message is therefore composed of these six matrix elements.
-                        "translateX": 3.14, # The X coordinate translation element.
-                        "translateY": 3.14, # The Y coordinate translation element.
-                        "scaleX": 3.14, # The X coordinate scaling element.
-                        "scaleY": 3.14, # The Y coordinate scaling element.
-                        "shearY": 3.14, # The Y coordinate shearing element.
-                        "shearX": 3.14, # The X coordinate shearing element.
-                        "unit": "A String", # The units for translate elements.
-                      },
-                      "propertyState": "A String", # The shadow property state.
-                          #
-                          # Updating the the shadow on a page element will implicitly update this field
-                          # to `RENDERED`, unless another value is specified in the same request. To
-                          # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                          # case, any other shadow fields set in the same request will be ignored.
-                      "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                          # shadow becomes.
-                        "magnitude": 3.14, # The magnitude.
-                        "unit": "A String", # The units for magnitude.
-                      },
-                      "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                      "type": "A String", # The type of the shadow.
-                      "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                          # scale and skew of the shadow.
-                      "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                    },
-                    "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
-                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                  },
-                },
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
-              },
-              "video": { # A PageElement kind representing a # A video page element.
-                  # video.
-                "url": "A String", # An URL to a video. The URL is valid as long as the source video
-                    # exists and sharing settings do not change.
-                "source": "A String", # The video source.
-                "id": "A String", # The video source's unique identifier for this video.
-                "videoProperties": { # The properties of the Video. # The properties of the video.
-                  "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
-                      # videos created in the Slides editor.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                },
-              },
-              "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
-                  # joined collection of PageElements.
-                "children": [ # The collection of elements in the group. The minimum size of a group is 2.
-                  # Object with schema name: PageElement
-                ],
-              },
-              "table": { # A PageElement kind representing a # A table page element.
-                  # table.
-                "tableColumns": [ # Properties of each column.
-                  { # Properties of each column in a table.
-                    "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                ],
-                "tableRows": [ # Properties and contents of each row.
-                    #
-                    # Cells that span multiple rows are contained in only one of these rows and
-                    # have a row_span greater
-                    # than 1.
-                  { # Properties and contents of each row in a table.
-                    "tableCells": [ # Properties and contents of each cell.
-                        #
-                        # Cells that span multiple columns are represented only once with a
-                        # column_span greater
-                        # than 1. As a result, the length of this collection does not always match
-                        # the number of columns of the entire table.
-                      { # Properties and contents of each table cell.
-                        "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
-                            # text box or rectangle) or a table cell in a page.
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is rendered as bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "fontFamily": "A String", # The font family of the text.
-                                          #
-                                          # The font family can be any font from the Font menu in Slides or from
-                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                          # unrecognized, the text is rendered in `Arial`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
-                          "textElements": [ # The text contents broken down into its component parts, including styling
-                              # information. This property is read-only.
-                            { # A TextElement describes the content of a range of indices in the text content
-                                # of a Shape or TableCell.
-                              "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
-                                  # replaced with content that can change over time.
-                                "content": "A String", # The rendered content of this auto text, if available.
-                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is rendered as bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                },
-                                "type": "A String", # The type of this auto text.
-                              },
-                              "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
-                                  # units.
-                              "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
-                              "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
-                                  #
-                                  # The `start_index` and `end_index` of this TextElement represent the
-                                  # range of the paragraph. Other TextElements with an index range contained
-                                  # inside this paragraph's range are considered to be part of this
-                                  # paragraph. The range of indices of two separate paragraphs will never
-                                  # overlap.
-                                "style": { # Styles that apply to a whole paragraph. # The paragraph's style
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
-                                    # inherited from the parent. Which paragraph styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A paragraph not in a list will inherit its paragraph style from the
-                                    #   paragraph at the 0 nesting level of the list inside the parent placeholder.
-                                    # * A paragraph in a list will inherit its paragraph style from the paragraph
-                                    #   at its corresponding nesting level of the list inside the parent
-                                    #   placeholder.
-                                    #
-                                    # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph.
-                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                      # LEFT_TO_RIGHT
-                                      # since text direction is not inherited.
-                                  "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
-                                      # is represented as 100.0. If unset, the value is inherited from the parent.
-                                  "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                                      # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                                      # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "alignment": "A String", # The text alignment for this paragraph.
-                                },
-                                "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
-                                    # belong to a list.
-                                  "nestingLevel": 42, # The nesting level of this paragraph in the list.
-                                  "listId": "A String", # The ID of the list this paragraph belongs to.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is rendered as bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "fontFamily": "A String", # The font family of the text.
-                                          #
-                                          # The font family can be any font from the Font menu in Slides or from
-                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                          # unrecognized, the text is rendered in `Arial`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                  },
-                                  "glyph": "A String", # The rendered bullet glyph for this paragraph.
-                                },
-                              },
-                              "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
-                                  # in the run have the same TextStyle.
-                                  #
-                                  # The `start_index` and `end_index` of TextRuns will always be fully
-                                  # contained in the index range of a single `paragraph_marker` TextElement.
-                                  # In other words, a TextRun will never span multiple paragraphs.
-                                  # styling.
-                                "content": "A String", # The text of this run.
-                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is rendered as bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                },
-                              },
-                            },
-                          ],
-                        },
-                        "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
-                          "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
-                              # for newly created table cells in the Slides editor.
-                            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                                # specified color value.
-                                #
-                                # If any field is unset, its value may be inherited from a parent placeholder
-                                # if it exists.
-                              "color": { # A themeable solid color value. # The color value of the solid fill.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                                  # That is, the final pixel color is defined by the equation:
-                                  #
-                                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                                  #
-                                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                                  # a value of 0.0 corresponds to a completely transparent color.
-                            },
-                            "propertyState": "A String", # The background fill property state.
-                                #
-                                # Updating the the fill on a table cell will implicitly update this field
-                                # to `RENDERED`, unless another value is specified in the same request. To
-                                # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
-                                # case, any other fill fields set in the same request will be ignored.
-                          },
-                        },
-                        "rowSpan": 42, # Row span of the cell.
-                        "columnSpan": 42, # Column span of the cell.
-                        "location": { # A location of a single table cell within a table. # The location of the cell within the table.
-                          "rowIndex": 42, # The 0-based row index.
-                          "columnIndex": 42, # The 0-based column index.
-                        },
-                      },
-                    ],
-                    "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                ],
-                "rows": 42, # Number of rows in the table.
-                "columns": 42, # Number of columns in the table.
-              },
-              "line": { # A PageElement kind representing a # A line page element.
-                  # line, curved connector, or bent connector.
-                "lineProperties": { # The properties of the Line. # The properties of the line.
-                    #
-                    # When unset, these fields default to values that match the appearance of
-                    # new lines created in the Slides editor.
-                  "dashStyle": "A String", # The dash style of the line.
-                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                  "endArrow": "A String", # The style of the arrow at the end of the line.
-                  "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
-                      # lines created in the Slides editor.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                  },
-                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
-                },
-                "lineType": "A String", # The type of the line.
-              },
-              "size": { # A width and height. # The size of the page element.
-                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-              },
-            },
-          ],
-          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
-              # relevant for pages with page_type NOTES.
-            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
-                # notes for the corresponding slide.
-                # The actual shape may not always exist on the notes page. Inserting text
-                # using this object ID will automatically create the shape. In this case, the
-                # actual shape may have different object ID. The `GetPresentation` or
-                # `GetPage` action will always return the latest object ID.
-          },
-          "objectId": "A String", # The object ID for this page. Object IDs used by
-              # Page and
-              # PageElement share the same namespace.
-          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
-              # update requests to assert that the presentation revision hasn't changed
-              # since the last read operation. Only populated if the user has edit access
-              # to the presentation.
-              #
-              # The format of the revision ID may change over time, so it should be treated
-              # opaquely. A returned revision ID is only guaranteed to be valid for 24
-              # hours after it has been returned and cannot be shared across
-              # users. Callers can assume that if two revision IDs are equal then the
-              # presentation has not changed.
-          "pageProperties": { # The properties of the Page. # The properties of the page.
-              #
-              # The page will inherit properties from the parent page. Depending on the page
-              # type the hierarchy is defined in either
-              # SlideProperties or
-              # LayoutProperties.
-            "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
-                # from a parent page if it exists. If the page has no parent, then the
-                # background fill defaults to the corresponding fill in the Slides editor.
-              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                  # specified color value.
-                  #
-                  # If any field is unset, its value may be inherited from a parent placeholder
-                  # if it exists.
-                "color": { # A themeable solid color value. # The color value of the solid fill.
-                  "themeColor": "A String", # An opaque theme color.
-                  "rgbColor": { # An RGB color. # An opaque RGB color.
-                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                  },
-                },
-                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                    # That is, the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color.
-              },
-              "propertyState": "A String", # The background fill property state.
-                  #
-                  # Updating the the fill on a page will implicitly update this field to
-                  # `RENDERED`, unless another value is specified in the same request. To
-                  # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
-                  # any other fill fields set in the same request will be ignored.
-              "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
-                  # the specified picture. The picture is stretched to fit its container.
-                "contentUrl": "A String", # Reading the content_url:
-                    #
-                    # An URL to a picture with a default lifetime of 30 minutes.
-                    # This URL is tagged with the account of the requester. Anyone with the URL
-                    # effectively accesses the picture as the original requester. Access to the
-                    # picture may be lost if the presentation's sharing settings change.
-                    #
-                    # Writing the content_url:
-                    #
-                    # The picture is fetched once at insertion time and a copy is stored for
-                    # display inside the presentation. Pictures must be less than 50MB in size,
-                    # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
-                    # format.
-                "size": { # A width and height. # The original size of the picture fill. This field is read-only.
-                  "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                  "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-              },
-            },
-            "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
-                # a parent page. If the page has no parent, the color scheme uses a default
-                # Slides color scheme. This field is read-only.
-              "colors": [ # The ThemeColorType and corresponding concrete color pairs.
-                { # A pair mapping a theme color type to the concrete color it represents.
-                  "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
-                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                  },
-                  "type": "A String", # The type of the theme color.
-                },
-              ],
-            },
-          },
-          "pageType": "A String", # The type of the page.
-          "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
-              # relevant for pages with page_type SLIDE.
-            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
-                # appearance of a notes page when printing or exporting slides with speaker
-                # notes. A notes page inherits properties from the
-                # notes master.
-                # The placeholder shape with type BODY on the notes page contains the speaker
-                # notes for this slide. The ID of this shape is identified by the
-                # speakerNotesObjectId field.
-                # The notes page is read-only except for the text content and styles of the
-                # speaker notes shape.
-            "masterObjectId": "A String", # The object ID of the master that this slide is based on.
-            "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
-          },
-        },
-      ],
-      "pageSize": { # A width and height. # The size of pages in the presentation.
-        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-      },
-      "title": "A String", # The title of the presentation.
-      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
-      "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
-          # to assert that the presentation revision hasn't changed since the last
-          # read operation. Only populated if the user has edit access to the
-          # presentation.
-          #
-          # The format of the revision ID may change over time, so it should be treated
-          # opaquely. A returned revision ID is only guaranteed to be valid for 24
-          # hours after it has been returned and cannot be shared across users. Callers
-          # can assume that if two revision IDs are equal then the presentation has not
-          # changed.
       "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes:
           #
           # - Placeholder shapes on a notes master contain the default text styles and
@@ -12057,10 +10731,10 @@
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -12091,17 +10765,17 @@
                   "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                       # the right of the original bounding rectangle left edge, relative to the
                       # object's original width.
-                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                      # below the original bounding rectangle top edge, relative to the object's
-                      # original height.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
                 },
                 "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                     # is read-only.
@@ -12231,26 +10905,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -12284,10 +10979,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -12358,26 +11053,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -12411,10 +11127,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -12464,8 +11180,8 @@
                           # Inherited paragraph styles are represented as unset fields in this message.
                         "spacingMode": "A String", # The spacing mode for the paragraph.
                         "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                            # LEFT_TO_RIGHT
-                            # since text direction is not inherited.
+                            # LEFT_TO_RIGHT since
+                            # text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                             # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
@@ -12537,26 +11253,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -12590,10 +11327,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -12663,26 +11400,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -12716,10 +11474,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -12844,10 +11602,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -12906,8 +11664,8 @@
                 "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                     # If unset, the parent placeholder shape does not exist, so the shape does
                     # not inherit properties from any other shape.
-                "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                    # in the same page, they would have different index values.
+                "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                    # the same page, they would have different index values.
                 "type": "A String", # The type of the placeholder.
               },
               "shapeType": "A String", # The type of the shape.
@@ -12915,12 +11673,11 @@
             "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                 # represented as images.
                 # a linked chart embedded from Google Sheets.
-              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                  # embedded.
               "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                   # minutes. This URL is tagged with the account of the requester. Anyone with
                   # the URL effectively accesses the image as the original requester. Access to
                   # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -12998,10 +11755,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -13032,17 +11789,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -13102,14 +11859,13 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
-              "source": "A String", # The video source.
-              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -13155,6 +11911,8 @@
                   },
                 },
               },
+              "id": "A String", # The video source's unique identifier for this video.
+              "source": "A String", # The video source.
             },
             "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                 # joined collection of PageElements.
@@ -13232,26 +11990,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -13285,10 +12064,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -13359,26 +12138,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -13412,10 +12212,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -13465,8 +12265,8 @@
                                   # Inherited paragraph styles are represented as unset fields in this message.
                                 "spacingMode": "A String", # The spacing mode for the paragraph.
                                 "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                    # LEFT_TO_RIGHT
-                                    # since text direction is not inherited.
+                                    # LEFT_TO_RIGHT since
+                                    # text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                     # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
@@ -13538,26 +12338,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -13591,10 +12412,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -13664,26 +12485,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -13717,10 +12559,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -13810,10 +12652,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -13876,9 +12718,11 @@
             #
             # The format of the revision ID may change over time, so it should be treated
             # opaquely. A returned revision ID is only guaranteed to be valid for 24
-            # hours after it has been returned and cannot be shared across
-            # users. Callers can assume that if two revision IDs are equal then the
-            # presentation has not changed.
+            # hours after it has been returned and cannot be shared across users. If the
+            # revision ID is unchanged between calls, then the presentation has not
+            # changed. Conversely, a changed ID (for the same presentation and user)
+            # usually means the presentation has been updated; however, a changed ID can
+            # also be due to internal factors such as ID format changes.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -13973,8 +12817,40 @@
           "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
         },
       },
-      "slides": [ # The slides in the presentation.
-          # A slide inherits properties from a slide layout.
+      "pageSize": { # A width and height. # The size of pages in the presentation.
+        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+      },
+      "title": "A String", # The title of the presentation.
+      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
+      "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
+          # to assert that the presentation revision hasn't changed since the last
+          # read operation. Only populated if the user has edit access to the
+          # presentation.
+          #
+          # The format of the revision ID may change over time, so it should be treated
+          # opaquely. A returned revision ID is only guaranteed to be valid for 24
+          # hours after it has been returned and cannot be shared across users. If the
+          # revision ID is unchanged between calls, then the presentation has not
+          # changed. Conversely, a changed ID (for the same presentation and user)
+          # usually means the presentation has been updated; however, a changed ID can
+          # also be due to internal factors such as ID format changes.
+      "masters": [ # The slide masters in the presentation. A slide master contains all common
+          # page elements and the common properties for a set of layouts. They serve
+          # three purposes:
+          #
+          # - Placeholder shapes on a master contain the default text styles and shape
+          #   properties of all placeholder shapes on pages that use that master.
+          # - The master page properties define the common page properties inherited by
+          #   its layouts.
+          # - Any other shapes on the master slide will appear on all slides using that
+          #   master, regardless of their layout.
         { # A page in a presentation.
           "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
               # relevant for pages with page_type LAYOUT.
@@ -14077,10 +12953,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -14111,17 +12987,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -14251,26 +13127,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -14304,10 +13201,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -14378,26 +13275,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -14431,10 +13349,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -14484,8 +13402,8 @@
                             # Inherited paragraph styles are represented as unset fields in this message.
                           "spacingMode": "A String", # The spacing mode for the paragraph.
                           "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                              # LEFT_TO_RIGHT
-                              # since text direction is not inherited.
+                              # LEFT_TO_RIGHT since
+                              # text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                               # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
@@ -14557,26 +13475,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -14610,10 +13549,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -14683,26 +13622,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -14736,10 +13696,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -14864,10 +13824,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -14926,8 +13886,8 @@
                   "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                       # If unset, the parent placeholder shape does not exist, so the shape does
                       # not inherit properties from any other shape.
-                  "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                      # in the same page, they would have different index values.
+                  "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                      # the same page, they would have different index values.
                   "type": "A String", # The type of the placeholder.
                 },
                 "shapeType": "A String", # The type of the shape.
@@ -14935,12 +13895,11 @@
               "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                   # represented as images.
                   # a linked chart embedded from Google Sheets.
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
                 "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                     # minutes. This URL is tagged with the account of the requester. Anyone with
                     # the URL effectively accesses the image as the original requester. Access to
                     # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -15018,10 +13977,10 @@
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -15052,17 +14011,17 @@
                       "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                           # the right of the original bounding rectangle left edge, relative to the
                           # object's original width.
-                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                          # below the original bounding rectangle top edge, relative to the object's
-                          # original height.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
+                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                          # below the original bounding rectangle top edge, relative to the object's
+                          # original height.
                     },
                     "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                         # is read-only.
@@ -15122,14 +14081,13 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                    # embedded.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
-                "source": "A String", # The video source.
-                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -15175,6 +14133,8 @@
                     },
                   },
                 },
+                "id": "A String", # The video source's unique identifier for this video.
+                "source": "A String", # The video source.
               },
               "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                   # joined collection of PageElements.
@@ -15252,26 +14212,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -15305,10 +14286,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -15379,26 +14360,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -15432,10 +14434,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -15485,8 +14487,8 @@
                                     # Inherited paragraph styles are represented as unset fields in this message.
                                   "spacingMode": "A String", # The spacing mode for the paragraph.
                                   "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                      # LEFT_TO_RIGHT
-                                      # since text direction is not inherited.
+                                      # LEFT_TO_RIGHT since
+                                      # text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                       # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
@@ -15558,26 +14560,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -15611,10 +14634,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -15684,26 +14707,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -15737,10 +14781,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -15830,10 +14874,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -15896,9 +14940,2202 @@
               #
               # The format of the revision ID may change over time, so it should be treated
               # opaquely. A returned revision ID is only guaranteed to be valid for 24
-              # hours after it has been returned and cannot be shared across
-              # users. Callers can assume that if two revision IDs are equal then the
-              # presentation has not changed.
+              # hours after it has been returned and cannot be shared across users. If the
+              # revision ID is unchanged between calls, then the presentation has not
+              # changed. Conversely, a changed ID (for the same presentation and user)
+              # usually means the presentation has been updated; however, a changed ID can
+              # also be due to internal factors such as ID format changes.
+          "pageProperties": { # The properties of the Page. # The properties of the page.
+              #
+              # The page will inherit properties from the parent page. Depending on the page
+              # type the hierarchy is defined in either
+              # SlideProperties or
+              # LayoutProperties.
+            "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
+                # from a parent page if it exists. If the page has no parent, then the
+                # background fill defaults to the corresponding fill in the Slides editor.
+              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                  # specified color value.
+                  #
+                  # If any field is unset, its value may be inherited from a parent placeholder
+                  # if it exists.
+                "color": { # A themeable solid color value. # The color value of the solid fill.
+                  "themeColor": "A String", # An opaque theme color.
+                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                },
+                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                    # That is, the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color.
+              },
+              "propertyState": "A String", # The background fill property state.
+                  #
+                  # Updating the the fill on a page will implicitly update this field to
+                  # `RENDERED`, unless another value is specified in the same request. To
+                  # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
+                  # any other fill fields set in the same request will be ignored.
+              "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
+                  # the specified picture. The picture is stretched to fit its container.
+                "contentUrl": "A String", # Reading the content_url:
+                    #
+                    # An URL to a picture with a default lifetime of 30 minutes.
+                    # This URL is tagged with the account of the requester. Anyone with the URL
+                    # effectively accesses the picture as the original requester. Access to the
+                    # picture may be lost if the presentation's sharing settings change.
+                    #
+                    # Writing the content_url:
+                    #
+                    # The picture is fetched once at insertion time and a copy is stored for
+                    # display inside the presentation. Pictures must be less than 50MB in size,
+                    # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+                    # format.
+                "size": { # A width and height. # The original size of the picture fill. This field is read-only.
+                  "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+            },
+            "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
+                # a parent page. If the page has no parent, the color scheme uses a default
+                # Slides color scheme. This field is read-only.
+              "colors": [ # The ThemeColorType and corresponding concrete color pairs.
+                { # A pair mapping a theme color type to the concrete color it represents.
+                  "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                  "type": "A String", # The type of the theme color.
+                },
+              ],
+            },
+          },
+          "pageType": "A String", # The type of the page.
+          "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
+              # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
+            "masterObjectId": "A String", # The object ID of the master that this slide is based on.
+            "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
+          },
+        },
+      ],
+      "slides": [ # The slides in the presentation.
+          # A slide inherits properties from a slide layout.
+        { # A page in a presentation.
+          "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
+              # relevant for pages with page_type LAYOUT.
+            "displayName": "A String", # The human readable name of the layout in the presentation's locale.
+            "name": "A String", # The name of the layout.
+            "masterObjectId": "A String", # The object ID of the master that this layout is based on.
+          },
+          "pageElements": [ # The page elements rendered on the page.
+            { # A visual element rendered on a page.
+              "wordArt": { # A PageElement kind representing # A word art page element.
+                  # word art.
+                "renderedText": "A String", # The text rendered as word art.
+              },
+              "description": "A String", # The description of the page element. Combined with title to display alt
+                  # text.
+              "objectId": "A String", # The object ID for this page element. Object IDs used by
+                  # google.apps.slides.v1.Page and
+                  # google.apps.slides.v1.PageElement share the same namespace.
+              "title": "A String", # The title of the page element. Combined with description to display alt
+                  # text.
+              "image": { # A PageElement kind representing an # An image page element.
+                  # image.
+                "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
+                    # This URL is tagged with the account of the requester. Anyone with the URL
+                    # effectively accesses the image as the original requester. Access to the
+                    # image may be lost if the presentation's sharing settings change.
+                "imageProperties": { # The properties of the Image. # The properties of the image.
+                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                      # This property is read-only.
+                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
+                      { # A color and position in a gradient band.
+                        "color": { # A themeable solid color value. # The color of the gradient stop.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                            # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
+                      },
+                    ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                      # This property is read-only.
+                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                      # This property is read-only.
+                      # Image.
+                      #
+                      # The crop properties is represented by the offsets of four edges which define
+                      # a crop rectangle. The offsets are measured in percentage from the
+                      # corresponding edges of the object's original bounding rectangle towards
+                      # inside, relative to the object's original dimensions.
+                      #
+                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                      # rectangle is positioned inside of the object's original bounding rectangle.
+                      # - If the offset is negative or greater than 1, the corresponding edge of crop
+                      # rectangle is positioned outside of the object's original bounding rectangle.
+                      # - If the left edge of the crop rectangle is on the right side of its right
+                      # edge, the object will be flipped horizontally.
+                      # - If the top edge of the crop rectangle is below its bottom edge, the object
+                      # will be flipped vertically.
+                      # - If all offsets and rotation angle is 0, the object is not cropped.
+                      #
+                      # After cropping, the content in the crop rectangle will be stretched to fit
+                      # its container.
+                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                        # the right of the original bounding rectangle left edge, relative to the
+                        # object's original width.
+                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                        # Rotation angle is applied after the offset.
+                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                        # to the left of the original bounding rectangle right edge, relative to the
+                        # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
+                  },
+                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                      # is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                },
+              },
+              "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
+                  # to transform source coordinates (x,y) into destination coordinates (x', y')
+                  # according to:
+                  #
+                  #       x'  x  =   shear_y  scale_y  translate_y
+                  #       1  [ 1 ]
+                  #
+                  # After transformation,
+                  #
+                  #      x' = scale_x * x + shear_x * y + translate_x;
+                  #      y' = scale_y * y + shear_y * x + translate_y;
+                  #
+                  # This message is therefore composed of these six matrix elements.
+                "translateX": 3.14, # The X coordinate translation element.
+                "translateY": 3.14, # The Y coordinate translation element.
+                "scaleX": 3.14, # The X coordinate scaling element.
+                "scaleY": 3.14, # The Y coordinate scaling element.
+                "shearY": 3.14, # The Y coordinate shearing element.
+                "shearX": 3.14, # The X coordinate shearing element.
+                "unit": "A String", # The units for translate elements.
+              },
+              "shape": { # A PageElement kind representing a # A generic shape.
+                  # generic shape that does not have a more specific classification.
+                "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
+                    # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
+                            },
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
+                  "textElements": [ # The text contents broken down into its component parts, including styling
+                      # information. This property is read-only.
+                    { # A TextElement describes the content of a range of indices in the text content
+                        # of a Shape or TableCell.
+                      "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                          # replaced with content that can change over time.
+                        "content": "A String", # The rendered content of this auto text, if available.
+                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
+                          },
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                        },
+                        "type": "A String", # The type of this auto text.
+                      },
+                      "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                          # units.
+                      "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                      "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                          #
+                          # The `start_index` and `end_index` of this TextElement represent the
+                          # range of the paragraph. Other TextElements with an index range contained
+                          # inside this paragraph's range are considered to be part of this
+                          # paragraph. The range of indices of two separate paragraphs will never
+                          # overlap.
+                        "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                            # inherited from the parent. Which paragraph styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A paragraph not in a list will inherit its paragraph style from the
+                            #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                            # * A paragraph in a list will inherit its paragraph style from the paragraph
+                            #   at its corresponding nesting level of the list inside the parent
+                            #   placeholder.
+                            #
+                            # Inherited paragraph styles are represented as unset fields in this message.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT since
+                              # text direction is not inherited.
+                          "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                              # inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                              # is represented as 100.0. If unset, the value is inherited from the parent.
+                          "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                              # the start of the text, based on the current text direction. If unset, the
+                              # value is inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                              # inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                              # the end of the text, based on the current text direction. If unset, the
+                              # value is inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                              # If unset, the value is inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "alignment": "A String", # The text alignment for this paragraph.
+                        },
+                        "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                            # belong to a list.
+                          "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                          "listId": "A String", # The ID of the list this paragraph belongs to.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
+                            },
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                          },
+                          "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                        },
+                      },
+                      "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                          # in the run have the same TextStyle.
+                          #
+                          # The `start_index` and `end_index` of TextRuns will always be fully
+                          # contained in the index range of a single `paragraph_marker` TextElement.
+                          # In other words, a TextRun will never span multiple paragraphs.
+                          # styling.
+                        "content": "A String", # The text of this run.
+                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
+                          },
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                        },
+                      },
+                    },
+                  ],
+                },
+                "shapeProperties": { # The properties of a Shape. # The properties of the shape.
+                    #
+                    # If the shape is a placeholder shape as determined by the
+                    # placeholder field, then these
+                    # properties may be inherited from a parent placeholder shape.
+                    # Determining the rendered value of the property depends on the corresponding
+                    # property_state field value.
+                  "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
+                      # a parent placeholder if it exists. If the shape has no parent, then the
+                      # default shadow matches the defaults for new shapes created in the Slides
+                      # editor. This property is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
+                      # inherited from a parent placeholder if it exists. If the shape has no
+                      # parent, then the default background fill depends on the shape type,
+                      # matching the defaults for new shapes created in the Slides editor.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                    "propertyState": "A String", # The background fill property state.
+                        #
+                        # Updating the the fill on a shape will implicitly update this field to
+                        # `RENDERED`, unless another value is specified in the same request. To
+                        # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
+                        # any other fill fields set in the same request will be ignored.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
+                      # are not inherited from parent placeholders.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
+                      # parent placeholder if it exists. If the shape has no parent, then the
+                      # default outline depends on the shape type, matching the defaults for
+                      # new shapes created in the Slides editor.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                },
+                "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
+                    # layouts and masters.
+                    #
+                    # If set, the shape is a placeholder shape and any inherited properties
+                    # can be resolved by looking at the parent placeholder identified by the
+                    # Placeholder.parent_object_id field.
+                  "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                      # If unset, the parent placeholder shape does not exist, so the shape does
+                      # not inherit properties from any other shape.
+                  "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                      # the same page, they would have different index values.
+                  "type": "A String", # The type of the placeholder.
+                },
+                "shapeType": "A String", # The type of the shape.
+              },
+              "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
+                  # represented as images.
+                  # a linked chart embedded from Google Sheets.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
+                  "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
+                    "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                        #
+                        # If these fields are unset, they may be inherited from a parent placeholder
+                        # if it exists. If there is no parent, the fields will default to the value
+                        # used for new page elements created in the Slides editor, which may depend on
+                        # the page element kind.
+                      "outlineFill": { # The fill of the outline. # The fill of the outline.
+                        "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                            # specified color value.
+                            #
+                            # If any field is unset, its value may be inherited from a parent placeholder
+                            # if it exists.
+                          "color": { # A themeable solid color value. # The color value of the solid fill.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                          "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                              # That is, the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color.
+                        },
+                      },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
+                      "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                    },
+                    "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                    "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                        # This property is read-only.
+                      "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
+                        { # A color and position in a gradient band.
+                          "color": { # A themeable solid color value. # The color of the gradient stop.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                          "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                              # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
+                        },
+                      ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
+                    },
+                    "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                          # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
+                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                          # addressed by its position.
+                    },
+                    "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                        # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                        # This property is read-only.
+                    "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                        # This property is read-only.
+                        # Image.
+                        #
+                        # The crop properties is represented by the offsets of four edges which define
+                        # a crop rectangle. The offsets are measured in percentage from the
+                        # corresponding edges of the object's original bounding rectangle towards
+                        # inside, relative to the object's original dimensions.
+                        #
+                        # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                        # rectangle is positioned inside of the object's original bounding rectangle.
+                        # - If the offset is negative or greater than 1, the corresponding edge of crop
+                        # rectangle is positioned outside of the object's original bounding rectangle.
+                        # - If the left edge of the crop rectangle is on the right side of its right
+                        # edge, the object will be flipped horizontally.
+                        # - If the top edge of the crop rectangle is below its bottom edge, the object
+                        # will be flipped vertically.
+                        # - If all offsets and rotation angle is 0, the object is not cropped.
+                        #
+                        # After cropping, the content in the crop rectangle will be stretched to fit
+                        # its container.
+                      "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                          # the right of the original bounding rectangle left edge, relative to the
+                          # object's original width.
+                      "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                          # Rotation angle is applied after the offset.
+                      "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                          # to the left of the original bounding rectangle right edge, relative to the
+                          # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
+                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                          # below the original bounding rectangle top edge, relative to the object's
+                          # original height.
+                    },
+                    "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                        # is read-only.
+                        #
+                        # If these fields are unset, they may be inherited from a parent placeholder
+                        # if it exists. If there is no parent, the fields will default to the value
+                        # used for new page elements created in the Slides editor, which may depend on
+                        # the page element kind.
+                      "color": { # A themeable solid color value. # The shadow color value.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                          # relative to the alignment position.
+                          # to transform source coordinates (x,y) into destination coordinates (x', y')
+                          # according to:
+                          #
+                          #       x'  x  =   shear_y  scale_y  translate_y
+                          #       1  [ 1 ]
+                          #
+                          # After transformation,
+                          #
+                          #      x' = scale_x * x + shear_x * y + translate_x;
+                          #      y' = scale_y * y + shear_y * x + translate_y;
+                          #
+                          # This message is therefore composed of these six matrix elements.
+                        "translateX": 3.14, # The X coordinate translation element.
+                        "translateY": 3.14, # The Y coordinate translation element.
+                        "scaleX": 3.14, # The X coordinate scaling element.
+                        "scaleY": 3.14, # The Y coordinate scaling element.
+                        "shearY": 3.14, # The Y coordinate shearing element.
+                        "shearX": 3.14, # The X coordinate shearing element.
+                        "unit": "A String", # The units for translate elements.
+                      },
+                      "propertyState": "A String", # The shadow property state.
+                          #
+                          # Updating the the shadow on a page element will implicitly update this field
+                          # to `RENDERED`, unless another value is specified in the same request. To
+                          # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                          # case, any other shadow fields set in the same request will be ignored.
+                      "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                          # shadow becomes.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                      "type": "A String", # The type of the shadow.
+                      "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                          # scale and skew of the shadow.
+                      "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                    },
+                    "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  },
+                },
+                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                    # embedded.
+              },
+              "video": { # A PageElement kind representing a # A video page element.
+                  # video.
+                "url": "A String", # An URL to a video. The URL is valid as long as the source video
+                    # exists and sharing settings do not change.
+                "videoProperties": { # The properties of the Video. # The properties of the video.
+                  "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
+                      # videos created in the Slides editor.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                },
+                "id": "A String", # The video source's unique identifier for this video.
+                "source": "A String", # The video source.
+              },
+              "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
+                  # joined collection of PageElements.
+                "children": [ # The collection of elements in the group. The minimum size of a group is 2.
+                  # Object with schema name: PageElement
+                ],
+              },
+              "table": { # A PageElement kind representing a # A table page element.
+                  # table.
+                "tableColumns": [ # Properties of each column.
+                  { # Properties of each column in a table.
+                    "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                ],
+                "tableRows": [ # Properties and contents of each row.
+                    #
+                    # Cells that span multiple rows are contained in only one of these rows and
+                    # have a row_span greater
+                    # than 1.
+                  { # Properties and contents of each row in a table.
+                    "tableCells": [ # Properties and contents of each cell.
+                        #
+                        # Cells that span multiple columns are represented only once with a
+                        # column_span greater
+                        # than 1. As a result, the length of this collection does not always match
+                        # the number of columns of the entire table.
+                      { # Properties and contents of each table cell.
+                        "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
+                            # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
+                                      "fontFamily": "A String", # The font family of the text.
+                                          #
+                                          # The font family can be any font from the Font menu in Slides or from
+                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                          # unrecognized, the text is rendered in `Arial`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
+                                    },
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
+                          "textElements": [ # The text contents broken down into its component parts, including styling
+                              # information. This property is read-only.
+                            { # A TextElement describes the content of a range of indices in the text content
+                                # of a Shape or TableCell.
+                              "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                                  # replaced with content that can change over time.
+                                "content": "A String", # The rendered content of this auto text, if available.
+                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
+                                  },
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                },
+                                "type": "A String", # The type of this auto text.
+                              },
+                              "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                                  # units.
+                              "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                              "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                                  #
+                                  # The `start_index` and `end_index` of this TextElement represent the
+                                  # range of the paragraph. Other TextElements with an index range contained
+                                  # inside this paragraph's range are considered to be part of this
+                                  # paragraph. The range of indices of two separate paragraphs will never
+                                  # overlap.
+                                "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                                    # inherited from the parent. Which paragraph styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A paragraph not in a list will inherit its paragraph style from the
+                                    #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                                    # * A paragraph in a list will inherit its paragraph style from the paragraph
+                                    #   at its corresponding nesting level of the list inside the parent
+                                    #   placeholder.
+                                    #
+                                    # Inherited paragraph styles are represented as unset fields in this message.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT since
+                                      # text direction is not inherited.
+                                  "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                      # inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                                      # is represented as 100.0. If unset, the value is inherited from the parent.
+                                  "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                      # the start of the text, based on the current text direction. If unset, the
+                                      # value is inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                      # inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                      # the end of the text, based on the current text direction. If unset, the
+                                      # value is inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                                      # If unset, the value is inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "alignment": "A String", # The text alignment for this paragraph.
+                                },
+                                "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                                    # belong to a list.
+                                  "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                                  "listId": "A String", # The ID of the list this paragraph belongs to.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
+                                      "fontFamily": "A String", # The font family of the text.
+                                          #
+                                          # The font family can be any font from the Font menu in Slides or from
+                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                          # unrecognized, the text is rendered in `Arial`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
+                                    },
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                  },
+                                  "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                                },
+                              },
+                              "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                                  # in the run have the same TextStyle.
+                                  #
+                                  # The `start_index` and `end_index` of TextRuns will always be fully
+                                  # contained in the index range of a single `paragraph_marker` TextElement.
+                                  # In other words, a TextRun will never span multiple paragraphs.
+                                  # styling.
+                                "content": "A String", # The text of this run.
+                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
+                                  },
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                },
+                              },
+                            },
+                          ],
+                        },
+                        "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
+                          "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
+                              # for newly created table cells in the Slides editor.
+                            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                                # specified color value.
+                                #
+                                # If any field is unset, its value may be inherited from a parent placeholder
+                                # if it exists.
+                              "color": { # A themeable solid color value. # The color value of the solid fill.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                                  # That is, the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color.
+                            },
+                            "propertyState": "A String", # The background fill property state.
+                                #
+                                # Updating the the fill on a table cell will implicitly update this field
+                                # to `RENDERED`, unless another value is specified in the same request. To
+                                # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
+                                # case, any other fill fields set in the same request will be ignored.
+                          },
+                        },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
+                        "location": { # A location of a single table cell within a table. # The location of the cell within the table.
+                          "rowIndex": 42, # The 0-based row index.
+                          "columnIndex": 42, # The 0-based column index.
+                        },
+                      },
+                    ],
+                    "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                ],
+                "rows": 42, # Number of rows in the table.
+                "columns": 42, # Number of columns in the table.
+              },
+              "line": { # A PageElement kind representing a # A line page element.
+                  # line, curved connector, or bent connector.
+                "lineProperties": { # The properties of the Line. # The properties of the line.
+                    #
+                    # When unset, these fields default to values that match the appearance of
+                    # new lines created in the Slides editor.
+                  "dashStyle": "A String", # The dash style of the line.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "endArrow": "A String", # The style of the arrow at the end of the line.
+                  "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                      # lines created in the Slides editor.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
+                },
+                "lineType": "A String", # The type of the line.
+              },
+              "size": { # A width and height. # The size of the page element.
+                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+          ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
+          "objectId": "A String", # The object ID for this page. Object IDs used by
+              # Page and
+              # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across users. If the
+              # revision ID is unchanged between calls, then the presentation has not
+              # changed. Conversely, a changed ID (for the same presentation and user)
+              # usually means the presentation has been updated; however, a changed ID can
+              # also be due to internal factors such as ID format changes.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -16099,10 +17336,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -16133,17 +17370,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -16273,26 +17510,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -16326,10 +17584,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -16400,26 +17658,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -16453,10 +17732,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -16506,8 +17785,8 @@
                             # Inherited paragraph styles are represented as unset fields in this message.
                           "spacingMode": "A String", # The spacing mode for the paragraph.
                           "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                              # LEFT_TO_RIGHT
-                              # since text direction is not inherited.
+                              # LEFT_TO_RIGHT since
+                              # text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                               # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
@@ -16579,26 +17858,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -16632,10 +17932,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -16705,26 +18005,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -16758,10 +18079,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -16886,10 +18207,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -16948,8 +18269,8 @@
                   "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                       # If unset, the parent placeholder shape does not exist, so the shape does
                       # not inherit properties from any other shape.
-                  "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                      # in the same page, they would have different index values.
+                  "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                      # the same page, they would have different index values.
                   "type": "A String", # The type of the placeholder.
                 },
                 "shapeType": "A String", # The type of the shape.
@@ -16957,12 +18278,11 @@
               "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                   # represented as images.
                   # a linked chart embedded from Google Sheets.
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
                 "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                     # minutes. This URL is tagged with the account of the requester. Anyone with
                     # the URL effectively accesses the image as the original requester. Access to
                     # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -17040,10 +18360,10 @@
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -17074,17 +18394,17 @@
                       "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                           # the right of the original bounding rectangle left edge, relative to the
                           # object's original width.
-                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                          # below the original bounding rectangle top edge, relative to the object's
-                          # original height.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
+                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                          # below the original bounding rectangle top edge, relative to the object's
+                          # original height.
                     },
                     "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                         # is read-only.
@@ -17144,14 +18464,13 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                    # embedded.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
-                "source": "A String", # The video source.
-                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -17197,6 +18516,8 @@
                     },
                   },
                 },
+                "id": "A String", # The video source's unique identifier for this video.
+                "source": "A String", # The video source.
               },
               "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                   # joined collection of PageElements.
@@ -17274,26 +18595,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -17327,10 +18669,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -17401,26 +18743,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -17454,10 +18817,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -17507,8 +18870,8 @@
                                     # Inherited paragraph styles are represented as unset fields in this message.
                                   "spacingMode": "A String", # The spacing mode for the paragraph.
                                   "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                      # LEFT_TO_RIGHT
-                                      # since text direction is not inherited.
+                                      # LEFT_TO_RIGHT since
+                                      # text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                       # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
@@ -17580,26 +18943,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -17633,10 +19017,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -17706,26 +19090,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -17759,10 +19164,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -17852,10 +19257,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -17918,9 +19323,11 @@
               #
               # The format of the revision ID may change over time, so it should be treated
               # opaquely. A returned revision ID is only guaranteed to be valid for 24
-              # hours after it has been returned and cannot be shared across
-              # users. Callers can assume that if two revision IDs are equal then the
-              # presentation has not changed.
+              # hours after it has been returned and cannot be shared across users. If the
+              # revision ID is unchanged between calls, then the presentation has not
+              # changed. Conversely, a changed ID (for the same presentation and user)
+              # usually means the presentation has been updated; however, a changed ID can
+              # also be due to internal factors such as ID format changes.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -18035,2057 +19442,6 @@
 
     { # A Google Slides presentation.
       "presentationId": "A String", # The ID of the presentation.
-      "masters": [ # The slide masters in the presentation. A slide master contains all common
-          # page elements and the common properties for a set of layouts. They serve
-          # three purposes:
-          #
-          # - Placeholder shapes on a master contain the default text styles and shape
-          #   properties of all placeholder shapes on pages that use that master.
-          # - The master page properties define the common page properties inherited by
-          #   its layouts.
-          # - Any other shapes on the master slide will appear on all slides using that
-          #   master, regardless of their layout.
-        { # A page in a presentation.
-          "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
-              # relevant for pages with page_type LAYOUT.
-            "displayName": "A String", # The human readable name of the layout in the presentation's locale.
-            "name": "A String", # The name of the layout.
-            "masterObjectId": "A String", # The object ID of the master that this layout is based on.
-          },
-          "pageElements": [ # The page elements rendered on the page.
-            { # A visual element rendered on a page.
-              "wordArt": { # A PageElement kind representing # A word art page element.
-                  # word art.
-                "renderedText": "A String", # The text rendered as word art.
-              },
-              "description": "A String", # The description of the page element. Combined with title to display alt
-                  # text.
-              "objectId": "A String", # The object ID for this page element. Object IDs used by
-                  # google.apps.slides.v1.Page and
-                  # google.apps.slides.v1.PageElement share the same namespace.
-              "title": "A String", # The title of the page element. Combined with description to display alt
-                  # text.
-              "image": { # A PageElement kind representing an # An image page element.
-                  # image.
-                "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
-                    # This URL is tagged with the account of the requester. Anyone with the URL
-                    # effectively accesses the image as the original requester. Access to the
-                    # image may be lost if the presentation's sharing settings change.
-                "imageProperties": { # The properties of the Image. # The properties of the image.
-                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
-                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
-                      # This property is read-only.
-                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                        # stops.
-                        #
-                        # The colors in the gradient will replace the corresponding colors at
-                        # the same position in the color palette and apply to the image. This
-                        # property is read-only.
-                      { # A color and position in a gradient band.
-                        "color": { # A themeable solid color value. # The color of the gradient stop.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
-                            # fully opaque.
-                        "position": 3.14, # The relative position of the color stop in the gradient band measured
-                            # in percentage. The value should be in the interval [0.0, 1.0].
-                      },
-                    ],
-                    "name": "A String", # The name of the recolor effect.
-                        #
-                        # The name is determined from the `recolor_stops` by matching the gradient
-                        # against the colors in the page's current color scheme. This property is
-                        # read-only.
-                  },
-                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
-                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
-                      # This property is read-only.
-                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
-                      # This property is read-only.
-                      # Image.
-                      #
-                      # The crop properties is represented by the offsets of four edges which define
-                      # a crop rectangle. The offsets are measured in percentage from the
-                      # corresponding edges of the object's original bounding rectangle towards
-                      # inside, relative to the object's original dimensions.
-                      #
-                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
-                      # rectangle is positioned inside of the object's original bounding rectangle.
-                      # - If the offset is negative or greater than 1, the corresponding edge of crop
-                      # rectangle is positioned outside of the object's original bounding rectangle.
-                      # - If the left edge of the crop rectangle is on the right side of its right
-                      # edge, the object will be flipped horizontally.
-                      # - If the top edge of the crop rectangle is below its bottom edge, the object
-                      # will be flipped vertically.
-                      # - If all offsets and rotation angle is 0, the object is not cropped.
-                      #
-                      # After cropping, the content in the crop rectangle will be stretched to fit
-                      # its container.
-                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
-                        # the right of the original bounding rectangle left edge, relative to the
-                        # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
-                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                        # Rotation angle is applied after the offset.
-                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
-                        # to the left of the original bounding rectangle right edge, relative to the
-                        # object's original width.
-                  },
-                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
-                      # is read-only.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "color": { # A themeable solid color value. # The shadow color value.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                        # relative to the alignment position.
-                        # to transform source coordinates (x,y) into destination coordinates (x', y')
-                        # according to:
-                        #
-                        #       x'  x  =   shear_y  scale_y  translate_y
-                        #       1  [ 1 ]
-                        #
-                        # After transformation,
-                        #
-                        #      x' = scale_x * x + shear_x * y + translate_x;
-                        #      y' = scale_y * y + shear_y * x + translate_y;
-                        #
-                        # This message is therefore composed of these six matrix elements.
-                      "translateX": 3.14, # The X coordinate translation element.
-                      "translateY": 3.14, # The Y coordinate translation element.
-                      "scaleX": 3.14, # The X coordinate scaling element.
-                      "scaleY": 3.14, # The Y coordinate scaling element.
-                      "shearY": 3.14, # The Y coordinate shearing element.
-                      "shearX": 3.14, # The X coordinate shearing element.
-                      "unit": "A String", # The units for translate elements.
-                    },
-                    "propertyState": "A String", # The shadow property state.
-                        #
-                        # Updating the the shadow on a page element will implicitly update this field
-                        # to `RENDERED`, unless another value is specified in the same request. To
-                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                        # case, any other shadow fields set in the same request will be ignored.
-                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                        # shadow becomes.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                    "type": "A String", # The type of the shadow.
-                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                        # scale and skew of the shadow.
-                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                  },
-                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
-                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                },
-              },
-              "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
-                  # to transform source coordinates (x,y) into destination coordinates (x', y')
-                  # according to:
-                  #
-                  #       x'  x  =   shear_y  scale_y  translate_y
-                  #       1  [ 1 ]
-                  #
-                  # After transformation,
-                  #
-                  #      x' = scale_x * x + shear_x * y + translate_x;
-                  #      y' = scale_y * y + shear_y * x + translate_y;
-                  #
-                  # This message is therefore composed of these six matrix elements.
-                "translateX": 3.14, # The X coordinate translation element.
-                "translateY": 3.14, # The Y coordinate translation element.
-                "scaleX": 3.14, # The X coordinate scaling element.
-                "scaleY": 3.14, # The Y coordinate scaling element.
-                "shearY": 3.14, # The Y coordinate shearing element.
-                "shearX": 3.14, # The X coordinate shearing element.
-                "unit": "A String", # The units for translate elements.
-              },
-              "shape": { # A PageElement kind representing a # A generic shape.
-                  # generic shape that does not have a more specific classification.
-                "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
-                    # text box or rectangle) or a table cell in a page.
-                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                        # associated with a list. A paragraph that is part of a list has an implicit
-                        # reference to that list's ID.
-                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                          # level. A list has at most nine levels of nesting, so the possible values
-                          # for the keys of this map are 0 through 8, inclusive.
-                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                            # level of nesting.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is rendered as bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "fontFamily": "A String", # The font family of the text.
-                                  #
-                                  # The font family can be any font from the Font menu in Slides or from
-                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                  # unrecognized, the text is rendered in `Arial`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                          },
-                        },
-                      },
-                      "listId": "A String", # The ID of the list.
-                    },
-                  },
-                  "textElements": [ # The text contents broken down into its component parts, including styling
-                      # information. This property is read-only.
-                    { # A TextElement describes the content of a range of indices in the text content
-                        # of a Shape or TableCell.
-                      "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
-                          # replaced with content that can change over time.
-                        "content": "A String", # The rendered content of this auto text, if available.
-                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is rendered as bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                        },
-                        "type": "A String", # The type of this auto text.
-                      },
-                      "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
-                          # units.
-                      "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
-                      "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
-                          #
-                          # The `start_index` and `end_index` of this TextElement represent the
-                          # range of the paragraph. Other TextElements with an index range contained
-                          # inside this paragraph's range are considered to be part of this
-                          # paragraph. The range of indices of two separate paragraphs will never
-                          # overlap.
-                        "style": { # Styles that apply to a whole paragraph. # The paragraph's style
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
-                            # inherited from the parent. Which paragraph styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A paragraph not in a list will inherit its paragraph style from the
-                            #   paragraph at the 0 nesting level of the list inside the parent placeholder.
-                            # * A paragraph in a list will inherit its paragraph style from the paragraph
-                            #   at its corresponding nesting level of the list inside the parent
-                            #   placeholder.
-                            #
-                            # Inherited paragraph styles are represented as unset fields in this message.
-                          "spacingMode": "A String", # The spacing mode for the paragraph.
-                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                              # LEFT_TO_RIGHT
-                              # since text direction is not inherited.
-                          "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
-                              # is represented as 100.0. If unset, the value is inherited from the parent.
-                          "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                              # the start of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                              # inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                              # the end of the text, based on the current text direction. If unset, the
-                              # value is inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                              # If unset, the value is inherited from the parent.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "alignment": "A String", # The text alignment for this paragraph.
-                        },
-                        "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
-                            # belong to a list.
-                          "nestingLevel": 42, # The nesting level of this paragraph in the list.
-                          "listId": "A String", # The ID of the list this paragraph belongs to.
-                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
-                              #
-                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                              # inherited from the parent. Which text styles are inherited depend on the
-                              # nesting level of lists:
-                              #
-                              # * A text run in a paragraph that is not in a list will inherit its text style
-                              #   from the the newline character in the paragraph at the 0 nesting level of
-                              #   the list inside the parent placeholder.
-                              # * A text run in a paragraph that is in a list will inherit its text style
-                              #   from the newline character in the paragraph at its corresponding nesting
-                              #   level of the list inside the parent placeholder.
-                              #
-                              # Inherited text styles are represented as unset fields in this message. If
-                              # text is contained in a shape without a parent placeholder, unsetting these
-                              # fields will revert the style to a value matching the defaults in the Slides
-                              # editor.
-                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "bold": True or False, # Whether or not the text is rendered as bold.
-                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                #
-                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                # rendered in a smaller font size, computed based on the `font_size` field.
-                                # The `font_size` itself is not affected by changes in this field.
-                            "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "fontFamily": "A String", # The font family of the text.
-                                  #
-                                  # The font family can be any font from the Font menu in Slides or from
-                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                  # unrecognized, the text is rendered in `Arial`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                                #
-                                # Some fonts can affect the weight of the text. If an update request
-                                # specifies values for both `font_family` and `bold`, the explicitly-set
-                                # `bold` value is used.
-                            "italic": True or False, # Whether or not the text is italicized.
-                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                # are not inherited from parent text.
-                                #
-                                # Changing the link in an update request causes some other changes to the
-                                # text style of the range:
-                                #
-                                # * When setting a link, the text foreground color will be set to
-                                #   ThemeColorType.HYPERLINK and the text will
-                                #   be underlined. If these fields are modified in the same
-                                #   request, those values will be used instead of the link defaults.
-                                # * Setting a link on a text range that overlaps with an existing link will
-                                #   also update the existing link to point to the new URL.
-                                # * Links are not settable on newline characters. As a result, setting a link
-                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                #   will separate the newline character(s) into their own text runs. The
-                                #   link will be applied separately to the runs before and after the newline.
-                                # * Removing a link will update the text style of the range to match the
-                                #   style of the preceding text (or the default text styles if the preceding
-                                #   text is another link) unless different styles are being set in the same
-                                #   request.
-                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
-                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                  # in the presentation. There may not be a slide at this index.
-                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                  # addressed by its position.
-                            },
-                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                # transparent, depending on if the `opaque_color` field in it is set.
-                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                  # a transparent color.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                            },
-                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                # points.
-                              "magnitude": 3.14, # The magnitude.
-                              "unit": "A String", # The units for magnitude.
-                            },
-                            "underline": True or False, # Whether or not the text is underlined.
-                          },
-                          "glyph": "A String", # The rendered bullet glyph for this paragraph.
-                        },
-                      },
-                      "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
-                          # in the run have the same TextStyle.
-                          #
-                          # The `start_index` and `end_index` of TextRuns will always be fully
-                          # contained in the index range of a single `paragraph_marker` TextElement.
-                          # In other words, a TextRun will never span multiple paragraphs.
-                          # styling.
-                        "content": "A String", # The text of this run.
-                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
-                            #
-                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                            # inherited from the parent. Which text styles are inherited depend on the
-                            # nesting level of lists:
-                            #
-                            # * A text run in a paragraph that is not in a list will inherit its text style
-                            #   from the the newline character in the paragraph at the 0 nesting level of
-                            #   the list inside the parent placeholder.
-                            # * A text run in a paragraph that is in a list will inherit its text style
-                            #   from the newline character in the paragraph at its corresponding nesting
-                            #   level of the list inside the parent placeholder.
-                            #
-                            # Inherited text styles are represented as unset fields in this message. If
-                            # text is contained in a shape without a parent placeholder, unsetting these
-                            # fields will revert the style to a value matching the defaults in the Slides
-                            # editor.
-                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "bold": True or False, # Whether or not the text is rendered as bold.
-                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                              #
-                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                              # rendered in a smaller font size, computed based on the `font_size` field.
-                              # The `font_size` itself is not affected by changes in this field.
-                          "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "fontFamily": "A String", # The font family of the text.
-                                #
-                                # The font family can be any font from the Font menu in Slides or from
-                                # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                # unrecognized, the text is rendered in `Arial`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                          "fontFamily": "A String", # The font family of the text.
-                              #
-                              # The font family can be any font from the Font menu in Slides or from
-                              # [Google Fonts] (https://fonts.google.com/). If the font name is
-                              # unrecognized, the text is rendered in `Arial`.
-                              #
-                              # Some fonts can affect the weight of the text. If an update request
-                              # specifies values for both `font_family` and `bold`, the explicitly-set
-                              # `bold` value is used.
-                          "italic": True or False, # Whether or not the text is italicized.
-                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                              # are not inherited from parent text.
-                              #
-                              # Changing the link in an update request causes some other changes to the
-                              # text style of the range:
-                              #
-                              # * When setting a link, the text foreground color will be set to
-                              #   ThemeColorType.HYPERLINK and the text will
-                              #   be underlined. If these fields are modified in the same
-                              #   request, those values will be used instead of the link defaults.
-                              # * Setting a link on a text range that overlaps with an existing link will
-                              #   also update the existing link to point to the new URL.
-                              # * Links are not settable on newline characters. As a result, setting a link
-                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                              #   will separate the newline character(s) into their own text runs. The
-                              #   link will be applied separately to the runs before and after the newline.
-                              # * Removing a link will update the text style of the range to match the
-                              #   style of the preceding text (or the default text styles if the preceding
-                              #   text is another link) unless different styles are being set in the same
-                              #   request.
-                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
-                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                # in the presentation. There may not be a slide at this index.
-                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                # addressed by its position.
-                          },
-                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                              # transparent, depending on if the `opaque_color` field in it is set.
-                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                # a transparent color.
-                              "themeColor": "A String", # An opaque theme color.
-                              "rgbColor": { # An RGB color. # An opaque RGB color.
-                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                              },
-                            },
-                          },
-                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                              # points.
-                            "magnitude": 3.14, # The magnitude.
-                            "unit": "A String", # The units for magnitude.
-                          },
-                          "underline": True or False, # Whether or not the text is underlined.
-                        },
-                      },
-                    },
-                  ],
-                },
-                "shapeProperties": { # The properties of a Shape. # The properties of the shape.
-                    #
-                    # If the shape is a placeholder shape as determined by the
-                    # placeholder field, then these
-                    # properties may be inherited from a parent placeholder shape.
-                    # Determining the rendered value of the property depends on the corresponding
-                    # property_state field value.
-                  "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
-                      # a parent placeholder if it exists. If the shape has no parent, then the
-                      # default shadow matches the defaults for new shapes created in the Slides
-                      # editor. This property is read-only.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "color": { # A themeable solid color value. # The shadow color value.
-                      "themeColor": "A String", # An opaque theme color.
-                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                      },
-                    },
-                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                        # relative to the alignment position.
-                        # to transform source coordinates (x,y) into destination coordinates (x', y')
-                        # according to:
-                        #
-                        #       x'  x  =   shear_y  scale_y  translate_y
-                        #       1  [ 1 ]
-                        #
-                        # After transformation,
-                        #
-                        #      x' = scale_x * x + shear_x * y + translate_x;
-                        #      y' = scale_y * y + shear_y * x + translate_y;
-                        #
-                        # This message is therefore composed of these six matrix elements.
-                      "translateX": 3.14, # The X coordinate translation element.
-                      "translateY": 3.14, # The Y coordinate translation element.
-                      "scaleX": 3.14, # The X coordinate scaling element.
-                      "scaleY": 3.14, # The Y coordinate scaling element.
-                      "shearY": 3.14, # The Y coordinate shearing element.
-                      "shearX": 3.14, # The X coordinate shearing element.
-                      "unit": "A String", # The units for translate elements.
-                    },
-                    "propertyState": "A String", # The shadow property state.
-                        #
-                        # Updating the the shadow on a page element will implicitly update this field
-                        # to `RENDERED`, unless another value is specified in the same request. To
-                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                        # case, any other shadow fields set in the same request will be ignored.
-                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                        # shadow becomes.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                    "type": "A String", # The type of the shadow.
-                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                        # scale and skew of the shadow.
-                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                  },
-                  "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
-                      # inherited from a parent placeholder if it exists. If the shape has no
-                      # parent, then the default background fill depends on the shape type,
-                      # matching the defaults for new shapes created in the Slides editor.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                    "propertyState": "A String", # The background fill property state.
-                        #
-                        # Updating the the fill on a shape will implicitly update this field to
-                        # `RENDERED`, unless another value is specified in the same request. To
-                        # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
-                        # any other fill fields set in the same request will be ignored.
-                  },
-                  "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
-                      # are not inherited from parent placeholders.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
-                      # parent placeholder if it exists. If the shape has no parent, then the
-                      # default outline depends on the shape type, matching the defaults for
-                      # new shapes created in the Slides editor.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                },
-                "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
-                    # layouts and masters.
-                    #
-                    # If set, the shape is a placeholder shape and any inherited properties
-                    # can be resolved by looking at the parent placeholder identified by the
-                    # Placeholder.parent_object_id field.
-                  "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
-                      # If unset, the parent placeholder shape does not exist, so the shape does
-                      # not inherit properties from any other shape.
-                  "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                      # in the same page, they would have different index values.
-                  "type": "A String", # The type of the placeholder.
-                },
-                "shapeType": "A String", # The type of the shape.
-              },
-              "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
-                  # represented as images.
-                  # a linked chart embedded from Google Sheets.
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
-                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
-                    # minutes. This URL is tagged with the account of the requester. Anyone with
-                    # the URL effectively accesses the image as the original requester. Access to
-                    # the image may be lost if the presentation's sharing settings change.
-                "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
-                  "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
-                    "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
-                        #
-                        # If these fields are unset, they may be inherited from a parent placeholder
-                        # if it exists. If there is no parent, the fields will default to the value
-                        # used for new page elements created in the Slides editor, which may depend on
-                        # the page element kind.
-                      "outlineFill": { # The fill of the outline. # The fill of the outline.
-                        "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                            # specified color value.
-                            #
-                            # If any field is unset, its value may be inherited from a parent placeholder
-                            # if it exists.
-                          "color": { # A themeable solid color value. # The color value of the solid fill.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                          "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                              # That is, the final pixel color is defined by the equation:
-                              #
-                              #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                              #
-                              # This means that a value of 1.0 corresponds to a solid color, whereas
-                              # a value of 0.0 corresponds to a completely transparent color.
-                        },
-                      },
-                      "propertyState": "A String", # The outline property state.
-                          #
-                          # Updating the the outline on a page element will implicitly update this
-                          # field to`RENDERED`, unless another value is specified in the same request.
-                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                          # this case, any other outline fields set in the same request will be
-                          # ignored.
-                      "dashStyle": "A String", # The dash style of the outline.
-                      "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                        "magnitude": 3.14, # The magnitude.
-                        "unit": "A String", # The units for magnitude.
-                      },
-                    },
-                    "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
-                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                    "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
-                        # This property is read-only.
-                      "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
-                          # stops.
-                          #
-                          # The colors in the gradient will replace the corresponding colors at
-                          # the same position in the color palette and apply to the image. This
-                          # property is read-only.
-                        { # A color and position in a gradient band.
-                          "color": { # A themeable solid color value. # The color of the gradient stop.
-                            "themeColor": "A String", # An opaque theme color.
-                            "rgbColor": { # An RGB color. # An opaque RGB color.
-                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                            },
-                          },
-                          "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
-                              # fully opaque.
-                          "position": 3.14, # The relative position of the color stop in the gradient band measured
-                              # in percentage. The value should be in the interval [0.0, 1.0].
-                        },
-                      ],
-                      "name": "A String", # The name of the recolor effect.
-                          #
-                          # The name is determined from the `recolor_stops` by matching the gradient
-                          # against the colors in the page's current color scheme. This property is
-                          # read-only.
-                    },
-                    "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
-                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
-                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                          # in the presentation. There may not be a slide at this index.
-                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                          # addressed by its position.
-                    },
-                    "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
-                        # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
-                        # This property is read-only.
-                    "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
-                        # This property is read-only.
-                        # Image.
-                        #
-                        # The crop properties is represented by the offsets of four edges which define
-                        # a crop rectangle. The offsets are measured in percentage from the
-                        # corresponding edges of the object's original bounding rectangle towards
-                        # inside, relative to the object's original dimensions.
-                        #
-                        # - If the offset is in the interval (0, 1), the corresponding edge of crop
-                        # rectangle is positioned inside of the object's original bounding rectangle.
-                        # - If the offset is negative or greater than 1, the corresponding edge of crop
-                        # rectangle is positioned outside of the object's original bounding rectangle.
-                        # - If the left edge of the crop rectangle is on the right side of its right
-                        # edge, the object will be flipped horizontally.
-                        # - If the top edge of the crop rectangle is below its bottom edge, the object
-                        # will be flipped vertically.
-                        # - If all offsets and rotation angle is 0, the object is not cropped.
-                        #
-                        # After cropping, the content in the crop rectangle will be stretched to fit
-                        # its container.
-                      "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
-                          # the right of the original bounding rectangle left edge, relative to the
-                          # object's original width.
-                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                          # below the original bounding rectangle top edge, relative to the object's
-                          # original height.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
-                      "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                          # Rotation angle is applied after the offset.
-                      "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
-                          # to the left of the original bounding rectangle right edge, relative to the
-                          # object's original width.
-                    },
-                    "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
-                        # is read-only.
-                        #
-                        # If these fields are unset, they may be inherited from a parent placeholder
-                        # if it exists. If there is no parent, the fields will default to the value
-                        # used for new page elements created in the Slides editor, which may depend on
-                        # the page element kind.
-                      "color": { # A themeable solid color value. # The shadow color value.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
-                          # relative to the alignment position.
-                          # to transform source coordinates (x,y) into destination coordinates (x', y')
-                          # according to:
-                          #
-                          #       x'  x  =   shear_y  scale_y  translate_y
-                          #       1  [ 1 ]
-                          #
-                          # After transformation,
-                          #
-                          #      x' = scale_x * x + shear_x * y + translate_x;
-                          #      y' = scale_y * y + shear_y * x + translate_y;
-                          #
-                          # This message is therefore composed of these six matrix elements.
-                        "translateX": 3.14, # The X coordinate translation element.
-                        "translateY": 3.14, # The Y coordinate translation element.
-                        "scaleX": 3.14, # The X coordinate scaling element.
-                        "scaleY": 3.14, # The Y coordinate scaling element.
-                        "shearY": 3.14, # The Y coordinate shearing element.
-                        "shearX": 3.14, # The X coordinate shearing element.
-                        "unit": "A String", # The units for translate elements.
-                      },
-                      "propertyState": "A String", # The shadow property state.
-                          #
-                          # Updating the the shadow on a page element will implicitly update this field
-                          # to `RENDERED`, unless another value is specified in the same request. To
-                          # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
-                          # case, any other shadow fields set in the same request will be ignored.
-                      "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
-                          # shadow becomes.
-                        "magnitude": 3.14, # The magnitude.
-                        "unit": "A String", # The units for magnitude.
-                      },
-                      "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
-                      "type": "A String", # The type of the shadow.
-                      "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
-                          # scale and skew of the shadow.
-                      "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
-                    },
-                    "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
-                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
-                  },
-                },
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
-              },
-              "video": { # A PageElement kind representing a # A video page element.
-                  # video.
-                "url": "A String", # An URL to a video. The URL is valid as long as the source video
-                    # exists and sharing settings do not change.
-                "source": "A String", # The video source.
-                "id": "A String", # The video source's unique identifier for this video.
-                "videoProperties": { # The properties of the Video. # The properties of the video.
-                  "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
-                      # videos created in the Slides editor.
-                      #
-                      # If these fields are unset, they may be inherited from a parent placeholder
-                      # if it exists. If there is no parent, the fields will default to the value
-                      # used for new page elements created in the Slides editor, which may depend on
-                      # the page element kind.
-                    "outlineFill": { # The fill of the outline. # The fill of the outline.
-                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                          # specified color value.
-                          #
-                          # If any field is unset, its value may be inherited from a parent placeholder
-                          # if it exists.
-                        "color": { # A themeable solid color value. # The color value of the solid fill.
-                          "themeColor": "A String", # An opaque theme color.
-                          "rgbColor": { # An RGB color. # An opaque RGB color.
-                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                          },
-                        },
-                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                            # That is, the final pixel color is defined by the equation:
-                            #
-                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                            #
-                            # This means that a value of 1.0 corresponds to a solid color, whereas
-                            # a value of 0.0 corresponds to a completely transparent color.
-                      },
-                    },
-                    "propertyState": "A String", # The outline property state.
-                        #
-                        # Updating the the outline on a page element will implicitly update this
-                        # field to`RENDERED`, unless another value is specified in the same request.
-                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
-                        # this case, any other outline fields set in the same request will be
-                        # ignored.
-                    "dashStyle": "A String", # The dash style of the outline.
-                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                },
-              },
-              "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
-                  # joined collection of PageElements.
-                "children": [ # The collection of elements in the group. The minimum size of a group is 2.
-                  # Object with schema name: PageElement
-                ],
-              },
-              "table": { # A PageElement kind representing a # A table page element.
-                  # table.
-                "tableColumns": [ # Properties of each column.
-                  { # Properties of each column in a table.
-                    "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                ],
-                "tableRows": [ # Properties and contents of each row.
-                    #
-                    # Cells that span multiple rows are contained in only one of these rows and
-                    # have a row_span greater
-                    # than 1.
-                  { # Properties and contents of each row in a table.
-                    "tableCells": [ # Properties and contents of each cell.
-                        #
-                        # Cells that span multiple columns are represented only once with a
-                        # column_span greater
-                        # than 1. As a result, the length of this collection does not always match
-                        # the number of columns of the entire table.
-                      { # Properties and contents of each table cell.
-                        "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
-                            # text box or rectangle) or a table cell in a page.
-                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
-                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
-                                # associated with a list. A paragraph that is part of a list has an implicit
-                                # reference to that list's ID.
-                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
-                                  # level. A list has at most nine levels of nesting, so the possible values
-                                  # for the keys of this map are 0 through 8, inclusive.
-                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
-                                    # level of nesting.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is rendered as bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "fontFamily": "A String", # The font family of the text.
-                                          #
-                                          # The font family can be any font from the Font menu in Slides or from
-                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                          # unrecognized, the text is rendered in `Arial`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                  },
-                                },
-                              },
-                              "listId": "A String", # The ID of the list.
-                            },
-                          },
-                          "textElements": [ # The text contents broken down into its component parts, including styling
-                              # information. This property is read-only.
-                            { # A TextElement describes the content of a range of indices in the text content
-                                # of a Shape or TableCell.
-                              "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
-                                  # replaced with content that can change over time.
-                                "content": "A String", # The rendered content of this auto text, if available.
-                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is rendered as bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                },
-                                "type": "A String", # The type of this auto text.
-                              },
-                              "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
-                                  # units.
-                              "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
-                              "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
-                                  #
-                                  # The `start_index` and `end_index` of this TextElement represent the
-                                  # range of the paragraph. Other TextElements with an index range contained
-                                  # inside this paragraph's range are considered to be part of this
-                                  # paragraph. The range of indices of two separate paragraphs will never
-                                  # overlap.
-                                "style": { # Styles that apply to a whole paragraph. # The paragraph's style
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
-                                    # inherited from the parent. Which paragraph styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A paragraph not in a list will inherit its paragraph style from the
-                                    #   paragraph at the 0 nesting level of the list inside the parent placeholder.
-                                    # * A paragraph in a list will inherit its paragraph style from the paragraph
-                                    #   at its corresponding nesting level of the list inside the parent
-                                    #   placeholder.
-                                    #
-                                    # Inherited paragraph styles are represented as unset fields in this message.
-                                  "spacingMode": "A String", # The spacing mode for the paragraph.
-                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                      # LEFT_TO_RIGHT
-                                      # since text direction is not inherited.
-                                  "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
-                                      # is represented as 100.0. If unset, the value is inherited from the parent.
-                                  "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                                      # the start of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
-                                      # inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
-                                      # the end of the text, based on the current text direction. If unset, the
-                                      # value is inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
-                                      # If unset, the value is inherited from the parent.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "alignment": "A String", # The text alignment for this paragraph.
-                                },
-                                "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
-                                    # belong to a list.
-                                  "nestingLevel": 42, # The nesting level of this paragraph in the list.
-                                  "listId": "A String", # The ID of the list this paragraph belongs to.
-                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
-                                      #
-                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                      # inherited from the parent. Which text styles are inherited depend on the
-                                      # nesting level of lists:
-                                      #
-                                      # * A text run in a paragraph that is not in a list will inherit its text style
-                                      #   from the the newline character in the paragraph at the 0 nesting level of
-                                      #   the list inside the parent placeholder.
-                                      # * A text run in a paragraph that is in a list will inherit its text style
-                                      #   from the newline character in the paragraph at its corresponding nesting
-                                      #   level of the list inside the parent placeholder.
-                                      #
-                                      # Inherited text styles are represented as unset fields in this message. If
-                                      # text is contained in a shape without a parent placeholder, unsetting these
-                                      # fields will revert the style to a value matching the defaults in the Slides
-                                      # editor.
-                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "bold": True or False, # Whether or not the text is rendered as bold.
-                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                        #
-                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                        # rendered in a smaller font size, computed based on the `font_size` field.
-                                        # The `font_size` itself is not affected by changes in this field.
-                                    "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "fontFamily": "A String", # The font family of the text.
-                                          #
-                                          # The font family can be any font from the Font menu in Slides or from
-                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                          # unrecognized, the text is rendered in `Arial`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                        #
-                                        # Some fonts can affect the weight of the text. If an update request
-                                        # specifies values for both `font_family` and `bold`, the explicitly-set
-                                        # `bold` value is used.
-                                    "italic": True or False, # Whether or not the text is italicized.
-                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                        # are not inherited from parent text.
-                                        #
-                                        # Changing the link in an update request causes some other changes to the
-                                        # text style of the range:
-                                        #
-                                        # * When setting a link, the text foreground color will be set to
-                                        #   ThemeColorType.HYPERLINK and the text will
-                                        #   be underlined. If these fields are modified in the same
-                                        #   request, those values will be used instead of the link defaults.
-                                        # * Setting a link on a text range that overlaps with an existing link will
-                                        #   also update the existing link to point to the new URL.
-                                        # * Links are not settable on newline characters. As a result, setting a link
-                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                        #   will separate the newline character(s) into their own text runs. The
-                                        #   link will be applied separately to the runs before and after the newline.
-                                        # * Removing a link will update the text style of the range to match the
-                                        #   style of the preceding text (or the default text styles if the preceding
-                                        #   text is another link) unless different styles are being set in the same
-                                        #   request.
-                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
-                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                          # in the presentation. There may not be a slide at this index.
-                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                          # addressed by its position.
-                                    },
-                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                        # transparent, depending on if the `opaque_color` field in it is set.
-                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                          # a transparent color.
-                                        "themeColor": "A String", # An opaque theme color.
-                                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                        },
-                                      },
-                                    },
-                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                        # points.
-                                      "magnitude": 3.14, # The magnitude.
-                                      "unit": "A String", # The units for magnitude.
-                                    },
-                                    "underline": True or False, # Whether or not the text is underlined.
-                                  },
-                                  "glyph": "A String", # The rendered bullet glyph for this paragraph.
-                                },
-                              },
-                              "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
-                                  # in the run have the same TextStyle.
-                                  #
-                                  # The `start_index` and `end_index` of TextRuns will always be fully
-                                  # contained in the index range of a single `paragraph_marker` TextElement.
-                                  # In other words, a TextRun will never span multiple paragraphs.
-                                  # styling.
-                                "content": "A String", # The text of this run.
-                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
-                                    #
-                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
-                                    # inherited from the parent. Which text styles are inherited depend on the
-                                    # nesting level of lists:
-                                    #
-                                    # * A text run in a paragraph that is not in a list will inherit its text style
-                                    #   from the the newline character in the paragraph at the 0 nesting level of
-                                    #   the list inside the parent placeholder.
-                                    # * A text run in a paragraph that is in a list will inherit its text style
-                                    #   from the newline character in the paragraph at its corresponding nesting
-                                    #   level of the list inside the parent placeholder.
-                                    #
-                                    # Inherited text styles are represented as unset fields in this message. If
-                                    # text is contained in a shape without a parent placeholder, unsetting these
-                                    # fields will revert the style to a value matching the defaults in the Slides
-                                    # editor.
-                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "bold": True or False, # Whether or not the text is rendered as bold.
-                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
-                                      #
-                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
-                                      # rendered in a smaller font size, computed based on the `font_size` field.
-                                      # The `font_size` itself is not affected by changes in this field.
-                                  "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "fontFamily": "A String", # The font family of the text.
-                                        #
-                                        # The font family can be any font from the Font menu in Slides or from
-                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                        # unrecognized, the text is rendered in `Arial`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
-                                  "fontFamily": "A String", # The font family of the text.
-                                      #
-                                      # The font family can be any font from the Font menu in Slides or from
-                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
-                                      # unrecognized, the text is rendered in `Arial`.
-                                      #
-                                      # Some fonts can affect the weight of the text. If an update request
-                                      # specifies values for both `font_family` and `bold`, the explicitly-set
-                                      # `bold` value is used.
-                                  "italic": True or False, # Whether or not the text is italicized.
-                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
-                                      # are not inherited from parent text.
-                                      #
-                                      # Changing the link in an update request causes some other changes to the
-                                      # text style of the range:
-                                      #
-                                      # * When setting a link, the text foreground color will be set to
-                                      #   ThemeColorType.HYPERLINK and the text will
-                                      #   be underlined. If these fields are modified in the same
-                                      #   request, those values will be used instead of the link defaults.
-                                      # * Setting a link on a text range that overlaps with an existing link will
-                                      #   also update the existing link to point to the new URL.
-                                      # * Links are not settable on newline characters. As a result, setting a link
-                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
-                                      #   will separate the newline character(s) into their own text runs. The
-                                      #   link will be applied separately to the runs before and after the newline.
-                                      # * Removing a link will update the text style of the range to match the
-                                      #   style of the preceding text (or the default text styles if the preceding
-                                      #   text is another link) unless different styles are being set in the same
-                                      #   request.
-                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
-                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                                        # in the presentation. There may not be a slide at this index.
-                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                                        # addressed by its position.
-                                  },
-                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
-                                      # transparent, depending on if the `opaque_color` field in it is set.
-                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
-                                        # a transparent color.
-                                      "themeColor": "A String", # An opaque theme color.
-                                      "rgbColor": { # An RGB color. # An opaque RGB color.
-                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                      },
-                                    },
-                                  },
-                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
-                                      # points.
-                                    "magnitude": 3.14, # The magnitude.
-                                    "unit": "A String", # The units for magnitude.
-                                  },
-                                  "underline": True or False, # Whether or not the text is underlined.
-                                },
-                              },
-                            },
-                          ],
-                        },
-                        "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
-                          "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
-                              # for newly created table cells in the Slides editor.
-                            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                                # specified color value.
-                                #
-                                # If any field is unset, its value may be inherited from a parent placeholder
-                                # if it exists.
-                              "color": { # A themeable solid color value. # The color value of the solid fill.
-                                "themeColor": "A String", # An opaque theme color.
-                                "rgbColor": { # An RGB color. # An opaque RGB color.
-                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                                },
-                              },
-                              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                                  # That is, the final pixel color is defined by the equation:
-                                  #
-                                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                                  #
-                                  # This means that a value of 1.0 corresponds to a solid color, whereas
-                                  # a value of 0.0 corresponds to a completely transparent color.
-                            },
-                            "propertyState": "A String", # The background fill property state.
-                                #
-                                # Updating the the fill on a table cell will implicitly update this field
-                                # to `RENDERED`, unless another value is specified in the same request. To
-                                # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
-                                # case, any other fill fields set in the same request will be ignored.
-                          },
-                        },
-                        "rowSpan": 42, # Row span of the cell.
-                        "columnSpan": 42, # Column span of the cell.
-                        "location": { # A location of a single table cell within a table. # The location of the cell within the table.
-                          "rowIndex": 42, # The 0-based row index.
-                          "columnIndex": 42, # The 0-based column index.
-                        },
-                      },
-                    ],
-                    "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
-                      "magnitude": 3.14, # The magnitude.
-                      "unit": "A String", # The units for magnitude.
-                    },
-                  },
-                ],
-                "rows": 42, # Number of rows in the table.
-                "columns": 42, # Number of columns in the table.
-              },
-              "line": { # A PageElement kind representing a # A line page element.
-                  # line, curved connector, or bent connector.
-                "lineProperties": { # The properties of the Line. # The properties of the line.
-                    #
-                    # When unset, these fields default to values that match the appearance of
-                    # new lines created in the Slides editor.
-                  "dashStyle": "A String", # The dash style of the line.
-                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                  "endArrow": "A String", # The style of the arrow at the end of the line.
-                  "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
-                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
-                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
-                        # in the presentation. There may not be a slide at this index.
-                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
-                        # addressed by its position.
-                  },
-                  "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
-                      # lines created in the Slides editor.
-                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                        # specified color value.
-                        #
-                        # If any field is unset, its value may be inherited from a parent placeholder
-                        # if it exists.
-                      "color": { # A themeable solid color value. # The color value of the solid fill.
-                        "themeColor": "A String", # An opaque theme color.
-                        "rgbColor": { # An RGB color. # An opaque RGB color.
-                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                        },
-                      },
-                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                          # That is, the final pixel color is defined by the equation:
-                          #
-                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                          #
-                          # This means that a value of 1.0 corresponds to a solid color, whereas
-                          # a value of 0.0 corresponds to a completely transparent color.
-                    },
-                  },
-                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
-                },
-                "lineType": "A String", # The type of the line.
-              },
-              "size": { # A width and height. # The size of the page element.
-                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-                  "magnitude": 3.14, # The magnitude.
-                  "unit": "A String", # The units for magnitude.
-                },
-              },
-            },
-          ],
-          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
-              # relevant for pages with page_type NOTES.
-            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
-                # notes for the corresponding slide.
-                # The actual shape may not always exist on the notes page. Inserting text
-                # using this object ID will automatically create the shape. In this case, the
-                # actual shape may have different object ID. The `GetPresentation` or
-                # `GetPage` action will always return the latest object ID.
-          },
-          "objectId": "A String", # The object ID for this page. Object IDs used by
-              # Page and
-              # PageElement share the same namespace.
-          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
-              # update requests to assert that the presentation revision hasn't changed
-              # since the last read operation. Only populated if the user has edit access
-              # to the presentation.
-              #
-              # The format of the revision ID may change over time, so it should be treated
-              # opaquely. A returned revision ID is only guaranteed to be valid for 24
-              # hours after it has been returned and cannot be shared across
-              # users. Callers can assume that if two revision IDs are equal then the
-              # presentation has not changed.
-          "pageProperties": { # The properties of the Page. # The properties of the page.
-              #
-              # The page will inherit properties from the parent page. Depending on the page
-              # type the hierarchy is defined in either
-              # SlideProperties or
-              # LayoutProperties.
-            "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
-                # from a parent page if it exists. If the page has no parent, then the
-                # background fill defaults to the corresponding fill in the Slides editor.
-              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
-                  # specified color value.
-                  #
-                  # If any field is unset, its value may be inherited from a parent placeholder
-                  # if it exists.
-                "color": { # A themeable solid color value. # The color value of the solid fill.
-                  "themeColor": "A String", # An opaque theme color.
-                  "rgbColor": { # An RGB color. # An opaque RGB color.
-                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                  },
-                },
-                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
-                    # That is, the final pixel color is defined by the equation:
-                    #
-                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
-                    #
-                    # This means that a value of 1.0 corresponds to a solid color, whereas
-                    # a value of 0.0 corresponds to a completely transparent color.
-              },
-              "propertyState": "A String", # The background fill property state.
-                  #
-                  # Updating the the fill on a page will implicitly update this field to
-                  # `RENDERED`, unless another value is specified in the same request. To
-                  # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
-                  # any other fill fields set in the same request will be ignored.
-              "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
-                  # the specified picture. The picture is stretched to fit its container.
-                "contentUrl": "A String", # Reading the content_url:
-                    #
-                    # An URL to a picture with a default lifetime of 30 minutes.
-                    # This URL is tagged with the account of the requester. Anyone with the URL
-                    # effectively accesses the picture as the original requester. Access to the
-                    # picture may be lost if the presentation's sharing settings change.
-                    #
-                    # Writing the content_url:
-                    #
-                    # The picture is fetched once at insertion time and a copy is stored for
-                    # display inside the presentation. Pictures must be less than 50MB in size,
-                    # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
-                    # format.
-                "size": { # A width and height. # The original size of the picture fill. This field is read-only.
-                  "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                  "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-                    "magnitude": 3.14, # The magnitude.
-                    "unit": "A String", # The units for magnitude.
-                  },
-                },
-              },
-            },
-            "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
-                # a parent page. If the page has no parent, the color scheme uses a default
-                # Slides color scheme. This field is read-only.
-              "colors": [ # The ThemeColorType and corresponding concrete color pairs.
-                { # A pair mapping a theme color type to the concrete color it represents.
-                  "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
-                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
-                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
-                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
-                  },
-                  "type": "A String", # The type of the theme color.
-                },
-              ],
-            },
-          },
-          "pageType": "A String", # The type of the page.
-          "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
-              # relevant for pages with page_type SLIDE.
-            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
-                # appearance of a notes page when printing or exporting slides with speaker
-                # notes. A notes page inherits properties from the
-                # notes master.
-                # The placeholder shape with type BODY on the notes page contains the speaker
-                # notes for this slide. The ID of this shape is identified by the
-                # speakerNotesObjectId field.
-                # The notes page is read-only except for the text content and styles of the
-                # speaker notes shape.
-            "masterObjectId": "A String", # The object ID of the master that this slide is based on.
-            "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
-          },
-        },
-      ],
-      "pageSize": { # A width and height. # The size of pages in the presentation.
-        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
-          "magnitude": 3.14, # The magnitude.
-          "unit": "A String", # The units for magnitude.
-        },
-      },
-      "title": "A String", # The title of the presentation.
-      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
-      "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
-          # to assert that the presentation revision hasn't changed since the last
-          # read operation. Only populated if the user has edit access to the
-          # presentation.
-          #
-          # The format of the revision ID may change over time, so it should be treated
-          # opaquely. A returned revision ID is only guaranteed to be valid for 24
-          # hours after it has been returned and cannot be shared across users. Callers
-          # can assume that if two revision IDs are equal then the presentation has not
-          # changed.
       "notesMaster": { # A page in a presentation. # The notes master in the presentation. It serves three purposes:
           #
           # - Placeholder shapes on a notes master contain the default text styles and
@@ -20198,10 +19554,10 @@
                 },
                 "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -20232,17 +19588,17 @@
                   "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                       # the right of the original bounding rectangle left edge, relative to the
                       # object's original width.
-                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                      # below the original bounding rectangle top edge, relative to the object's
-                      # original height.
-                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                      # above the original bounding rectangle bottom edge, relative to the object's
-                      # original height.
                   "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                       # Rotation angle is applied after the offset.
                   "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                       # to the left of the original bounding rectangle right edge, relative to the
                       # object's original width.
+                  "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                      # above the original bounding rectangle bottom edge, relative to the object's
+                      # original height.
+                  "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                      # below the original bounding rectangle top edge, relative to the object's
+                      # original height.
                 },
                 "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                     # is read-only.
@@ -20372,26 +19728,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -20425,10 +19802,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -20499,26 +19876,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -20552,10 +19950,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -20605,8 +20003,8 @@
                           # Inherited paragraph styles are represented as unset fields in this message.
                         "spacingMode": "A String", # The spacing mode for the paragraph.
                         "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                            # LEFT_TO_RIGHT
-                            # since text direction is not inherited.
+                            # LEFT_TO_RIGHT since
+                            # text direction is not inherited.
                         "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                             # inherited from the parent.
                           "magnitude": 3.14, # The magnitude.
@@ -20678,26 +20076,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -20731,10 +20150,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -20804,26 +20223,47 @@
                             # rendered in a smaller font size, computed based on the `font_size` field.
                             # The `font_size` itself is not affected by changes in this field.
                         "strikethrough": True or False, # Whether or not the text is struck through.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                             #
                             # This field is an extension of `font_family` meant to support explicit font
                             # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
+                            # style of a range of text, the value of `weighted_font_family#font_family`
+                            # will always be equal to that of `font_family`. However, when writing, if
+                            # both fields are included in the field mask (either explicitly or through
+                            # the wildcard `"*"`), their values are reconciled as follows:
+                            #
+                            # * If `font_family` is set and `weighted_font_family` is not, the value of
+                            #   `font_family` is applied with weight `400` ("normal").
+                            # * If both fields are set, the value of `font_family` must match that of
+                            #   `weighted_font_family#font_family`. If so, the font family and weight of
+                            #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                            #   returned.
+                            # * If `weighted_font_family` is set and `font_family` is not, the font
+                            #   family and weight of `weighted_font_family` is applied.
+                            # * If neither field is set, the font family and weight of the text inherit
+                            #   from the parent. Note that these properties cannot inherit separately
+                            #   from each other.
+                            #
+                            # If an update request specifies values for both `weighted_font_family` and
+                            # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                            #
+                            # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                            #
+                            # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                            # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                            # is returned.
                           "fontFamily": "A String", # The font family of the text.
                               #
                               # The font family can be any font from the Font menu in Slides or from
                               # [Google Fonts] (https://fonts.google.com/). If the font name is
                               # unrecognized, the text is rendered in `Arial`.
                           "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
+                              # multiple of `100` between `100` and `900`, inclusive. This range
+                              # corresponds to the numerical values described in the CSS 2.1
+                              # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                              # with non-numerical values disallowed. Weights greater than or equal to
+                              # `700` are considered bold, and weights less than `700`are not bold. The
+                              # default value is `400` ("normal").
                         },
                         "smallCaps": True or False, # Whether or not the text is in small capital letters.
                         "fontFamily": "A String", # The font family of the text.
@@ -20857,10 +20297,10 @@
                             #   text is another link) unless different styles are being set in the same
                             #   request.
                           "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                              # presentation with this ID. A page with this ID may not exist.
                           "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                               # in the presentation. There may not be a slide at this index.
+                          "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                              # presentation with this ID. A page with this ID may not exist.
                           "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                               # addressed by its position.
                         },
@@ -20985,10 +20425,10 @@
                 "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                     # are not inherited from parent placeholders.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -21047,8 +20487,8 @@
                 "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                     # If unset, the parent placeholder shape does not exist, so the shape does
                     # not inherit properties from any other shape.
-                "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                    # in the same page, they would have different index values.
+                "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                    # the same page, they would have different index values.
                 "type": "A String", # The type of the placeholder.
               },
               "shapeType": "A String", # The type of the shape.
@@ -21056,12 +20496,11 @@
             "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                 # represented as images.
                 # a linked chart embedded from Google Sheets.
-              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                  # embedded.
               "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                   # minutes. This URL is tagged with the account of the requester. Anyone with
                   # the URL effectively accesses the image as the original requester. Access to
                   # the image may be lost if the presentation's sharing settings change.
+              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                 "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                   "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -21139,10 +20578,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -21173,17 +20612,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -21243,14 +20682,13 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                  # embedded.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
               "url": "A String", # An URL to a video. The URL is valid as long as the source video
                   # exists and sharing settings do not change.
-              "source": "A String", # The video source.
-              "id": "A String", # The video source's unique identifier for this video.
               "videoProperties": { # The properties of the Video. # The properties of the video.
                 "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                     # videos created in the Slides editor.
@@ -21296,6 +20734,8 @@
                   },
                 },
               },
+              "id": "A String", # The video source's unique identifier for this video.
+              "source": "A String", # The video source.
             },
             "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                 # joined collection of PageElements.
@@ -21373,26 +20813,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -21426,10 +20887,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -21500,26 +20961,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -21553,10 +21035,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -21606,8 +21088,8 @@
                                   # Inherited paragraph styles are represented as unset fields in this message.
                                 "spacingMode": "A String", # The spacing mode for the paragraph.
                                 "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                    # LEFT_TO_RIGHT
-                                    # since text direction is not inherited.
+                                    # LEFT_TO_RIGHT since
+                                    # text direction is not inherited.
                                 "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                     # inherited from the parent.
                                   "magnitude": 3.14, # The magnitude.
@@ -21679,26 +21161,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -21732,10 +21235,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -21805,26 +21308,47 @@
                                     # rendered in a smaller font size, computed based on the `font_size` field.
                                     # The `font_size` itself is not affected by changes in this field.
                                 "strikethrough": True or False, # Whether or not the text is struck through.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                     #
                                     # This field is an extension of `font_family` meant to support explicit font
                                     # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
+                                    # style of a range of text, the value of `weighted_font_family#font_family`
+                                    # will always be equal to that of `font_family`. However, when writing, if
+                                    # both fields are included in the field mask (either explicitly or through
+                                    # the wildcard `"*"`), their values are reconciled as follows:
+                                    #
+                                    # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                    #   `font_family` is applied with weight `400` ("normal").
+                                    # * If both fields are set, the value of `font_family` must match that of
+                                    #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                    #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                    #   returned.
+                                    # * If `weighted_font_family` is set and `font_family` is not, the font
+                                    #   family and weight of `weighted_font_family` is applied.
+                                    # * If neither field is set, the font family and weight of the text inherit
+                                    #   from the parent. Note that these properties cannot inherit separately
+                                    #   from each other.
+                                    #
+                                    # If an update request specifies values for both `weighted_font_family` and
+                                    # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                    #
+                                    # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                    #
+                                    # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                    # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                    # is returned.
                                   "fontFamily": "A String", # The font family of the text.
                                       #
                                       # The font family can be any font from the Font menu in Slides or from
                                       # [Google Fonts] (https://fonts.google.com/). If the font name is
                                       # unrecognized, the text is rendered in `Arial`.
                                   "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
+                                      # multiple of `100` between `100` and `900`, inclusive. This range
+                                      # corresponds to the numerical values described in the CSS 2.1
+                                      # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                      # with non-numerical values disallowed. Weights greater than or equal to
+                                      # `700` are considered bold, and weights less than `700`are not bold. The
+                                      # default value is `400` ("normal").
                                 },
                                 "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                 "fontFamily": "A String", # The font family of the text.
@@ -21858,10 +21382,10 @@
                                     #   text is another link) unless different styles are being set in the same
                                     #   request.
                                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                      # presentation with this ID. A page with this ID may not exist.
                                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                       # in the presentation. There may not be a slide at this index.
+                                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                      # presentation with this ID. A page with this ID may not exist.
                                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                       # addressed by its position.
                                 },
@@ -21951,10 +21475,10 @@
                 "endArrow": "A String", # The style of the arrow at the end of the line.
                 "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                   "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                      # presentation with this ID. A page with this ID may not exist.
                   "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                       # in the presentation. There may not be a slide at this index.
+                  "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                      # presentation with this ID. A page with this ID may not exist.
                   "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                       # addressed by its position.
                 },
@@ -22017,9 +21541,11 @@
             #
             # The format of the revision ID may change over time, so it should be treated
             # opaquely. A returned revision ID is only guaranteed to be valid for 24
-            # hours after it has been returned and cannot be shared across
-            # users. Callers can assume that if two revision IDs are equal then the
-            # presentation has not changed.
+            # hours after it has been returned and cannot be shared across users. If the
+            # revision ID is unchanged between calls, then the presentation has not
+            # changed. Conversely, a changed ID (for the same presentation and user)
+            # usually means the presentation has been updated; however, a changed ID can
+            # also be due to internal factors such as ID format changes.
         "pageProperties": { # The properties of the Page. # The properties of the page.
             #
             # The page will inherit properties from the parent page. Depending on the page
@@ -22114,8 +21640,40 @@
           "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
         },
       },
-      "slides": [ # The slides in the presentation.
-          # A slide inherits properties from a slide layout.
+      "pageSize": { # A width and height. # The size of pages in the presentation.
+        "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+        "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+          "magnitude": 3.14, # The magnitude.
+          "unit": "A String", # The units for magnitude.
+        },
+      },
+      "title": "A String", # The title of the presentation.
+      "locale": "A String", # The locale of the presentation, as an IETF BCP 47 language tag.
+      "revisionId": "A String", # The revision ID of the presentation. Can be used in update requests
+          # to assert that the presentation revision hasn't changed since the last
+          # read operation. Only populated if the user has edit access to the
+          # presentation.
+          #
+          # The format of the revision ID may change over time, so it should be treated
+          # opaquely. A returned revision ID is only guaranteed to be valid for 24
+          # hours after it has been returned and cannot be shared across users. If the
+          # revision ID is unchanged between calls, then the presentation has not
+          # changed. Conversely, a changed ID (for the same presentation and user)
+          # usually means the presentation has been updated; however, a changed ID can
+          # also be due to internal factors such as ID format changes.
+      "masters": [ # The slide masters in the presentation. A slide master contains all common
+          # page elements and the common properties for a set of layouts. They serve
+          # three purposes:
+          #
+          # - Placeholder shapes on a master contain the default text styles and shape
+          #   properties of all placeholder shapes on pages that use that master.
+          # - The master page properties define the common page properties inherited by
+          #   its layouts.
+          # - Any other shapes on the master slide will appear on all slides using that
+          #   master, regardless of their layout.
         { # A page in a presentation.
           "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
               # relevant for pages with page_type LAYOUT.
@@ -22218,10 +21776,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -22252,17 +21810,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -22392,26 +21950,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -22445,10 +22024,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -22519,26 +22098,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -22572,10 +22172,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -22625,8 +22225,8 @@
                             # Inherited paragraph styles are represented as unset fields in this message.
                           "spacingMode": "A String", # The spacing mode for the paragraph.
                           "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                              # LEFT_TO_RIGHT
-                              # since text direction is not inherited.
+                              # LEFT_TO_RIGHT since
+                              # text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                               # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
@@ -22698,26 +22298,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -22751,10 +22372,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -22824,26 +22445,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -22877,10 +22519,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -23005,10 +22647,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -23067,8 +22709,8 @@
                   "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                       # If unset, the parent placeholder shape does not exist, so the shape does
                       # not inherit properties from any other shape.
-                  "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                      # in the same page, they would have different index values.
+                  "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                      # the same page, they would have different index values.
                   "type": "A String", # The type of the placeholder.
                 },
                 "shapeType": "A String", # The type of the shape.
@@ -23076,12 +22718,11 @@
               "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                   # represented as images.
                   # a linked chart embedded from Google Sheets.
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
                 "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                     # minutes. This URL is tagged with the account of the requester. Anyone with
                     # the URL effectively accesses the image as the original requester. Access to
                     # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -23159,10 +22800,10 @@
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -23193,17 +22834,17 @@
                       "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                           # the right of the original bounding rectangle left edge, relative to the
                           # object's original width.
-                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                          # below the original bounding rectangle top edge, relative to the object's
-                          # original height.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
+                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                          # below the original bounding rectangle top edge, relative to the object's
+                          # original height.
                     },
                     "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                         # is read-only.
@@ -23263,14 +22904,13 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                    # embedded.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
-                "source": "A String", # The video source.
-                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -23316,6 +22956,8 @@
                     },
                   },
                 },
+                "id": "A String", # The video source's unique identifier for this video.
+                "source": "A String", # The video source.
               },
               "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                   # joined collection of PageElements.
@@ -23393,26 +23035,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -23446,10 +23109,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -23520,26 +23183,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -23573,10 +23257,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -23626,8 +23310,8 @@
                                     # Inherited paragraph styles are represented as unset fields in this message.
                                   "spacingMode": "A String", # The spacing mode for the paragraph.
                                   "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                      # LEFT_TO_RIGHT
-                                      # since text direction is not inherited.
+                                      # LEFT_TO_RIGHT since
+                                      # text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                       # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
@@ -23699,26 +23383,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -23752,10 +23457,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -23825,26 +23530,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -23878,10 +23604,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -23971,10 +23697,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -24037,9 +23763,2202 @@
               #
               # The format of the revision ID may change over time, so it should be treated
               # opaquely. A returned revision ID is only guaranteed to be valid for 24
-              # hours after it has been returned and cannot be shared across
-              # users. Callers can assume that if two revision IDs are equal then the
-              # presentation has not changed.
+              # hours after it has been returned and cannot be shared across users. If the
+              # revision ID is unchanged between calls, then the presentation has not
+              # changed. Conversely, a changed ID (for the same presentation and user)
+              # usually means the presentation has been updated; however, a changed ID can
+              # also be due to internal factors such as ID format changes.
+          "pageProperties": { # The properties of the Page. # The properties of the page.
+              #
+              # The page will inherit properties from the parent page. Depending on the page
+              # type the hierarchy is defined in either
+              # SlideProperties or
+              # LayoutProperties.
+            "pageBackgroundFill": { # The page background fill. # The background fill of the page. If unset, the background fill is inherited
+                # from a parent page if it exists. If the page has no parent, then the
+                # background fill defaults to the corresponding fill in the Slides editor.
+              "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                  # specified color value.
+                  #
+                  # If any field is unset, its value may be inherited from a parent placeholder
+                  # if it exists.
+                "color": { # A themeable solid color value. # The color value of the solid fill.
+                  "themeColor": "A String", # An opaque theme color.
+                  "rgbColor": { # An RGB color. # An opaque RGB color.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                },
+                "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                    # That is, the final pixel color is defined by the equation:
+                    #
+                    #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                    #
+                    # This means that a value of 1.0 corresponds to a solid color, whereas
+                    # a value of 0.0 corresponds to a completely transparent color.
+              },
+              "propertyState": "A String", # The background fill property state.
+                  #
+                  # Updating the the fill on a page will implicitly update this field to
+                  # `RENDERED`, unless another value is specified in the same request. To
+                  # have no fill on a page, set this field to `NOT_RENDERED`. In this case,
+                  # any other fill fields set in the same request will be ignored.
+              "stretchedPictureFill": { # The stretched picture fill. The page or page element is filled entirely with # Stretched picture fill.
+                  # the specified picture. The picture is stretched to fit its container.
+                "contentUrl": "A String", # Reading the content_url:
+                    #
+                    # An URL to a picture with a default lifetime of 30 minutes.
+                    # This URL is tagged with the account of the requester. Anyone with the URL
+                    # effectively accesses the picture as the original requester. Access to the
+                    # picture may be lost if the presentation's sharing settings change.
+                    #
+                    # Writing the content_url:
+                    #
+                    # The picture is fetched once at insertion time and a copy is stored for
+                    # display inside the presentation. Pictures must be less than 50MB in size,
+                    # cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
+                    # format.
+                "size": { # A width and height. # The original size of the picture fill. This field is read-only.
+                  "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                },
+              },
+            },
+            "colorScheme": { # The palette of predefined colors for a page. # The color scheme of the page. If unset, the color scheme is inherited from
+                # a parent page. If the page has no parent, the color scheme uses a default
+                # Slides color scheme. This field is read-only.
+              "colors": [ # The ThemeColorType and corresponding concrete color pairs.
+                { # A pair mapping a theme color type to the concrete color it represents.
+                  "color": { # An RGB color. # The concrete color corresponding to the theme color type above.
+                    "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                    "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                    "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                  },
+                  "type": "A String", # The type of the theme color.
+                },
+              ],
+            },
+          },
+          "pageType": "A String", # The type of the page.
+          "slideProperties": { # The properties of Page that are only # Slide specific properties. Only set if page_type = SLIDE.
+              # relevant for pages with page_type SLIDE.
+            "notesPage": # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual
+                # appearance of a notes page when printing or exporting slides with speaker
+                # notes. A notes page inherits properties from the
+                # notes master.
+                # The placeholder shape with type BODY on the notes page contains the speaker
+                # notes for this slide. The ID of this shape is identified by the
+                # speakerNotesObjectId field.
+                # The notes page is read-only except for the text content and styles of the
+                # speaker notes shape.
+            "masterObjectId": "A String", # The object ID of the master that this slide is based on.
+            "layoutObjectId": "A String", # The object ID of the layout that this slide is based on.
+          },
+        },
+      ],
+      "slides": [ # The slides in the presentation.
+          # A slide inherits properties from a slide layout.
+        { # A page in a presentation.
+          "layoutProperties": { # The properties of Page are only # Layout specific properties. Only set if page_type = LAYOUT.
+              # relevant for pages with page_type LAYOUT.
+            "displayName": "A String", # The human readable name of the layout in the presentation's locale.
+            "name": "A String", # The name of the layout.
+            "masterObjectId": "A String", # The object ID of the master that this layout is based on.
+          },
+          "pageElements": [ # The page elements rendered on the page.
+            { # A visual element rendered on a page.
+              "wordArt": { # A PageElement kind representing # A word art page element.
+                  # word art.
+                "renderedText": "A String", # The text rendered as word art.
+              },
+              "description": "A String", # The description of the page element. Combined with title to display alt
+                  # text.
+              "objectId": "A String", # The object ID for this page element. Object IDs used by
+                  # google.apps.slides.v1.Page and
+                  # google.apps.slides.v1.PageElement share the same namespace.
+              "title": "A String", # The title of the page element. Combined with description to display alt
+                  # text.
+              "image": { # A PageElement kind representing an # An image page element.
+                  # image.
+                "contentUrl": "A String", # An URL to an image with a default lifetime of 30 minutes.
+                    # This URL is tagged with the account of the requester. Anyone with the URL
+                    # effectively accesses the image as the original requester. Access to the
+                    # image may be lost if the presentation's sharing settings change.
+                "imageProperties": { # The properties of the Image. # The properties of the image.
+                  "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                  "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                      # This property is read-only.
+                    "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                        # stops.
+                        #
+                        # The colors in the gradient will replace the corresponding colors at
+                        # the same position in the color palette and apply to the image. This
+                        # property is read-only.
+                      { # A color and position in a gradient band.
+                        "color": { # A themeable solid color value. # The color of the gradient stop.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                            # fully opaque.
+                        "position": 3.14, # The relative position of the color stop in the gradient band measured
+                            # in percentage. The value should be in the interval [0.0, 1.0].
+                      },
+                    ],
+                    "name": "A String", # The name of the recolor effect.
+                        #
+                        # The name is determined from the `recolor_stops` by matching the gradient
+                        # against the colors in the page's current color scheme. This property is
+                        # read-only.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                      # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                      # This property is read-only.
+                  "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                      # This property is read-only.
+                      # Image.
+                      #
+                      # The crop properties is represented by the offsets of four edges which define
+                      # a crop rectangle. The offsets are measured in percentage from the
+                      # corresponding edges of the object's original bounding rectangle towards
+                      # inside, relative to the object's original dimensions.
+                      #
+                      # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                      # rectangle is positioned inside of the object's original bounding rectangle.
+                      # - If the offset is negative or greater than 1, the corresponding edge of crop
+                      # rectangle is positioned outside of the object's original bounding rectangle.
+                      # - If the left edge of the crop rectangle is on the right side of its right
+                      # edge, the object will be flipped horizontally.
+                      # - If the top edge of the crop rectangle is below its bottom edge, the object
+                      # will be flipped vertically.
+                      # - If all offsets and rotation angle is 0, the object is not cropped.
+                      #
+                      # After cropping, the content in the crop rectangle will be stretched to fit
+                      # its container.
+                    "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                        # the right of the original bounding rectangle left edge, relative to the
+                        # object's original width.
+                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                        # Rotation angle is applied after the offset.
+                    "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                        # to the left of the original bounding rectangle right edge, relative to the
+                        # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
+                  },
+                  "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                      # is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                      # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                },
+              },
+              "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # The transform of the page element.
+                  # to transform source coordinates (x,y) into destination coordinates (x', y')
+                  # according to:
+                  #
+                  #       x'  x  =   shear_y  scale_y  translate_y
+                  #       1  [ 1 ]
+                  #
+                  # After transformation,
+                  #
+                  #      x' = scale_x * x + shear_x * y + translate_x;
+                  #      y' = scale_y * y + shear_y * x + translate_y;
+                  #
+                  # This message is therefore composed of these six matrix elements.
+                "translateX": 3.14, # The X coordinate translation element.
+                "translateY": 3.14, # The Y coordinate translation element.
+                "scaleX": 3.14, # The X coordinate scaling element.
+                "scaleY": 3.14, # The Y coordinate scaling element.
+                "shearY": 3.14, # The Y coordinate shearing element.
+                "shearX": 3.14, # The X coordinate shearing element.
+                "unit": "A String", # The units for translate elements.
+              },
+              "shape": { # A PageElement kind representing a # A generic shape.
+                  # generic shape that does not have a more specific classification.
+                "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the shape.
+                    # text box or rectangle) or a table cell in a page.
+                  "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                    "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                        # associated with a list. A paragraph that is part of a list has an implicit
+                        # reference to that list's ID.
+                      "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                          # level. A list has at most nine levels of nesting, so the possible values
+                          # for the keys of this map are 0 through 8, inclusive.
+                        "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                            # level of nesting.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
+                            },
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                          },
+                        },
+                      },
+                      "listId": "A String", # The ID of the list.
+                    },
+                  },
+                  "textElements": [ # The text contents broken down into its component parts, including styling
+                      # information. This property is read-only.
+                    { # A TextElement describes the content of a range of indices in the text content
+                        # of a Shape or TableCell.
+                      "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                          # replaced with content that can change over time.
+                        "content": "A String", # The rendered content of this auto text, if available.
+                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
+                          },
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                        },
+                        "type": "A String", # The type of this auto text.
+                      },
+                      "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                          # units.
+                      "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                      "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                          #
+                          # The `start_index` and `end_index` of this TextElement represent the
+                          # range of the paragraph. Other TextElements with an index range contained
+                          # inside this paragraph's range are considered to be part of this
+                          # paragraph. The range of indices of two separate paragraphs will never
+                          # overlap.
+                        "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                            # inherited from the parent. Which paragraph styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A paragraph not in a list will inherit its paragraph style from the
+                            #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                            # * A paragraph in a list will inherit its paragraph style from the paragraph
+                            #   at its corresponding nesting level of the list inside the parent
+                            #   placeholder.
+                            #
+                            # Inherited paragraph styles are represented as unset fields in this message.
+                          "spacingMode": "A String", # The spacing mode for the paragraph.
+                          "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                              # LEFT_TO_RIGHT since
+                              # text direction is not inherited.
+                          "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                              # inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                              # is represented as 100.0. If unset, the value is inherited from the parent.
+                          "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                              # the start of the text, based on the current text direction. If unset, the
+                              # value is inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                              # inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                              # the end of the text, based on the current text direction. If unset, the
+                              # value is inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                              # If unset, the value is inherited from the parent.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "alignment": "A String", # The text alignment for this paragraph.
+                        },
+                        "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                            # belong to a list.
+                          "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                          "listId": "A String", # The ID of the list this paragraph belongs to.
+                          "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                              #
+                              # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                              # inherited from the parent. Which text styles are inherited depend on the
+                              # nesting level of lists:
+                              #
+                              # * A text run in a paragraph that is not in a list will inherit its text style
+                              #   from the the newline character in the paragraph at the 0 nesting level of
+                              #   the list inside the parent placeholder.
+                              # * A text run in a paragraph that is in a list will inherit its text style
+                              #   from the newline character in the paragraph at its corresponding nesting
+                              #   level of the list inside the parent placeholder.
+                              #
+                              # Inherited text styles are represented as unset fields in this message. If
+                              # text is contained in a shape without a parent placeholder, unsetting these
+                              # fields will revert the style to a value matching the defaults in the Slides
+                              # editor.
+                            "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "bold": True or False, # Whether or not the text is rendered as bold.
+                            "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                #
+                                # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                # rendered in a smaller font size, computed based on the `font_size` field.
+                                # The `font_size` itself is not affected by changes in this field.
+                            "strikethrough": True or False, # Whether or not the text is struck through.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
+                              "fontFamily": "A String", # The font family of the text.
+                                  #
+                                  # The font family can be any font from the Font menu in Slides or from
+                                  # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                  # unrecognized, the text is rendered in `Arial`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
+                            },
+                            "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                                #
+                                # Some fonts can affect the weight of the text. If an update request
+                                # specifies values for both `font_family` and `bold`, the explicitly-set
+                                # `bold` value is used.
+                            "italic": True or False, # Whether or not the text is italicized.
+                            "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                # are not inherited from parent text.
+                                #
+                                # Changing the link in an update request causes some other changes to the
+                                # text style of the range:
+                                #
+                                # * When setting a link, the text foreground color will be set to
+                                #   ThemeColorType.HYPERLINK and the text will
+                                #   be underlined. If these fields are modified in the same
+                                #   request, those values will be used instead of the link defaults.
+                                # * Setting a link on a text range that overlaps with an existing link will
+                                #   also update the existing link to point to the new URL.
+                                # * Links are not settable on newline characters. As a result, setting a link
+                                #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                #   will separate the newline character(s) into their own text runs. The
+                                #   link will be applied separately to the runs before and after the newline.
+                                # * Removing a link will update the text style of the range to match the
+                                #   style of the preceding text (or the default text styles if the preceding
+                                #   text is another link) unless different styles are being set in the same
+                                #   request.
+                              "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                              "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                  # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                # transparent, depending on if the `opaque_color` field in it is set.
+                              "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                  # a transparent color.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                            },
+                            "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                # points.
+                              "magnitude": 3.14, # The magnitude.
+                              "unit": "A String", # The units for magnitude.
+                            },
+                            "underline": True or False, # Whether or not the text is underlined.
+                          },
+                          "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                        },
+                      },
+                      "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                          # in the run have the same TextStyle.
+                          #
+                          # The `start_index` and `end_index` of TextRuns will always be fully
+                          # contained in the index range of a single `paragraph_marker` TextElement.
+                          # In other words, a TextRun will never span multiple paragraphs.
+                          # styling.
+                        "content": "A String", # The text of this run.
+                        "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                            #
+                            # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                            # inherited from the parent. Which text styles are inherited depend on the
+                            # nesting level of lists:
+                            #
+                            # * A text run in a paragraph that is not in a list will inherit its text style
+                            #   from the the newline character in the paragraph at the 0 nesting level of
+                            #   the list inside the parent placeholder.
+                            # * A text run in a paragraph that is in a list will inherit its text style
+                            #   from the newline character in the paragraph at its corresponding nesting
+                            #   level of the list inside the parent placeholder.
+                            #
+                            # Inherited text styles are represented as unset fields in this message. If
+                            # text is contained in a shape without a parent placeholder, unsetting these
+                            # fields will revert the style to a value matching the defaults in the Slides
+                            # editor.
+                          "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "bold": True or False, # Whether or not the text is rendered as bold.
+                          "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                              #
+                              # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                              # rendered in a smaller font size, computed based on the `font_size` field.
+                              # The `font_size` itself is not affected by changes in this field.
+                          "strikethrough": True or False, # Whether or not the text is struck through.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
+                            "fontFamily": "A String", # The font family of the text.
+                                #
+                                # The font family can be any font from the Font menu in Slides or from
+                                # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                # unrecognized, the text is rendered in `Arial`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
+                          },
+                          "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                          "fontFamily": "A String", # The font family of the text.
+                              #
+                              # The font family can be any font from the Font menu in Slides or from
+                              # [Google Fonts] (https://fonts.google.com/). If the font name is
+                              # unrecognized, the text is rendered in `Arial`.
+                              #
+                              # Some fonts can affect the weight of the text. If an update request
+                              # specifies values for both `font_family` and `bold`, the explicitly-set
+                              # `bold` value is used.
+                          "italic": True or False, # Whether or not the text is italicized.
+                          "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                              # are not inherited from parent text.
+                              #
+                              # Changing the link in an update request causes some other changes to the
+                              # text style of the range:
+                              #
+                              # * When setting a link, the text foreground color will be set to
+                              #   ThemeColorType.HYPERLINK and the text will
+                              #   be underlined. If these fields are modified in the same
+                              #   request, those values will be used instead of the link defaults.
+                              # * Setting a link on a text range that overlaps with an existing link will
+                              #   also update the existing link to point to the new URL.
+                              # * Links are not settable on newline characters. As a result, setting a link
+                              #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                              #   will separate the newline character(s) into their own text runs. The
+                              #   link will be applied separately to the runs before and after the newline.
+                              # * Removing a link will update the text style of the range to match the
+                              #   style of the preceding text (or the default text styles if the preceding
+                              #   text is another link) unless different styles are being set in the same
+                              #   request.
+                            "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                            "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                              # transparent, depending on if the `opaque_color` field in it is set.
+                            "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                # a transparent color.
+                              "themeColor": "A String", # An opaque theme color.
+                              "rgbColor": { # An RGB color. # An opaque RGB color.
+                                "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                              },
+                            },
+                          },
+                          "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                              # points.
+                            "magnitude": 3.14, # The magnitude.
+                            "unit": "A String", # The units for magnitude.
+                          },
+                          "underline": True or False, # Whether or not the text is underlined.
+                        },
+                      },
+                    },
+                  ],
+                },
+                "shapeProperties": { # The properties of a Shape. # The properties of the shape.
+                    #
+                    # If the shape is a placeholder shape as determined by the
+                    # placeholder field, then these
+                    # properties may be inherited from a parent placeholder shape.
+                    # Determining the rendered value of the property depends on the corresponding
+                    # property_state field value.
+                  "shadow": { # The shadow properties of a page element. # The shadow properties of the shape. If unset, the shadow is inherited from
+                      # a parent placeholder if it exists. If the shape has no parent, then the
+                      # default shadow matches the defaults for new shapes created in the Slides
+                      # editor. This property is read-only.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "color": { # A themeable solid color value. # The shadow color value.
+                      "themeColor": "A String", # An opaque theme color.
+                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                    "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                        # relative to the alignment position.
+                        # to transform source coordinates (x,y) into destination coordinates (x', y')
+                        # according to:
+                        #
+                        #       x'  x  =   shear_y  scale_y  translate_y
+                        #       1  [ 1 ]
+                        #
+                        # After transformation,
+                        #
+                        #      x' = scale_x * x + shear_x * y + translate_x;
+                        #      y' = scale_y * y + shear_y * x + translate_y;
+                        #
+                        # This message is therefore composed of these six matrix elements.
+                      "translateX": 3.14, # The X coordinate translation element.
+                      "translateY": 3.14, # The Y coordinate translation element.
+                      "scaleX": 3.14, # The X coordinate scaling element.
+                      "scaleY": 3.14, # The Y coordinate scaling element.
+                      "shearY": 3.14, # The Y coordinate shearing element.
+                      "shearX": 3.14, # The X coordinate shearing element.
+                      "unit": "A String", # The units for translate elements.
+                    },
+                    "propertyState": "A String", # The shadow property state.
+                        #
+                        # Updating the the shadow on a page element will implicitly update this field
+                        # to `RENDERED`, unless another value is specified in the same request. To
+                        # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                        # case, any other shadow fields set in the same request will be ignored.
+                    "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                        # shadow becomes.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                    "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                    "type": "A String", # The type of the shadow.
+                    "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                        # scale and skew of the shadow.
+                    "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                  },
+                  "shapeBackgroundFill": { # The shape background fill. # The background fill of the shape. If unset, the background fill is
+                      # inherited from a parent placeholder if it exists. If the shape has no
+                      # parent, then the default background fill depends on the shape type,
+                      # matching the defaults for new shapes created in the Slides editor.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                    "propertyState": "A String", # The background fill property state.
+                        #
+                        # Updating the the fill on a shape will implicitly update this field to
+                        # `RENDERED`, unless another value is specified in the same request. To
+                        # have no fill on a shape, set this field to `NOT_RENDERED`. In this case,
+                        # any other fill fields set in the same request will be ignored.
+                  },
+                  "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
+                      # are not inherited from parent placeholders.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "outline": { # The outline of a PageElement. # The outline of the shape. If unset, the outline is inherited from a
+                      # parent placeholder if it exists. If the shape has no parent, then the
+                      # default outline depends on the shape type, matching the defaults for
+                      # new shapes created in the Slides editor.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                },
+                "placeholder": { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on
+                    # layouts and masters.
+                    #
+                    # If set, the shape is a placeholder shape and any inherited properties
+                    # can be resolved by looking at the parent placeholder identified by the
+                    # Placeholder.parent_object_id field.
+                  "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
+                      # If unset, the parent placeholder shape does not exist, so the shape does
+                      # not inherit properties from any other shape.
+                  "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                      # the same page, they would have different index values.
+                  "type": "A String", # The type of the placeholder.
+                },
+                "shapeType": "A String", # The type of the shape.
+              },
+              "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
+                  # represented as images.
+                  # a linked chart embedded from Google Sheets.
+                "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
+                    # minutes. This URL is tagged with the account of the requester. Anyone with
+                    # the URL effectively accesses the image as the original requester. Access to
+                    # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
+                  "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
+                    "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
+                        #
+                        # If these fields are unset, they may be inherited from a parent placeholder
+                        # if it exists. If there is no parent, the fields will default to the value
+                        # used for new page elements created in the Slides editor, which may depend on
+                        # the page element kind.
+                      "outlineFill": { # The fill of the outline. # The fill of the outline.
+                        "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                            # specified color value.
+                            #
+                            # If any field is unset, its value may be inherited from a parent placeholder
+                            # if it exists.
+                          "color": { # A themeable solid color value. # The color value of the solid fill.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                          "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                              # That is, the final pixel color is defined by the equation:
+                              #
+                              #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                              #
+                              # This means that a value of 1.0 corresponds to a solid color, whereas
+                              # a value of 0.0 corresponds to a completely transparent color.
+                        },
+                      },
+                      "propertyState": "A String", # The outline property state.
+                          #
+                          # Updating the the outline on a page element will implicitly update this
+                          # field to`RENDERED`, unless another value is specified in the same request.
+                          # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                          # this case, any other outline fields set in the same request will be
+                          # ignored.
+                      "dashStyle": "A String", # The dash style of the outline.
+                      "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                    },
+                    "brightness": 3.14, # The brightness effect of the image. The value should be in the interval
+                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                    "recolor": { # A recolor effect applied on an image. # The recolor effect of the image. If not set, the image is not recolored.
+                        # This property is read-only.
+                      "recolorStops": [ # The recolor effect is represented by a gradient, which is a list of color
+                          # stops.
+                          #
+                          # The colors in the gradient will replace the corresponding colors at
+                          # the same position in the color palette and apply to the image. This
+                          # property is read-only.
+                        { # A color and position in a gradient band.
+                          "color": { # A themeable solid color value. # The color of the gradient stop.
+                            "themeColor": "A String", # An opaque theme color.
+                            "rgbColor": { # An RGB color. # An opaque RGB color.
+                              "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                              "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                          "alpha": 3.14, # The alpha value of this color in the gradient band. Defaults to 1.0,
+                              # fully opaque.
+                          "position": 3.14, # The relative position of the color stop in the gradient band measured
+                              # in percentage. The value should be in the interval [0.0, 1.0].
+                        },
+                      ],
+                      "name": "A String", # The name of the recolor effect.
+                          #
+                          # The name is determined from the `recolor_stops` by matching the gradient
+                          # against the colors in the page's current color scheme. This property is
+                          # read-only.
+                    },
+                    "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
+                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                          # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
+                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                          # addressed by its position.
+                    },
+                    "transparency": 3.14, # The transparency effect of the image. The value should be in the interval
+                        # [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
+                        # This property is read-only.
+                    "cropProperties": { # The crop properties of an object enclosed in a container. For example, an # The crop properties of the image. If not set, the image is not cropped.
+                        # This property is read-only.
+                        # Image.
+                        #
+                        # The crop properties is represented by the offsets of four edges which define
+                        # a crop rectangle. The offsets are measured in percentage from the
+                        # corresponding edges of the object's original bounding rectangle towards
+                        # inside, relative to the object's original dimensions.
+                        #
+                        # - If the offset is in the interval (0, 1), the corresponding edge of crop
+                        # rectangle is positioned inside of the object's original bounding rectangle.
+                        # - If the offset is negative or greater than 1, the corresponding edge of crop
+                        # rectangle is positioned outside of the object's original bounding rectangle.
+                        # - If the left edge of the crop rectangle is on the right side of its right
+                        # edge, the object will be flipped horizontally.
+                        # - If the top edge of the crop rectangle is below its bottom edge, the object
+                        # will be flipped vertically.
+                        # - If all offsets and rotation angle is 0, the object is not cropped.
+                        #
+                        # After cropping, the content in the crop rectangle will be stretched to fit
+                        # its container.
+                      "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
+                          # the right of the original bounding rectangle left edge, relative to the
+                          # object's original width.
+                      "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
+                          # Rotation angle is applied after the offset.
+                      "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
+                          # to the left of the original bounding rectangle right edge, relative to the
+                          # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
+                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                          # below the original bounding rectangle top edge, relative to the object's
+                          # original height.
+                    },
+                    "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
+                        # is read-only.
+                        #
+                        # If these fields are unset, they may be inherited from a parent placeholder
+                        # if it exists. If there is no parent, the fields will default to the value
+                        # used for new page elements created in the Slides editor, which may depend on
+                        # the page element kind.
+                      "color": { # A themeable solid color value. # The shadow color value.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "transform": { # AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] # Transform that encodes the translate, scale, and skew of the shadow,
+                          # relative to the alignment position.
+                          # to transform source coordinates (x,y) into destination coordinates (x', y')
+                          # according to:
+                          #
+                          #       x'  x  =   shear_y  scale_y  translate_y
+                          #       1  [ 1 ]
+                          #
+                          # After transformation,
+                          #
+                          #      x' = scale_x * x + shear_x * y + translate_x;
+                          #      y' = scale_y * y + shear_y * x + translate_y;
+                          #
+                          # This message is therefore composed of these six matrix elements.
+                        "translateX": 3.14, # The X coordinate translation element.
+                        "translateY": 3.14, # The Y coordinate translation element.
+                        "scaleX": 3.14, # The X coordinate scaling element.
+                        "scaleY": 3.14, # The Y coordinate scaling element.
+                        "shearY": 3.14, # The Y coordinate shearing element.
+                        "shearX": 3.14, # The X coordinate shearing element.
+                        "unit": "A String", # The units for translate elements.
+                      },
+                      "propertyState": "A String", # The shadow property state.
+                          #
+                          # Updating the the shadow on a page element will implicitly update this field
+                          # to `RENDERED`, unless another value is specified in the same request. To
+                          # have no shadow on a page element, set this field to `NOT_RENDERED`. In this
+                          # case, any other shadow fields set in the same request will be ignored.
+                      "blurRadius": { # A magnitude in a single direction in the specified units. # The radius of the shadow blur. The larger the radius, the more diffuse the
+                          # shadow becomes.
+                        "magnitude": 3.14, # The magnitude.
+                        "unit": "A String", # The units for magnitude.
+                      },
+                      "alpha": 3.14, # The alpha of the shadow's color, from 0.0 to 1.0.
+                      "type": "A String", # The type of the shadow.
+                      "alignment": "A String", # The alignment point of the shadow, that sets the origin for translate,
+                          # scale and skew of the shadow.
+                      "rotateWithShape": True or False, # Whether the shadow should rotate with the shape.
+                    },
+                    "contrast": 3.14, # The contrast effect of the image. The value should be in the interval
+                        # [-1.0, 1.0], where 0 means no effect. This property is read-only.
+                  },
+                },
+                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                    # embedded.
+              },
+              "video": { # A PageElement kind representing a # A video page element.
+                  # video.
+                "url": "A String", # An URL to a video. The URL is valid as long as the source video
+                    # exists and sharing settings do not change.
+                "videoProperties": { # The properties of the Video. # The properties of the video.
+                  "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
+                      # videos created in the Slides editor.
+                      #
+                      # If these fields are unset, they may be inherited from a parent placeholder
+                      # if it exists. If there is no parent, the fields will default to the value
+                      # used for new page elements created in the Slides editor, which may depend on
+                      # the page element kind.
+                    "outlineFill": { # The fill of the outline. # The fill of the outline.
+                      "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                          # specified color value.
+                          #
+                          # If any field is unset, its value may be inherited from a parent placeholder
+                          # if it exists.
+                        "color": { # A themeable solid color value. # The color value of the solid fill.
+                          "themeColor": "A String", # An opaque theme color.
+                          "rgbColor": { # An RGB color. # An opaque RGB color.
+                            "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                            "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                        "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                            # That is, the final pixel color is defined by the equation:
+                            #
+                            #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                            #
+                            # This means that a value of 1.0 corresponds to a solid color, whereas
+                            # a value of 0.0 corresponds to a completely transparent color.
+                      },
+                    },
+                    "propertyState": "A String", # The outline property state.
+                        #
+                        # Updating the the outline on a page element will implicitly update this
+                        # field to`RENDERED`, unless another value is specified in the same request.
+                        # To have no outline on a page element, set this field to `NOT_RENDERED`. In
+                        # this case, any other outline fields set in the same request will be
+                        # ignored.
+                    "dashStyle": "A String", # The dash style of the outline.
+                    "weight": { # A magnitude in a single direction in the specified units. # The thickness of the outline.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                },
+                "id": "A String", # The video source's unique identifier for this video.
+                "source": "A String", # The video source.
+              },
+              "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
+                  # joined collection of PageElements.
+                "children": [ # The collection of elements in the group. The minimum size of a group is 2.
+                  # Object with schema name: PageElement
+                ],
+              },
+              "table": { # A PageElement kind representing a # A table page element.
+                  # table.
+                "tableColumns": [ # Properties of each column.
+                  { # Properties of each column in a table.
+                    "columnWidth": { # A magnitude in a single direction in the specified units. # Width of a column.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                ],
+                "tableRows": [ # Properties and contents of each row.
+                    #
+                    # Cells that span multiple rows are contained in only one of these rows and
+                    # have a row_span greater
+                    # than 1.
+                  { # Properties and contents of each row in a table.
+                    "tableCells": [ # Properties and contents of each cell.
+                        #
+                        # Cells that span multiple columns are represented only once with a
+                        # column_span greater
+                        # than 1. As a result, the length of this collection does not always match
+                        # the number of columns of the entire table.
+                      { # Properties and contents of each table cell.
+                        "text": { # The general text content. The text must reside in a compatible shape (e.g. # The text content of the cell.
+                            # text box or rectangle) or a table cell in a page.
+                          "lists": { # The bulleted lists contained in this text, keyed by list ID.
+                            "a_key": { # A List describes the look and feel of bullets belonging to paragraphs
+                                # associated with a list. A paragraph that is part of a list has an implicit
+                                # reference to that list's ID.
+                              "nestingLevel": { # A map of nesting levels to the properties of bullets at the associated
+                                  # level. A list has at most nine levels of nesting, so the possible values
+                                  # for the keys of this map are 0 through 8, inclusive.
+                                "a_key": { # Contains properties describing the look and feel of a list bullet at a given
+                                    # level of nesting.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The style of a bullet at this level of nesting.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
+                                      "fontFamily": "A String", # The font family of the text.
+                                          #
+                                          # The font family can be any font from the Font menu in Slides or from
+                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                          # unrecognized, the text is rendered in `Arial`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
+                                    },
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                  },
+                                },
+                              },
+                              "listId": "A String", # The ID of the list.
+                            },
+                          },
+                          "textElements": [ # The text contents broken down into its component parts, including styling
+                              # information. This property is read-only.
+                            { # A TextElement describes the content of a range of indices in the text content
+                                # of a Shape or TableCell.
+                              "autoText": { # A TextElement kind that represents auto text. # A TextElement representing a spot in the text that is dynamically
+                                  # replaced with content that can change over time.
+                                "content": "A String", # The rendered content of this auto text, if available.
+                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this auto text.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
+                                  },
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                },
+                                "type": "A String", # The type of this auto text.
+                              },
+                              "endIndex": 42, # The zero-based end index of this text element, exclusive, in Unicode code
+                                  # units.
+                              "startIndex": 42, # The zero-based start index of this text element, in Unicode code units.
+                              "paragraphMarker": { # A TextElement kind that represents the beginning of a new paragraph. # A marker representing the beginning of a new paragraph.
+                                  #
+                                  # The `start_index` and `end_index` of this TextElement represent the
+                                  # range of the paragraph. Other TextElements with an index range contained
+                                  # inside this paragraph's range are considered to be part of this
+                                  # paragraph. The range of indices of two separate paragraphs will never
+                                  # overlap.
+                                "style": { # Styles that apply to a whole paragraph. # The paragraph's style
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these paragraph styles may be
+                                    # inherited from the parent. Which paragraph styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A paragraph not in a list will inherit its paragraph style from the
+                                    #   paragraph at the 0 nesting level of the list inside the parent placeholder.
+                                    # * A paragraph in a list will inherit its paragraph style from the paragraph
+                                    #   at its corresponding nesting level of the list inside the parent
+                                    #   placeholder.
+                                    #
+                                    # Inherited paragraph styles are represented as unset fields in this message.
+                                  "spacingMode": "A String", # The spacing mode for the paragraph.
+                                  "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
+                                      # LEFT_TO_RIGHT since
+                                      # text direction is not inherited.
+                                  "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                      # inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "lineSpacing": 3.14, # The amount of space between lines, as a percentage of normal, where normal
+                                      # is represented as 100.0. If unset, the value is inherited from the parent.
+                                  "indentStart": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                      # the start of the text, based on the current text direction. If unset, the
+                                      # value is inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "spaceAbove": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
+                                      # inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "indentEnd": { # A magnitude in a single direction in the specified units. # The amount indentation for the paragraph on the side that corresponds to
+                                      # the end of the text, based on the current text direction. If unset, the
+                                      # value is inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "indentFirstLine": { # A magnitude in a single direction in the specified units. # The amount of indentation for the start of the first line of the paragraph.
+                                      # If unset, the value is inherited from the parent.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "alignment": "A String", # The text alignment for this paragraph.
+                                },
+                                "bullet": { # Describes the bullet of a paragraph. # The bullet for this paragraph. If not present, the paragraph does not
+                                    # belong to a list.
+                                  "nestingLevel": 42, # The nesting level of this paragraph in the list.
+                                  "listId": "A String", # The ID of the list this paragraph belongs to.
+                                  "bulletStyle": { # Represents the styling that can be applied to a TextRun. # The paragraph specific text style applied to this bullet.
+                                      #
+                                      # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                      # inherited from the parent. Which text styles are inherited depend on the
+                                      # nesting level of lists:
+                                      #
+                                      # * A text run in a paragraph that is not in a list will inherit its text style
+                                      #   from the the newline character in the paragraph at the 0 nesting level of
+                                      #   the list inside the parent placeholder.
+                                      # * A text run in a paragraph that is in a list will inherit its text style
+                                      #   from the newline character in the paragraph at its corresponding nesting
+                                      #   level of the list inside the parent placeholder.
+                                      #
+                                      # Inherited text styles are represented as unset fields in this message. If
+                                      # text is contained in a shape without a parent placeholder, unsetting these
+                                      # fields will revert the style to a value matching the defaults in the Slides
+                                      # editor.
+                                    "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "bold": True or False, # Whether or not the text is rendered as bold.
+                                    "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                        #
+                                        # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                        # rendered in a smaller font size, computed based on the `font_size` field.
+                                        # The `font_size` itself is not affected by changes in this field.
+                                    "strikethrough": True or False, # Whether or not the text is struck through.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
+                                      "fontFamily": "A String", # The font family of the text.
+                                          #
+                                          # The font family can be any font from the Font menu in Slides or from
+                                          # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                          # unrecognized, the text is rendered in `Arial`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
+                                    },
+                                    "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                        #
+                                        # Some fonts can affect the weight of the text. If an update request
+                                        # specifies values for both `font_family` and `bold`, the explicitly-set
+                                        # `bold` value is used.
+                                    "italic": True or False, # Whether or not the text is italicized.
+                                    "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                        # are not inherited from parent text.
+                                        #
+                                        # Changing the link in an update request causes some other changes to the
+                                        # text style of the range:
+                                        #
+                                        # * When setting a link, the text foreground color will be set to
+                                        #   ThemeColorType.HYPERLINK and the text will
+                                        #   be underlined. If these fields are modified in the same
+                                        #   request, those values will be used instead of the link defaults.
+                                        # * Setting a link on a text range that overlaps with an existing link will
+                                        #   also update the existing link to point to the new URL.
+                                        # * Links are not settable on newline characters. As a result, setting a link
+                                        #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                        #   will separate the newline character(s) into their own text runs. The
+                                        #   link will be applied separately to the runs before and after the newline.
+                                        # * Removing a link will update the text style of the range to match the
+                                        #   style of the preceding text (or the default text styles if the preceding
+                                        #   text is another link) unless different styles are being set in the same
+                                        #   request.
+                                      "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                      "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                          # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                        # transparent, depending on if the `opaque_color` field in it is set.
+                                      "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                          # a transparent color.
+                                        "themeColor": "A String", # An opaque theme color.
+                                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                        },
+                                      },
+                                    },
+                                    "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                        # points.
+                                      "magnitude": 3.14, # The magnitude.
+                                      "unit": "A String", # The units for magnitude.
+                                    },
+                                    "underline": True or False, # Whether or not the text is underlined.
+                                  },
+                                  "glyph": "A String", # The rendered bullet glyph for this paragraph.
+                                },
+                              },
+                              "textRun": { # A TextElement kind that represents a run of text that all has the same # A TextElement representing a run of text where all of the characters
+                                  # in the run have the same TextStyle.
+                                  #
+                                  # The `start_index` and `end_index` of TextRuns will always be fully
+                                  # contained in the index range of a single `paragraph_marker` TextElement.
+                                  # In other words, a TextRun will never span multiple paragraphs.
+                                  # styling.
+                                "content": "A String", # The text of this run.
+                                "style": { # Represents the styling that can be applied to a TextRun. # The styling applied to this run.
+                                    #
+                                    # If this text is contained in a shape with a parent placeholder, then these text styles may be
+                                    # inherited from the parent. Which text styles are inherited depend on the
+                                    # nesting level of lists:
+                                    #
+                                    # * A text run in a paragraph that is not in a list will inherit its text style
+                                    #   from the the newline character in the paragraph at the 0 nesting level of
+                                    #   the list inside the parent placeholder.
+                                    # * A text run in a paragraph that is in a list will inherit its text style
+                                    #   from the newline character in the paragraph at its corresponding nesting
+                                    #   level of the list inside the parent placeholder.
+                                    #
+                                    # Inherited text styles are represented as unset fields in this message. If
+                                    # text is contained in a shape without a parent placeholder, unsetting these
+                                    # fields will revert the style to a value matching the defaults in the Slides
+                                    # editor.
+                                  "foregroundColor": { # A color that can either be fully opaque or fully transparent. # The color of the text itself. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "bold": True or False, # Whether or not the text is rendered as bold.
+                                  "baselineOffset": "A String", # The text's vertical offset from its normal position.
+                                      #
+                                      # Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
+                                      # rendered in a smaller font size, computed based on the `font_size` field.
+                                      # The `font_size` itself is not affected by changes in this field.
+                                  "strikethrough": True or False, # Whether or not the text is struck through.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
+                                    "fontFamily": "A String", # The font family of the text.
+                                        #
+                                        # The font family can be any font from the Font menu in Slides or from
+                                        # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                        # unrecognized, the text is rendered in `Arial`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
+                                  },
+                                  "smallCaps": True or False, # Whether or not the text is in small capital letters.
+                                  "fontFamily": "A String", # The font family of the text.
+                                      #
+                                      # The font family can be any font from the Font menu in Slides or from
+                                      # [Google Fonts] (https://fonts.google.com/). If the font name is
+                                      # unrecognized, the text is rendered in `Arial`.
+                                      #
+                                      # Some fonts can affect the weight of the text. If an update request
+                                      # specifies values for both `font_family` and `bold`, the explicitly-set
+                                      # `bold` value is used.
+                                  "italic": True or False, # Whether or not the text is italicized.
+                                  "link": { # A hypertext link. # The hyperlink destination of the text. If unset, there is no link. Links
+                                      # are not inherited from parent text.
+                                      #
+                                      # Changing the link in an update request causes some other changes to the
+                                      # text style of the range:
+                                      #
+                                      # * When setting a link, the text foreground color will be set to
+                                      #   ThemeColorType.HYPERLINK and the text will
+                                      #   be underlined. If these fields are modified in the same
+                                      #   request, those values will be used instead of the link defaults.
+                                      # * Setting a link on a text range that overlaps with an existing link will
+                                      #   also update the existing link to point to the new URL.
+                                      # * Links are not settable on newline characters. As a result, setting a link
+                                      #   on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
+                                      #   will separate the newline character(s) into their own text runs. The
+                                      #   link will be applied separately to the runs before and after the newline.
+                                      # * Removing a link will update the text style of the range to match the
+                                      #   style of the preceding text (or the default text styles if the preceding
+                                      #   text is another link) unless different styles are being set in the same
+                                      #   request.
+                                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                                        # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "backgroundColor": { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either opaque or
+                                      # transparent, depending on if the `opaque_color` field in it is set.
+                                    "opaqueColor": { # A themeable solid color value. # If set, this will be used as an opaque color. If unset, this represents
+                                        # a transparent color.
+                                      "themeColor": "A String", # An opaque theme color.
+                                      "rgbColor": { # An RGB color. # An opaque RGB color.
+                                        "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                        "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                        "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                      },
+                                    },
+                                  },
+                                  "fontSize": { # A magnitude in a single direction in the specified units. # The size of the text's font. When read, the `font_size` will specified in
+                                      # points.
+                                    "magnitude": 3.14, # The magnitude.
+                                    "unit": "A String", # The units for magnitude.
+                                  },
+                                  "underline": True or False, # Whether or not the text is underlined.
+                                },
+                              },
+                            },
+                          ],
+                        },
+                        "tableCellProperties": { # The properties of the TableCell. # The properties of the table cell.
+                          "tableCellBackgroundFill": { # The table cell background fill. # The background fill of the table cell. The default fill matches the fill
+                              # for newly created table cells in the Slides editor.
+                            "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                                # specified color value.
+                                #
+                                # If any field is unset, its value may be inherited from a parent placeholder
+                                # if it exists.
+                              "color": { # A themeable solid color value. # The color value of the solid fill.
+                                "themeColor": "A String", # An opaque theme color.
+                                "rgbColor": { # An RGB color. # An opaque RGB color.
+                                  "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                                  "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                                  "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                                },
+                              },
+                              "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                                  # That is, the final pixel color is defined by the equation:
+                                  #
+                                  #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                                  #
+                                  # This means that a value of 1.0 corresponds to a solid color, whereas
+                                  # a value of 0.0 corresponds to a completely transparent color.
+                            },
+                            "propertyState": "A String", # The background fill property state.
+                                #
+                                # Updating the the fill on a table cell will implicitly update this field
+                                # to `RENDERED`, unless another value is specified in the same request. To
+                                # have no fill on a table cell, set this field to `NOT_RENDERED`. In this
+                                # case, any other fill fields set in the same request will be ignored.
+                          },
+                        },
+                        "rowSpan": 42, # Row span of the cell.
+                        "columnSpan": 42, # Column span of the cell.
+                        "location": { # A location of a single table cell within a table. # The location of the cell within the table.
+                          "rowIndex": 42, # The 0-based row index.
+                          "columnIndex": 42, # The 0-based column index.
+                        },
+                      },
+                    ],
+                    "rowHeight": { # A magnitude in a single direction in the specified units. # Height of a row.
+                      "magnitude": 3.14, # The magnitude.
+                      "unit": "A String", # The units for magnitude.
+                    },
+                  },
+                ],
+                "rows": 42, # Number of rows in the table.
+                "columns": 42, # Number of columns in the table.
+              },
+              "line": { # A PageElement kind representing a # A line page element.
+                  # line, curved connector, or bent connector.
+                "lineProperties": { # The properties of the Line. # The properties of the line.
+                    #
+                    # When unset, these fields default to values that match the appearance of
+                    # new lines created in the Slides editor.
+                  "dashStyle": "A String", # The dash style of the line.
+                  "weight": { # A magnitude in a single direction in the specified units. # The thickness of the line.
+                    "magnitude": 3.14, # The magnitude.
+                    "unit": "A String", # The units for magnitude.
+                  },
+                  "endArrow": "A String", # The style of the arrow at the end of the line.
+                  "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
+                    "url": "A String", # If set, indicates this is a link to the external web page at this URL.
+                    "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
+                        # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
+                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                        # addressed by its position.
+                  },
+                  "lineFill": { # The fill of the line. # The fill of the line. The default line fill matches the defaults for new
+                      # lines created in the Slides editor.
+                    "solidFill": { # A solid color fill. The page or page element is filled entirely with the # Solid color fill.
+                        # specified color value.
+                        #
+                        # If any field is unset, its value may be inherited from a parent placeholder
+                        # if it exists.
+                      "color": { # A themeable solid color value. # The color value of the solid fill.
+                        "themeColor": "A String", # An opaque theme color.
+                        "rgbColor": { # An RGB color. # An opaque RGB color.
+                          "blue": 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          "green": 3.14, # The green component of the color, from 0.0 to 1.0.
+                          "red": 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                      "alpha": 3.14, # The fraction of this `color` that should be applied to the pixel.
+                          # That is, the final pixel color is defined by the equation:
+                          #
+                          #   pixel color = alpha * (color) + (1.0 - alpha) * (background color)
+                          #
+                          # This means that a value of 1.0 corresponds to a solid color, whereas
+                          # a value of 0.0 corresponds to a completely transparent color.
+                    },
+                  },
+                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
+                },
+                "lineType": "A String", # The type of the line.
+              },
+              "size": { # A width and height. # The size of the page element.
+                "width": { # A magnitude in a single direction in the specified units. # The width of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+                "height": { # A magnitude in a single direction in the specified units. # The height of the object.
+                  "magnitude": 3.14, # The magnitude.
+                  "unit": "A String", # The units for magnitude.
+                },
+              },
+            },
+          ],
+          "notesProperties": { # The properties of Page that are only # Notes specific properties. Only set if page_type = NOTES.
+              # relevant for pages with page_type NOTES.
+            "speakerNotesObjectId": "A String", # The object ID of the shape on this notes page that contains the speaker
+                # notes for the corresponding slide.
+                # The actual shape may not always exist on the notes page. Inserting text
+                # using this object ID will automatically create the shape. In this case, the
+                # actual shape may have different object ID. The `GetPresentation` or
+                # `GetPage` action will always return the latest object ID.
+          },
+          "objectId": "A String", # The object ID for this page. Object IDs used by
+              # Page and
+              # PageElement share the same namespace.
+          "revisionId": "A String", # The revision ID of the presentation containing this page. Can be used in
+              # update requests to assert that the presentation revision hasn't changed
+              # since the last read operation. Only populated if the user has edit access
+              # to the presentation.
+              #
+              # The format of the revision ID may change over time, so it should be treated
+              # opaquely. A returned revision ID is only guaranteed to be valid for 24
+              # hours after it has been returned and cannot be shared across users. If the
+              # revision ID is unchanged between calls, then the presentation has not
+              # changed. Conversely, a changed ID (for the same presentation and user)
+              # usually means the presentation has been updated; however, a changed ID can
+              # also be due to internal factors such as ID format changes.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
@@ -24240,10 +26159,10 @@
                   },
                   "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -24274,17 +26193,17 @@
                     "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                         # the right of the original bounding rectangle left edge, relative to the
                         # object's original width.
-                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                        # below the original bounding rectangle top edge, relative to the object's
-                        # original height.
-                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                        # above the original bounding rectangle bottom edge, relative to the object's
-                        # original height.
                     "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                         # Rotation angle is applied after the offset.
                     "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                         # to the left of the original bounding rectangle right edge, relative to the
                         # object's original width.
+                    "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                        # above the original bounding rectangle bottom edge, relative to the object's
+                        # original height.
+                    "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                        # below the original bounding rectangle top edge, relative to the object's
+                        # original height.
                   },
                   "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                       # is read-only.
@@ -24414,26 +26333,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -24467,10 +26407,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -24541,26 +26481,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -24594,10 +26555,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -24647,8 +26608,8 @@
                             # Inherited paragraph styles are represented as unset fields in this message.
                           "spacingMode": "A String", # The spacing mode for the paragraph.
                           "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                              # LEFT_TO_RIGHT
-                              # since text direction is not inherited.
+                              # LEFT_TO_RIGHT since
+                              # text direction is not inherited.
                           "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                               # inherited from the parent.
                             "magnitude": 3.14, # The magnitude.
@@ -24720,26 +26681,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -24773,10 +26755,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -24846,26 +26828,47 @@
                               # rendered in a smaller font size, computed based on the `font_size` field.
                               # The `font_size` itself is not affected by changes in this field.
                           "strikethrough": True or False, # Whether or not the text is struck through.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                               #
                               # This field is an extension of `font_family` meant to support explicit font
                               # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
+                              # style of a range of text, the value of `weighted_font_family#font_family`
+                              # will always be equal to that of `font_family`. However, when writing, if
+                              # both fields are included in the field mask (either explicitly or through
+                              # the wildcard `"*"`), their values are reconciled as follows:
+                              #
+                              # * If `font_family` is set and `weighted_font_family` is not, the value of
+                              #   `font_family` is applied with weight `400` ("normal").
+                              # * If both fields are set, the value of `font_family` must match that of
+                              #   `weighted_font_family#font_family`. If so, the font family and weight of
+                              #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                              #   returned.
+                              # * If `weighted_font_family` is set and `font_family` is not, the font
+                              #   family and weight of `weighted_font_family` is applied.
+                              # * If neither field is set, the font family and weight of the text inherit
+                              #   from the parent. Note that these properties cannot inherit separately
+                              #   from each other.
+                              #
+                              # If an update request specifies values for both `weighted_font_family` and
+                              # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                              #
+                              # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                              #
+                              # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                              # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                              # is returned.
                             "fontFamily": "A String", # The font family of the text.
                                 #
                                 # The font family can be any font from the Font menu in Slides or from
                                 # [Google Fonts] (https://fonts.google.com/). If the font name is
                                 # unrecognized, the text is rendered in `Arial`.
                             "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
+                                # multiple of `100` between `100` and `900`, inclusive. This range
+                                # corresponds to the numerical values described in the CSS 2.1
+                                # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                # with non-numerical values disallowed. Weights greater than or equal to
+                                # `700` are considered bold, and weights less than `700`are not bold. The
+                                # default value is `400` ("normal").
                           },
                           "smallCaps": True or False, # Whether or not the text is in small capital letters.
                           "fontFamily": "A String", # The font family of the text.
@@ -24899,10 +26902,10 @@
                               #   text is another link) unless different styles are being set in the same
                               #   request.
                             "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                # presentation with this ID. A page with this ID may not exist.
                             "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                 # in the presentation. There may not be a slide at this index.
+                            "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                # presentation with this ID. A page with this ID may not exist.
                             "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                 # addressed by its position.
                           },
@@ -25027,10 +27030,10 @@
                   "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                       # are not inherited from parent placeholders.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -25089,8 +27092,8 @@
                   "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                       # If unset, the parent placeholder shape does not exist, so the shape does
                       # not inherit properties from any other shape.
-                  "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                      # in the same page, they would have different index values.
+                  "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                      # the same page, they would have different index values.
                   "type": "A String", # The type of the placeholder.
                 },
                 "shapeType": "A String", # The type of the shape.
@@ -25098,12 +27101,11 @@
               "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
                   # represented as images.
                   # a linked chart embedded from Google Sheets.
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
                 "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
                     # minutes. This URL is tagged with the account of the requester. Anyone with
                     # the URL effectively accesses the image as the original requester. Access to
                     # the image may be lost if the presentation's sharing settings change.
+                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
                   "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
                     "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -25181,10 +27183,10 @@
                     },
                     "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -25215,17 +27217,17 @@
                       "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                           # the right of the original bounding rectangle left edge, relative to the
                           # object's original width.
-                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                          # below the original bounding rectangle top edge, relative to the object's
-                          # original height.
-                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                          # above the original bounding rectangle bottom edge, relative to the object's
-                          # original height.
                       "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                           # Rotation angle is applied after the offset.
                       "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                           # to the left of the original bounding rectangle right edge, relative to the
                           # object's original width.
+                      "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                          # above the original bounding rectangle bottom edge, relative to the object's
+                          # original height.
+                      "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                          # below the original bounding rectangle top edge, relative to the object's
+                          # original height.
                     },
                     "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                         # is read-only.
@@ -25285,14 +27287,13 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+                    # embedded.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
                 "url": "A String", # An URL to a video. The URL is valid as long as the source video
                     # exists and sharing settings do not change.
-                "source": "A String", # The video source.
-                "id": "A String", # The video source's unique identifier for this video.
                 "videoProperties": { # The properties of the Video. # The properties of the video.
                   "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                       # videos created in the Slides editor.
@@ -25338,6 +27339,8 @@
                     },
                   },
                 },
+                "id": "A String", # The video source's unique identifier for this video.
+                "source": "A String", # The video source.
               },
               "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
                   # joined collection of PageElements.
@@ -25415,26 +27418,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -25468,10 +27492,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -25542,26 +27566,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -25595,10 +27640,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -25648,8 +27693,8 @@
                                     # Inherited paragraph styles are represented as unset fields in this message.
                                   "spacingMode": "A String", # The spacing mode for the paragraph.
                                   "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                      # LEFT_TO_RIGHT
-                                      # since text direction is not inherited.
+                                      # LEFT_TO_RIGHT since
+                                      # text direction is not inherited.
                                   "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                       # inherited from the parent.
                                     "magnitude": 3.14, # The magnitude.
@@ -25721,26 +27766,47 @@
                                         # rendered in a smaller font size, computed based on the `font_size` field.
                                         # The `font_size` itself is not affected by changes in this field.
                                     "strikethrough": True or False, # Whether or not the text is struck through.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                         #
                                         # This field is an extension of `font_family` meant to support explicit font
                                         # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
+                                        # style of a range of text, the value of `weighted_font_family#font_family`
+                                        # will always be equal to that of `font_family`. However, when writing, if
+                                        # both fields are included in the field mask (either explicitly or through
+                                        # the wildcard `"*"`), their values are reconciled as follows:
+                                        #
+                                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                        #   `font_family` is applied with weight `400` ("normal").
+                                        # * If both fields are set, the value of `font_family` must match that of
+                                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                        #   returned.
+                                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                                        #   family and weight of `weighted_font_family` is applied.
+                                        # * If neither field is set, the font family and weight of the text inherit
+                                        #   from the parent. Note that these properties cannot inherit separately
+                                        #   from each other.
+                                        #
+                                        # If an update request specifies values for both `weighted_font_family` and
+                                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                        #
+                                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                        #
+                                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                        # is returned.
                                       "fontFamily": "A String", # The font family of the text.
                                           #
                                           # The font family can be any font from the Font menu in Slides or from
                                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                                           # unrecognized, the text is rendered in `Arial`.
                                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
+                                          # multiple of `100` between `100` and `900`, inclusive. This range
+                                          # corresponds to the numerical values described in the CSS 2.1
+                                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                          # with non-numerical values disallowed. Weights greater than or equal to
+                                          # `700` are considered bold, and weights less than `700`are not bold. The
+                                          # default value is `400` ("normal").
                                     },
                                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                     "fontFamily": "A String", # The font family of the text.
@@ -25774,10 +27840,10 @@
                                         #   text is another link) unless different styles are being set in the same
                                         #   request.
                                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                          # presentation with this ID. A page with this ID may not exist.
                                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                           # in the presentation. There may not be a slide at this index.
+                                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                          # presentation with this ID. A page with this ID may not exist.
                                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                           # addressed by its position.
                                     },
@@ -25847,26 +27913,47 @@
                                       # rendered in a smaller font size, computed based on the `font_size` field.
                                       # The `font_size` itself is not affected by changes in this field.
                                   "strikethrough": True or False, # Whether or not the text is struck through.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                       #
                                       # This field is an extension of `font_family` meant to support explicit font
                                       # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
+                                      # style of a range of text, the value of `weighted_font_family#font_family`
+                                      # will always be equal to that of `font_family`. However, when writing, if
+                                      # both fields are included in the field mask (either explicitly or through
+                                      # the wildcard `"*"`), their values are reconciled as follows:
+                                      #
+                                      # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                      #   `font_family` is applied with weight `400` ("normal").
+                                      # * If both fields are set, the value of `font_family` must match that of
+                                      #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                      #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                      #   returned.
+                                      # * If `weighted_font_family` is set and `font_family` is not, the font
+                                      #   family and weight of `weighted_font_family` is applied.
+                                      # * If neither field is set, the font family and weight of the text inherit
+                                      #   from the parent. Note that these properties cannot inherit separately
+                                      #   from each other.
+                                      #
+                                      # If an update request specifies values for both `weighted_font_family` and
+                                      # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                      #
+                                      # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                      #
+                                      # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                      # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                      # is returned.
                                     "fontFamily": "A String", # The font family of the text.
                                         #
                                         # The font family can be any font from the Font menu in Slides or from
                                         # [Google Fonts] (https://fonts.google.com/). If the font name is
                                         # unrecognized, the text is rendered in `Arial`.
                                     "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
+                                        # multiple of `100` between `100` and `900`, inclusive. This range
+                                        # corresponds to the numerical values described in the CSS 2.1
+                                        # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                        # with non-numerical values disallowed. Weights greater than or equal to
+                                        # `700` are considered bold, and weights less than `700`are not bold. The
+                                        # default value is `400` ("normal").
                                   },
                                   "smallCaps": True or False, # Whether or not the text is in small capital letters.
                                   "fontFamily": "A String", # The font family of the text.
@@ -25900,10 +27987,10 @@
                                       #   text is another link) unless different styles are being set in the same
                                       #   request.
                                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                        # presentation with this ID. A page with this ID may not exist.
                                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                         # in the presentation. There may not be a slide at this index.
+                                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                        # presentation with this ID. A page with this ID may not exist.
                                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                         # addressed by its position.
                                   },
@@ -25993,10 +28080,10 @@
                   "endArrow": "A String", # The style of the arrow at the end of the line.
                   "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
                     "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                        # presentation with this ID. A page with this ID may not exist.
                     "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                         # in the presentation. There may not be a slide at this index.
+                    "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                        # presentation with this ID. A page with this ID may not exist.
                     "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                         # addressed by its position.
                   },
@@ -26059,9 +28146,11 @@
               #
               # The format of the revision ID may change over time, so it should be treated
               # opaquely. A returned revision ID is only guaranteed to be valid for 24
-              # hours after it has been returned and cannot be shared across
-              # users. Callers can assume that if two revision IDs are equal then the
-              # presentation has not changed.
+              # hours after it has been returned and cannot be shared across users. If the
+              # revision ID is unchanged between calls, then the presentation has not
+              # changed. Conversely, a changed ID (for the same presentation and user)
+              # usually means the presentation has been updated; however, a changed ID can
+              # also be due to internal factors such as ID format changes.
           "pageProperties": { # The properties of the Page. # The properties of the page.
               #
               # The page will inherit properties from the parent page. Depending on the page
diff --git a/docs/dyn/slides_v1.presentations.pages.html b/docs/dyn/slides_v1.presentations.pages.html
index 37ffa59..920987f 100644
--- a/docs/dyn/slides_v1.presentations.pages.html
+++ b/docs/dyn/slides_v1.presentations.pages.html
@@ -198,10 +198,10 @@
             },
             "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -232,17 +232,17 @@
               "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                   # the right of the original bounding rectangle left edge, relative to the
                   # object's original width.
-              "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                  # below the original bounding rectangle top edge, relative to the object's
-                  # original height.
-              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                  # above the original bounding rectangle bottom edge, relative to the object's
-                  # original height.
               "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                   # Rotation angle is applied after the offset.
               "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                   # to the left of the original bounding rectangle right edge, relative to the
                   # object's original width.
+              "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                  # above the original bounding rectangle bottom edge, relative to the object's
+                  # original height.
+              "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                  # below the original bounding rectangle top edge, relative to the object's
+                  # original height.
             },
             "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                 # is read-only.
@@ -372,26 +372,47 @@
                           # rendered in a smaller font size, computed based on the `font_size` field.
                           # The `font_size` itself is not affected by changes in this field.
                       "strikethrough": True or False, # Whether or not the text is struck through.
-                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                          # read-only.
+                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                           #
                           # This field is an extension of `font_family` meant to support explicit font
                           # weights without breaking backwards compatibility. As such, when reading the
-                          # style of a range of text, the value of `weighted_font_family.font_family`
-                          # will always be equal to that of `font_family`.
+                          # style of a range of text, the value of `weighted_font_family#font_family`
+                          # will always be equal to that of `font_family`. However, when writing, if
+                          # both fields are included in the field mask (either explicitly or through
+                          # the wildcard `"*"`), their values are reconciled as follows:
+                          #
+                          # * If `font_family` is set and `weighted_font_family` is not, the value of
+                          #   `font_family` is applied with weight `400` ("normal").
+                          # * If both fields are set, the value of `font_family` must match that of
+                          #   `weighted_font_family#font_family`. If so, the font family and weight of
+                          #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                          #   returned.
+                          # * If `weighted_font_family` is set and `font_family` is not, the font
+                          #   family and weight of `weighted_font_family` is applied.
+                          # * If neither field is set, the font family and weight of the text inherit
+                          #   from the parent. Note that these properties cannot inherit separately
+                          #   from each other.
+                          #
+                          # If an update request specifies values for both `weighted_font_family` and
+                          # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                          #
+                          # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                          #
+                          # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                          # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                          # is returned.
                         "fontFamily": "A String", # The font family of the text.
                             #
                             # The font family can be any font from the Font menu in Slides or from
                             # [Google Fonts] (https://fonts.google.com/). If the font name is
                             # unrecognized, the text is rendered in `Arial`.
                         "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                            # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                            # only the numerical values described in the "Cascading Style Sheets Level
-                            # 2 Revision 1 (CSS 2.1) Specification",
-                            # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                            # non-numerical values in the specification are disallowed. Weights greater
-                            # than or equal to 700 are considered bold, and weights less than 700 are
-                            # not bold. The default value is `400` ("normal").
+                            # multiple of `100` between `100` and `900`, inclusive. This range
+                            # corresponds to the numerical values described in the CSS 2.1
+                            # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                            # with non-numerical values disallowed. Weights greater than or equal to
+                            # `700` are considered bold, and weights less than `700`are not bold. The
+                            # default value is `400` ("normal").
                       },
                       "smallCaps": True or False, # Whether or not the text is in small capital letters.
                       "fontFamily": "A String", # The font family of the text.
@@ -425,10 +446,10 @@
                           #   text is another link) unless different styles are being set in the same
                           #   request.
                         "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                            # presentation with this ID. A page with this ID may not exist.
                         "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                             # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
                         "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                             # addressed by its position.
                       },
@@ -499,26 +520,47 @@
                         # rendered in a smaller font size, computed based on the `font_size` field.
                         # The `font_size` itself is not affected by changes in this field.
                     "strikethrough": True or False, # Whether or not the text is struck through.
-                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                        # read-only.
+                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                         #
                         # This field is an extension of `font_family` meant to support explicit font
                         # weights without breaking backwards compatibility. As such, when reading the
-                        # style of a range of text, the value of `weighted_font_family.font_family`
-                        # will always be equal to that of `font_family`.
+                        # style of a range of text, the value of `weighted_font_family#font_family`
+                        # will always be equal to that of `font_family`. However, when writing, if
+                        # both fields are included in the field mask (either explicitly or through
+                        # the wildcard `"*"`), their values are reconciled as follows:
+                        #
+                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                        #   `font_family` is applied with weight `400` ("normal").
+                        # * If both fields are set, the value of `font_family` must match that of
+                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                        #   returned.
+                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                        #   family and weight of `weighted_font_family` is applied.
+                        # * If neither field is set, the font family and weight of the text inherit
+                        #   from the parent. Note that these properties cannot inherit separately
+                        #   from each other.
+                        #
+                        # If an update request specifies values for both `weighted_font_family` and
+                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                        #
+                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                        #
+                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                        # is returned.
                       "fontFamily": "A String", # The font family of the text.
                           #
                           # The font family can be any font from the Font menu in Slides or from
                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                           # unrecognized, the text is rendered in `Arial`.
                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                          # only the numerical values described in the "Cascading Style Sheets Level
-                          # 2 Revision 1 (CSS 2.1) Specification",
-                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                          # non-numerical values in the specification are disallowed. Weights greater
-                          # than or equal to 700 are considered bold, and weights less than 700 are
-                          # not bold. The default value is `400` ("normal").
+                          # multiple of `100` between `100` and `900`, inclusive. This range
+                          # corresponds to the numerical values described in the CSS 2.1
+                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                          # with non-numerical values disallowed. Weights greater than or equal to
+                          # `700` are considered bold, and weights less than `700`are not bold. The
+                          # default value is `400` ("normal").
                     },
                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                     "fontFamily": "A String", # The font family of the text.
@@ -552,10 +594,10 @@
                         #   text is another link) unless different styles are being set in the same
                         #   request.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -605,8 +647,8 @@
                       # Inherited paragraph styles are represented as unset fields in this message.
                     "spacingMode": "A String", # The spacing mode for the paragraph.
                     "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                        # LEFT_TO_RIGHT
-                        # since text direction is not inherited.
+                        # LEFT_TO_RIGHT since
+                        # text direction is not inherited.
                     "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                         # inherited from the parent.
                       "magnitude": 3.14, # The magnitude.
@@ -678,26 +720,47 @@
                           # rendered in a smaller font size, computed based on the `font_size` field.
                           # The `font_size` itself is not affected by changes in this field.
                       "strikethrough": True or False, # Whether or not the text is struck through.
-                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                          # read-only.
+                      "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                           #
                           # This field is an extension of `font_family` meant to support explicit font
                           # weights without breaking backwards compatibility. As such, when reading the
-                          # style of a range of text, the value of `weighted_font_family.font_family`
-                          # will always be equal to that of `font_family`.
+                          # style of a range of text, the value of `weighted_font_family#font_family`
+                          # will always be equal to that of `font_family`. However, when writing, if
+                          # both fields are included in the field mask (either explicitly or through
+                          # the wildcard `"*"`), their values are reconciled as follows:
+                          #
+                          # * If `font_family` is set and `weighted_font_family` is not, the value of
+                          #   `font_family` is applied with weight `400` ("normal").
+                          # * If both fields are set, the value of `font_family` must match that of
+                          #   `weighted_font_family#font_family`. If so, the font family and weight of
+                          #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                          #   returned.
+                          # * If `weighted_font_family` is set and `font_family` is not, the font
+                          #   family and weight of `weighted_font_family` is applied.
+                          # * If neither field is set, the font family and weight of the text inherit
+                          #   from the parent. Note that these properties cannot inherit separately
+                          #   from each other.
+                          #
+                          # If an update request specifies values for both `weighted_font_family` and
+                          # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                          #
+                          # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                          #
+                          # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                          # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                          # is returned.
                         "fontFamily": "A String", # The font family of the text.
                             #
                             # The font family can be any font from the Font menu in Slides or from
                             # [Google Fonts] (https://fonts.google.com/). If the font name is
                             # unrecognized, the text is rendered in `Arial`.
                         "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                            # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                            # only the numerical values described in the "Cascading Style Sheets Level
-                            # 2 Revision 1 (CSS 2.1) Specification",
-                            # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                            # non-numerical values in the specification are disallowed. Weights greater
-                            # than or equal to 700 are considered bold, and weights less than 700 are
-                            # not bold. The default value is `400` ("normal").
+                            # multiple of `100` between `100` and `900`, inclusive. This range
+                            # corresponds to the numerical values described in the CSS 2.1
+                            # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                            # with non-numerical values disallowed. Weights greater than or equal to
+                            # `700` are considered bold, and weights less than `700`are not bold. The
+                            # default value is `400` ("normal").
                       },
                       "smallCaps": True or False, # Whether or not the text is in small capital letters.
                       "fontFamily": "A String", # The font family of the text.
@@ -731,10 +794,10 @@
                           #   text is another link) unless different styles are being set in the same
                           #   request.
                         "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                            # presentation with this ID. A page with this ID may not exist.
                         "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                             # in the presentation. There may not be a slide at this index.
+                        "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                            # presentation with this ID. A page with this ID may not exist.
                         "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                             # addressed by its position.
                       },
@@ -804,26 +867,47 @@
                         # rendered in a smaller font size, computed based on the `font_size` field.
                         # The `font_size` itself is not affected by changes in this field.
                     "strikethrough": True or False, # Whether or not the text is struck through.
-                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                        # read-only.
+                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                         #
                         # This field is an extension of `font_family` meant to support explicit font
                         # weights without breaking backwards compatibility. As such, when reading the
-                        # style of a range of text, the value of `weighted_font_family.font_family`
-                        # will always be equal to that of `font_family`.
+                        # style of a range of text, the value of `weighted_font_family#font_family`
+                        # will always be equal to that of `font_family`. However, when writing, if
+                        # both fields are included in the field mask (either explicitly or through
+                        # the wildcard `"*"`), their values are reconciled as follows:
+                        #
+                        # * If `font_family` is set and `weighted_font_family` is not, the value of
+                        #   `font_family` is applied with weight `400` ("normal").
+                        # * If both fields are set, the value of `font_family` must match that of
+                        #   `weighted_font_family#font_family`. If so, the font family and weight of
+                        #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                        #   returned.
+                        # * If `weighted_font_family` is set and `font_family` is not, the font
+                        #   family and weight of `weighted_font_family` is applied.
+                        # * If neither field is set, the font family and weight of the text inherit
+                        #   from the parent. Note that these properties cannot inherit separately
+                        #   from each other.
+                        #
+                        # If an update request specifies values for both `weighted_font_family` and
+                        # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                        #
+                        # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                        #
+                        # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                        # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                        # is returned.
                       "fontFamily": "A String", # The font family of the text.
                           #
                           # The font family can be any font from the Font menu in Slides or from
                           # [Google Fonts] (https://fonts.google.com/). If the font name is
                           # unrecognized, the text is rendered in `Arial`.
                       "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                          # only the numerical values described in the "Cascading Style Sheets Level
-                          # 2 Revision 1 (CSS 2.1) Specification",
-                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                          # non-numerical values in the specification are disallowed. Weights greater
-                          # than or equal to 700 are considered bold, and weights less than 700 are
-                          # not bold. The default value is `400` ("normal").
+                          # multiple of `100` between `100` and `900`, inclusive. This range
+                          # corresponds to the numerical values described in the CSS 2.1
+                          # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                          # with non-numerical values disallowed. Weights greater than or equal to
+                          # `700` are considered bold, and weights less than `700`are not bold. The
+                          # default value is `400` ("normal").
                     },
                     "smallCaps": True or False, # Whether or not the text is in small capital letters.
                     "fontFamily": "A String", # The font family of the text.
@@ -857,10 +941,10 @@
                         #   text is another link) unless different styles are being set in the same
                         #   request.
                       "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                          # presentation with this ID. A page with this ID may not exist.
                       "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                           # in the presentation. There may not be a slide at this index.
+                      "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                          # presentation with this ID. A page with this ID may not exist.
                       "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                           # addressed by its position.
                     },
@@ -985,10 +1069,10 @@
             "link": { # A hypertext link. # The hyperlink destination of the shape. If unset, there is no link. Links
                 # are not inherited from parent placeholders.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -1047,8 +1131,8 @@
             "parentObjectId": "A String", # The object ID of this shape's parent placeholder.
                 # If unset, the parent placeholder shape does not exist, so the shape does
                 # not inherit properties from any other shape.
-            "index": 42, # The index of the placeholder. If the same placeholder types are the present
-                # in the same page, they would have different index values.
+            "index": 42, # The index of the placeholder. If the same placeholder types are present in
+                # the same page, they would have different index values.
             "type": "A String", # The type of the placeholder.
           },
           "shapeType": "A String", # The type of the shape.
@@ -1056,12 +1140,11 @@
         "sheetsChart": { # A PageElement kind representing # A linked chart embedded from Google Sheets. Unlinked charts are
             # represented as images.
             # a linked chart embedded from Google Sheets.
-          "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-              # embedded.
           "contentUrl": "A String", # The URL of an image of the embedded chart, with a default lifetime of 30
               # minutes. This URL is tagged with the account of the requester. Anyone with
               # the URL effectively accesses the image as the original requester. Access to
               # the image may be lost if the presentation's sharing settings change.
+          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
           "sheetsChartProperties": { # The properties of the SheetsChart. # The properties of the Sheets chart.
             "chartImageProperties": { # The properties of the Image. # The properties of the embedded chart image.
               "outline": { # The outline of a PageElement. # The outline of the image. If not set, the the image has no outline.
@@ -1139,10 +1222,10 @@
               },
               "link": { # A hypertext link. # The hyperlink destination of the image. If unset, there is no link.
                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                    # presentation with this ID. A page with this ID may not exist.
                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                     # in the presentation. There may not be a slide at this index.
+                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                    # presentation with this ID. A page with this ID may not exist.
                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                     # addressed by its position.
               },
@@ -1173,17 +1256,17 @@
                 "leftOffset": 3.14, # The offset specifies the left edge of the crop rectangle that is located to
                     # the right of the original bounding rectangle left edge, relative to the
                     # object's original width.
-                "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
-                    # below the original bounding rectangle top edge, relative to the object's
-                    # original height.
-                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
-                    # above the original bounding rectangle bottom edge, relative to the object's
-                    # original height.
                 "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
                     # Rotation angle is applied after the offset.
                 "rightOffset": 3.14, # The offset specifies the right edge of the crop rectangle that is located
                     # to the left of the original bounding rectangle right edge, relative to the
                     # object's original width.
+                "bottomOffset": 3.14, # The offset specifies the bottom edge of the crop rectangle that is located
+                    # above the original bounding rectangle bottom edge, relative to the object's
+                    # original height.
+                "topOffset": 3.14, # The offset specifies the top edge of the crop rectangle that is located
+                    # below the original bounding rectangle top edge, relative to the object's
+                    # original height.
               },
               "shadow": { # The shadow properties of a page element. # The shadow of the image. If not set, the image has no shadow. This property
                   # is read-only.
@@ -1243,14 +1326,13 @@
                   # [-1.0, 1.0], where 0 means no effect. This property is read-only.
             },
           },
-          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
+          "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
+              # embedded.
         },
         "video": { # A PageElement kind representing a # A video page element.
             # video.
           "url": "A String", # An URL to a video. The URL is valid as long as the source video
               # exists and sharing settings do not change.
-          "source": "A String", # The video source.
-          "id": "A String", # The video source's unique identifier for this video.
           "videoProperties": { # The properties of the Video. # The properties of the video.
             "outline": { # The outline of a PageElement. # The outline of the video. The default outline matches the defaults for new
                 # videos created in the Slides editor.
@@ -1296,6 +1378,8 @@
               },
             },
           },
+          "id": "A String", # The video source's unique identifier for this video.
+          "source": "A String", # The video source.
         },
         "elementGroup": { # A PageElement kind representing a # A collection of page elements joined as a single unit.
             # joined collection of PageElements.
@@ -1373,26 +1457,47 @@
                                   # rendered in a smaller font size, computed based on the `font_size` field.
                                   # The `font_size` itself is not affected by changes in this field.
                               "strikethrough": True or False, # Whether or not the text is struck through.
-                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                  # read-only.
+                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                   #
                                   # This field is an extension of `font_family` meant to support explicit font
                                   # weights without breaking backwards compatibility. As such, when reading the
-                                  # style of a range of text, the value of `weighted_font_family.font_family`
-                                  # will always be equal to that of `font_family`.
+                                  # style of a range of text, the value of `weighted_font_family#font_family`
+                                  # will always be equal to that of `font_family`. However, when writing, if
+                                  # both fields are included in the field mask (either explicitly or through
+                                  # the wildcard `"*"`), their values are reconciled as follows:
+                                  #
+                                  # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                  #   `font_family` is applied with weight `400` ("normal").
+                                  # * If both fields are set, the value of `font_family` must match that of
+                                  #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                  #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                  #   returned.
+                                  # * If `weighted_font_family` is set and `font_family` is not, the font
+                                  #   family and weight of `weighted_font_family` is applied.
+                                  # * If neither field is set, the font family and weight of the text inherit
+                                  #   from the parent. Note that these properties cannot inherit separately
+                                  #   from each other.
+                                  #
+                                  # If an update request specifies values for both `weighted_font_family` and
+                                  # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                  #
+                                  # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                  #
+                                  # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                  # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                  # is returned.
                                 "fontFamily": "A String", # The font family of the text.
                                     #
                                     # The font family can be any font from the Font menu in Slides or from
                                     # [Google Fonts] (https://fonts.google.com/). If the font name is
                                     # unrecognized, the text is rendered in `Arial`.
                                 "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                    # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                    # only the numerical values described in the "Cascading Style Sheets Level
-                                    # 2 Revision 1 (CSS 2.1) Specification",
-                                    # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                    # non-numerical values in the specification are disallowed. Weights greater
-                                    # than or equal to 700 are considered bold, and weights less than 700 are
-                                    # not bold. The default value is `400` ("normal").
+                                    # multiple of `100` between `100` and `900`, inclusive. This range
+                                    # corresponds to the numerical values described in the CSS 2.1
+                                    # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                    # with non-numerical values disallowed. Weights greater than or equal to
+                                    # `700` are considered bold, and weights less than `700`are not bold. The
+                                    # default value is `400` ("normal").
                               },
                               "smallCaps": True or False, # Whether or not the text is in small capital letters.
                               "fontFamily": "A String", # The font family of the text.
@@ -1426,10 +1531,10 @@
                                   #   text is another link) unless different styles are being set in the same
                                   #   request.
                                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                    # presentation with this ID. A page with this ID may not exist.
                                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                     # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
                                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                     # addressed by its position.
                               },
@@ -1500,26 +1605,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -1553,10 +1679,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -1606,8 +1732,8 @@
                               # Inherited paragraph styles are represented as unset fields in this message.
                             "spacingMode": "A String", # The spacing mode for the paragraph.
                             "direction": "A String", # The text direction of this paragraph. If unset, the value defaults to
-                                # LEFT_TO_RIGHT
-                                # since text direction is not inherited.
+                                # LEFT_TO_RIGHT since
+                                # text direction is not inherited.
                             "spaceBelow": { # A magnitude in a single direction in the specified units. # The amount of extra space above the paragraph. If unset, the value is
                                 # inherited from the parent.
                               "magnitude": 3.14, # The magnitude.
@@ -1679,26 +1805,47 @@
                                   # rendered in a smaller font size, computed based on the `font_size` field.
                                   # The `font_size` itself is not affected by changes in this field.
                               "strikethrough": True or False, # Whether or not the text is struck through.
-                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                  # read-only.
+                              "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                   #
                                   # This field is an extension of `font_family` meant to support explicit font
                                   # weights without breaking backwards compatibility. As such, when reading the
-                                  # style of a range of text, the value of `weighted_font_family.font_family`
-                                  # will always be equal to that of `font_family`.
+                                  # style of a range of text, the value of `weighted_font_family#font_family`
+                                  # will always be equal to that of `font_family`. However, when writing, if
+                                  # both fields are included in the field mask (either explicitly or through
+                                  # the wildcard `"*"`), their values are reconciled as follows:
+                                  #
+                                  # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                  #   `font_family` is applied with weight `400` ("normal").
+                                  # * If both fields are set, the value of `font_family` must match that of
+                                  #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                  #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                  #   returned.
+                                  # * If `weighted_font_family` is set and `font_family` is not, the font
+                                  #   family and weight of `weighted_font_family` is applied.
+                                  # * If neither field is set, the font family and weight of the text inherit
+                                  #   from the parent. Note that these properties cannot inherit separately
+                                  #   from each other.
+                                  #
+                                  # If an update request specifies values for both `weighted_font_family` and
+                                  # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                  #
+                                  # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                  #
+                                  # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                  # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                  # is returned.
                                 "fontFamily": "A String", # The font family of the text.
                                     #
                                     # The font family can be any font from the Font menu in Slides or from
                                     # [Google Fonts] (https://fonts.google.com/). If the font name is
                                     # unrecognized, the text is rendered in `Arial`.
                                 "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                    # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                    # only the numerical values described in the "Cascading Style Sheets Level
-                                    # 2 Revision 1 (CSS 2.1) Specification",
-                                    # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                    # non-numerical values in the specification are disallowed. Weights greater
-                                    # than or equal to 700 are considered bold, and weights less than 700 are
-                                    # not bold. The default value is `400` ("normal").
+                                    # multiple of `100` between `100` and `900`, inclusive. This range
+                                    # corresponds to the numerical values described in the CSS 2.1
+                                    # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                    # with non-numerical values disallowed. Weights greater than or equal to
+                                    # `700` are considered bold, and weights less than `700`are not bold. The
+                                    # default value is `400` ("normal").
                               },
                               "smallCaps": True or False, # Whether or not the text is in small capital letters.
                               "fontFamily": "A String", # The font family of the text.
@@ -1732,10 +1879,10 @@
                                   #   text is another link) unless different styles are being set in the same
                                   #   request.
                                 "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                    # presentation with this ID. A page with this ID may not exist.
                                 "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                     # in the presentation. There may not be a slide at this index.
+                                "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                    # presentation with this ID. A page with this ID may not exist.
                                 "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                     # addressed by its position.
                               },
@@ -1805,26 +1952,47 @@
                                 # rendered in a smaller font size, computed based on the `font_size` field.
                                 # The `font_size` itself is not affected by changes in this field.
                             "strikethrough": True or False, # Whether or not the text is struck through.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text.
                                 #
                                 # This field is an extension of `font_family` meant to support explicit font
                                 # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
+                                # style of a range of text, the value of `weighted_font_family#font_family`
+                                # will always be equal to that of `font_family`. However, when writing, if
+                                # both fields are included in the field mask (either explicitly or through
+                                # the wildcard `"*"`), their values are reconciled as follows:
+                                #
+                                # * If `font_family` is set and `weighted_font_family` is not, the value of
+                                #   `font_family` is applied with weight `400` ("normal").
+                                # * If both fields are set, the value of `font_family` must match that of
+                                #   `weighted_font_family#font_family`. If so, the font family and weight of
+                                #   `weighted_font_family` is applied. Otherwise, a 400 bad request error is
+                                #   returned.
+                                # * If `weighted_font_family` is set and `font_family` is not, the font
+                                #   family and weight of `weighted_font_family` is applied.
+                                # * If neither field is set, the font family and weight of the text inherit
+                                #   from the parent. Note that these properties cannot inherit separately
+                                #   from each other.
+                                #
+                                # If an update request specifies values for both `weighted_font_family` and
+                                # `bold`, the `weighted_font_family` is applied first, then `bold`.
+                                #
+                                # If `weighted_font_family#weight` is not set, it defaults to `400`.
+                                #
+                                # If `weighted_font_family` is set, then `weighted_font_family#font_family`
+                                # must also be set with a non-empty value. Otherwise, a 400 bad request error
+                                # is returned.
                               "fontFamily": "A String", # The font family of the text.
                                   #
                                   # The font family can be any font from the Font menu in Slides or from
                                   # [Google Fonts] (https://fonts.google.com/). If the font name is
                                   # unrecognized, the text is rendered in `Arial`.
                               "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
+                                  # multiple of `100` between `100` and `900`, inclusive. This range
+                                  # corresponds to the numerical values described in the CSS 2.1
+                                  # Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
+                                  # with non-numerical values disallowed. Weights greater than or equal to
+                                  # `700` are considered bold, and weights less than `700`are not bold. The
+                                  # default value is `400` ("normal").
                             },
                             "smallCaps": True or False, # Whether or not the text is in small capital letters.
                             "fontFamily": "A String", # The font family of the text.
@@ -1858,10 +2026,10 @@
                                 #   text is another link) unless different styles are being set in the same
                                 #   request.
                               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                                  # presentation with this ID. A page with this ID may not exist.
                               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                                   # in the presentation. There may not be a slide at this index.
+                              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                                  # presentation with this ID. A page with this ID may not exist.
                               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                                   # addressed by its position.
                             },
@@ -1951,10 +2119,10 @@
             "endArrow": "A String", # The style of the arrow at the end of the line.
             "link": { # A hypertext link. # The hyperlink destination of the line. If unset, there is no link.
               "url": "A String", # If set, indicates this is a link to the external web page at this URL.
-              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
-                  # presentation with this ID. A page with this ID may not exist.
               "slideIndex": 42, # If set, indicates this is a link to the slide at this zero-based index
                   # in the presentation. There may not be a slide at this index.
+              "pageObjectId": "A String", # If set, indicates this is a link to the specific page in this
+                  # presentation with this ID. A page with this ID may not exist.
               "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
                   # addressed by its position.
             },
@@ -2017,9 +2185,11 @@
         #
         # The format of the revision ID may change over time, so it should be treated
         # opaquely. A returned revision ID is only guaranteed to be valid for 24
-        # hours after it has been returned and cannot be shared across
-        # users. Callers can assume that if two revision IDs are equal then the
-        # presentation has not changed.
+        # hours after it has been returned and cannot be shared across users. If the
+        # revision ID is unchanged between calls, then the presentation has not
+        # changed. Conversely, a changed ID (for the same presentation and user)
+        # usually means the presentation has been updated; however, a changed ID can
+        # also be due to internal factors such as ID format changes.
     "pageProperties": { # The properties of the Page. # The properties of the page.
         #
         # The page will inherit properties from the parent page. Depending on the page
diff --git a/docs/dyn/sourcerepo_v1.projects.repos.html b/docs/dyn/sourcerepo_v1.projects.repos.html
index 38bcb97..45b3b7c 100644
--- a/docs/dyn/sourcerepo_v1.projects.repos.html
+++ b/docs/dyn/sourcerepo_v1.projects.repos.html
@@ -76,7 +76,7 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(parent, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a repo in the given project with the given name..</p>
+<p class="firstline">Creates a repo in the given project with the given name.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a repo.</p>
@@ -87,8 +87,11 @@
   <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a resource.</p>
 <p class="toc_element">
-  <code><a href="#list">list(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns all repos belonging to a project.</p>
+  <code><a href="#list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+<p class="firstline">Returns all repos belonging to a project. The sizes of the repos are</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>
 <p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
@@ -98,7 +101,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
-  <pre>Creates a repo in the given project with the given name..
+  <pre>Creates a repo in the given project with the given name.
 
 If the named repository already exists, `CreateRepo` returns
 `ALREADY_EXISTS`.
@@ -111,9 +114,11 @@
 
 { # A repository (or repo) is a Git repository storing versioned source content.
   "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
-  "size": "A String", # The size in bytes of the repo.
+  "size": "A String", # The disk usage of the repo, in bytes.
+      # Only returned by GetRepo.
   "name": "A String", # Resource name of the repository, of the form
-      # `projects/<project>/repos/<repo>`.
+      # `projects/<project>/repos/<repo>`.  The repo name may contain slashes.
+      # eg, `projects/myproject/repos/name/with/slash`
   "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
       # hosting service, for example GitHub or BitBucket.
     "url": "A String", # URL of the main repository at the other hosting service.
@@ -137,9 +142,11 @@
 
     { # A repository (or repo) is a Git repository storing versioned source content.
     "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
-    "size": "A String", # The size in bytes of the repo.
+    "size": "A String", # The disk usage of the repo, in bytes.
+        # Only returned by GetRepo.
     "name": "A String", # Resource name of the repository, of the form
-        # `projects/<project>/repos/<repo>`.
+        # `projects/<project>/repos/<repo>`.  The repo name may contain slashes.
+        # eg, `projects/myproject/repos/name/with/slash`
     "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
         # hosting service, for example GitHub or BitBucket.
       "url": "A String", # URL of the main repository at the other hosting service.
@@ -198,9 +205,11 @@
 
     { # A repository (or repo) is a Git repository storing versioned source content.
     "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
-    "size": "A String", # The size in bytes of the repo.
+    "size": "A String", # The disk usage of the repo, in bytes.
+        # Only returned by GetRepo.
     "name": "A String", # Resource name of the repository, of the form
-        # `projects/<project>/repos/<repo>`.
+        # `projects/<project>/repos/<repo>`.  The repo name may contain slashes.
+        # eg, `projects/myproject/repos/name/with/slash`
     "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
         # hosting service, for example GitHub or BitBucket.
       "url": "A String", # URL of the main repository at the other hosting service.
@@ -267,48 +276,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -349,6 +361,7 @@
             # `allServices` is a special value that covers all services.
       },
     ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
     "rules": [ # If more than one rule is specified, the rules are applied in the following
         # manner:
         # - All matching LOG rules are always applied.
@@ -394,6 +407,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -404,7 +418,6 @@
         ],
       },
     ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -441,6 +454,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
@@ -453,27 +467,38 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name, x__xgafv=None)</code>
-  <pre>Returns all repos belonging to a project.
+    <code class="details" id="list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
+  <pre>Returns all repos belonging to a project. The sizes of the repos are
+not set by ListRepos.  To get the size of a repo, use GetRepo.
 
 Args:
   name: string, The project ID whose repos should be listed. Values are of the form
 `projects/<project>`. (required)
+  pageToken: string, Resume listing repositories where a prior ListReposResponse
+left off. This is an opaque token that must be obtained from
+a recent, prior ListReposResponse's next_page_token field.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Maximum number of repositories to return; between 1 and 500.
+If not set or zero, defaults to 100 at the server.
 
 Returns:
   An object of the form:
 
-    { # Response for ListRepos.
+    { # Response for ListRepos.  The size is not set in the returned repositories.
+    "nextPageToken": "A String", # If non-empty, additional repositories exist within the project. These
+        # can be retrieved by including this value in the next ListReposRequest's
+        # page_token field.
     "repos": [ # The listed repos.
       { # A repository (or repo) is a Git repository storing versioned source content.
         "url": "A String", # URL to clone the repository from Google Cloud Source Repositories.
-        "size": "A String", # The size in bytes of the repo.
+        "size": "A String", # The disk usage of the repo, in bytes.
+            # Only returned by GetRepo.
         "name": "A String", # Resource name of the repository, of the form
-            # `projects/<project>/repos/<repo>`.
+            # `projects/<project>/repos/<repo>`.  The repo name may contain slashes.
+            # eg, `projects/myproject/repos/name/with/slash`
         "mirrorConfig": { # Configuration to automatically mirror a repository from another # How this repository mirrors a repository managed by another service.
             # hosting service, for example GitHub or BitBucket.
           "url": "A String", # URL of the main repository at the other hosting service.
@@ -491,6 +516,20 @@
 </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>
+
+<div class="method">
     <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
@@ -540,48 +579,51 @@
         { # Specifies the audit configuration for a service.
             # The configuration determines which permission types are logged, and what
             # identities, if any, are exempted from logging.
-            # An AuditConifg must have one or more AuditLogConfigs.
+            # An AuditConfig must have one or more AuditLogConfigs.
             #
             # If there are AuditConfigs for both `allServices` and a specific service,
             # the union of the two AuditConfigs is used for that service: the log_types
             # specified in each AuditConfig are enabled, and the exempted_members in each
             # AuditConfig are exempted.
+            #
             # Example Policy with multiple AuditConfigs:
-            # {
-            #   "audit_configs": [
+            #
             #     {
-            #       "service": "allServices"
-            #       "audit_log_configs": [
+            #       "audit_configs": [
             #         {
-            #           "log_type": "DATA_READ",
-            #           "exempted_members": [
-            #             "user:foo@gmail.com"
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
             #           ]
             #         },
             #         {
-            #           "log_type": "DATA_WRITE",
-            #         },
-            #         {
-            #           "log_type": "ADMIN_READ",
-            #         }
-            #       ]
-            #     },
-            #     {
-            #       "service": "fooservice@googleapis.com"
-            #       "audit_log_configs": [
-            #         {
-            #           "log_type": "DATA_READ",
-            #         },
-            #         {
-            #           "log_type": "DATA_WRITE",
-            #           "exempted_members": [
-            #             "user:bar@gmail.com"
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
             #           ]
             #         }
             #       ]
             #     }
-            #   ]
-            # }
+            #
             # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
             # logging. It also exempts foo@gmail.com from DATA_READ logging, and
             # bar@gmail.com from DATA_WRITE logging.
@@ -622,6 +664,7 @@
               # `allServices` is a special value that covers all services.
         },
       ],
+      "version": 42, # Version of the `Policy`. The default version is 0.
       "rules": [ # If more than one rule is specified, the rules are applied in the following
           # manner:
           # - All matching LOG rules are always applied.
@@ -667,6 +710,7 @@
               "dataAccess": { # Write a Data Access (Gin) log # Data access options.
               },
               "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+                "logName": "A String", # The log_name to populate in the Cloud Audit Record.
               },
             },
           ],
@@ -677,7 +721,6 @@
           ],
         },
       ],
-      "version": 42, # Version of the `Policy`. The default version is 0.
       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
           # prevent simultaneous updates of a policy from overwriting each other.
           # It is strongly suggested that systems make use of the `etag` in the
@@ -714,6 +757,7 @@
               # * `group:{emailid}`: An email address that represents a Google group.
               #    For example, `admins@example.com`.
               #
+              #
               # * `domain:{domain}`: A Google Apps domain name that represents all the
               #    users of that domain. For example, `google.com` or `example.com`.
               #
@@ -773,48 +817,51 @@
       { # Specifies the audit configuration for a service.
           # The configuration determines which permission types are logged, and what
           # identities, if any, are exempted from logging.
-          # An AuditConifg must have one or more AuditLogConfigs.
+          # An AuditConfig must have one or more AuditLogConfigs.
           #
           # If there are AuditConfigs for both `allServices` and a specific service,
           # the union of the two AuditConfigs is used for that service: the log_types
           # specified in each AuditConfig are enabled, and the exempted_members in each
           # AuditConfig are exempted.
+          #
           # Example Policy with multiple AuditConfigs:
-          # {
-          #   "audit_configs": [
+          #
           #     {
-          #       "service": "allServices"
-          #       "audit_log_configs": [
+          #       "audit_configs": [
           #         {
-          #           "log_type": "DATA_READ",
-          #           "exempted_members": [
-          #             "user:foo@gmail.com"
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
           #           ]
           #         },
           #         {
-          #           "log_type": "DATA_WRITE",
-          #         },
-          #         {
-          #           "log_type": "ADMIN_READ",
-          #         }
-          #       ]
-          #     },
-          #     {
-          #       "service": "fooservice@googleapis.com"
-          #       "audit_log_configs": [
-          #         {
-          #           "log_type": "DATA_READ",
-          #         },
-          #         {
-          #           "log_type": "DATA_WRITE",
-          #           "exempted_members": [
-          #             "user:bar@gmail.com"
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
           #           ]
           #         }
           #       ]
           #     }
-          #   ]
-          # }
+          #
           # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
           # logging. It also exempts foo@gmail.com from DATA_READ logging, and
           # bar@gmail.com from DATA_WRITE logging.
@@ -855,6 +902,7 @@
             # `allServices` is a special value that covers all services.
       },
     ],
+    "version": 42, # Version of the `Policy`. The default version is 0.
     "rules": [ # If more than one rule is specified, the rules are applied in the following
         # manner:
         # - All matching LOG rules are always applied.
@@ -900,6 +948,7 @@
             "dataAccess": { # Write a Data Access (Gin) log # Data access options.
             },
             "cloudAudit": { # Write a Cloud Audit log # Cloud audit options.
+              "logName": "A String", # The log_name to populate in the Cloud Audit Record.
             },
           },
         ],
@@ -910,7 +959,6 @@
         ],
       },
     ],
-    "version": 42, # Version of the `Policy`. The default version is 0.
     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
         # prevent simultaneous updates of a policy from overwriting each other.
         # It is strongly suggested that systems make use of the `etag` in the
@@ -947,6 +995,7 @@
             # * `group:{emailid}`: An email address that represents a Google group.
             #    For example, `admins@example.com`.
             #
+            #
             # * `domain:{domain}`: A Google Apps domain name that represents all the
             #    users of that domain. For example, `google.com` or `example.com`.
             #
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.html b/docs/dyn/spanner_v1.projects.instances.databases.html
index 026ee47..6942bde 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.html
@@ -100,7 +100,7 @@
   <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for a database resource. Returns an empty</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists Cloud Spanner databases.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -142,6 +142,8 @@
     "createStatement": "A String", # Required. A `CREATE DATABASE` statement, which specifies the ID of the
         # new database.  The database ID must conform to the regular expression
         # `a-z*[a-z0-9]` and be between 2 and 30 characters in length.
+        # If the database ID is a reserved word or if it contains a hyphen, the
+        # database ID must be enclosed in backticks (`` ` ``).
   }
 
   x__xgafv: string, V1 error format.
@@ -160,6 +162,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -223,22 +241,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -374,13 +376,57 @@
       # [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
           # An AuditConifg must have one or more AuditLogConfigs.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-            # logging for the `service` specified above.
-            # Follows the same format of Binding.members.
-            # This field is deprecated in favor of per-permission-type exemptions.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          #     {
+          #       "audit_configs": [
+          #         {
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
+          #           ]
+          #         },
+          #         {
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
         "auditLogConfigs": [ # The configuration for logging of each type of permission.
@@ -413,7 +459,7 @@
           },
         ],
         "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
             # `allServices` is a special value that covers all services.
       },
     ],
@@ -455,28 +501,6 @@
         "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
             # that match the LOG action.
           { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
             "counter": { # Options for counters # Counter options.
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
@@ -543,14 +567,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists Cloud Spanner databases.
 
 Args:
   parent: string, Required. The instance whose databases should be listed.
 Values are of the form `projects/<project>/instances/<instance>`. (required)
-  pageSize: integer, Number of databases to be returned in the response. If 0 or less,
-defaults to the server's maximum allowed page size.
   pageToken: string, If non-empty, `page_token` should contain a
 next_page_token from a
 previous ListDatabasesResponse.
@@ -558,6 +580,8 @@
     Allowed values
       1 - v1 error format
       2 - v2 error format
+  pageSize: integer, Number of databases to be returned in the response. If 0 or less,
+defaults to the server's maximum allowed page size.
 
 Returns:
   An object of the form:
@@ -643,13 +667,57 @@
         # [IAM developer's guide](https://cloud.google.com/iam).
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
-            # It consists of which permission types are logged, and what identities, if
-            # any, are exempted from logging.
+            # The configuration determines which permission types are logged, and what
+            # identities, if any, are exempted from logging.
             # An AuditConifg must have one or more AuditLogConfigs.
-          "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-              # logging for the `service` specified above.
-              # Follows the same format of Binding.members.
-              # This field is deprecated in favor of per-permission-type exemptions.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            #
+            # Example Policy with multiple AuditConfigs:
+            #
+            #     {
+            #       "audit_configs": [
+            #         {
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
+            #           ]
+            #         },
+            #         {
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
             "A String",
           ],
           "auditLogConfigs": [ # The configuration for logging of each type of permission.
@@ -682,7 +750,7 @@
             },
           ],
           "service": "A String", # Specifies a service that will be enabled for audit logging.
-              # For example, `resourcemanager`, `storage`, `compute`.
+              # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
               # `allServices` is a special value that covers all services.
         },
       ],
@@ -724,28 +792,6 @@
           "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
               # that match the LOG action.
             { # Specifies what kind of log the caller must write
-                # Increment a streamz counter with the specified metric and field names.
-                #
-                # Metric names should start with a '/', generally be lowercase-only,
-                # and end in "_count". Field names should not contain an initial slash.
-                # The actual exported metric names will have "/iam/policy" prepended.
-                #
-                # Field names correspond to IAM request parameters and field values are
-                # their respective values.
-                #
-                # At present the only supported field names are
-                #    - "iam_principal", corresponding to IAMContext.principal;
-                #    - "" (empty string), resulting in one aggretated counter with no field.
-                #
-                # Examples:
-                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                #   ==> increment counter /iam/policy/backend_debug_access_count
-                #                         {iam_principal=[value of IAMContext.principal]}
-                #
-                # At this time we do not support:
-                # * multiple field names (though this may be supported in the future)
-                # * decrementing the counter
-                # * incrementing it by anything other than 1
               "counter": { # Options for counters # Counter options.
                 "field": "A String", # The field value to attribute.
                 "metric": "A String", # The metric to update.
@@ -810,8 +856,8 @@
       "iamOwned": True or False,
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
-        # the fields in the mask will be modified. If no mask is provided, a default
-        # mask is used:
+        # the fields in the mask will be modified. If no mask is provided, the
+        # following default mask is used:
         # paths: "bindings, etag"
         # This field is only used by Cloud IAM.
   }
@@ -857,13 +903,57 @@
       # [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
           # An AuditConifg must have one or more AuditLogConfigs.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-            # logging for the `service` specified above.
-            # Follows the same format of Binding.members.
-            # This field is deprecated in favor of per-permission-type exemptions.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          #     {
+          #       "audit_configs": [
+          #         {
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
+          #           ]
+          #         },
+          #         {
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
         "auditLogConfigs": [ # The configuration for logging of each type of permission.
@@ -896,7 +986,7 @@
           },
         ],
         "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
             # `allServices` is a special value that covers all services.
       },
     ],
@@ -938,28 +1028,6 @@
         "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
             # that match the LOG action.
           { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
             "counter": { # Options for counters # Counter options.
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
@@ -1133,6 +1201,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -1196,22 +1280,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.operations.html b/docs/dyn/spanner_v1.projects.instances.databases.operations.html
index 62881f2..10a68a8 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.operations.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.operations.html
@@ -178,6 +178,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -241,22 +257,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -282,7 +282,6 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
-    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
@@ -292,6 +291,22 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -355,24 +370,9 @@
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
+    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
index 5f33171..3280732 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
@@ -465,8 +465,35 @@
             "A String",
           ],
         },
+        "replace": { # Arguments to insert, update, insert_or_update, and # Like insert, except that if the row already exists, it is
+            # deleted, and the column values provided are inserted
+            # instead. Unlike insert_or_update, this means any values not
+            # explicitly written become `NULL`.
+            # replace operations.
+          "table": "A String", # Required. The table whose rows will be written.
+          "values": [ # The values to be written. `values` can contain more than one
+              # list of values. If it does, then multiple rows are written, one
+              # for each entry in `values`. Each list in `values` must have
+              # exactly as many entries as there are entries in columns
+              # above. Sending multiple lists is equivalent to sending multiple
+              # `Mutation`s, each containing one `values` entry and repeating
+              # table and columns. Individual values in each list are
+              # encoded as described here.
+            [
+              "",
+            ],
+          ],
+          "columns": [ # The names of the columns in table to be written.
+              #
+              # The list of columns must contain enough columns to allow
+              # Cloud Spanner to derive values for all primary key columns in the
+              # row(s) to be modified.
+            "A String",
+          ],
+        },
         "delete": { # Arguments to delete operations. # Delete rows from a table. Succeeds whether or not the named
             # rows were present.
+          "table": "A String", # Required. The table whose rows will be deleted.
           "keySet": { # `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All # Required. The primary keys of the rows within table to delete.
               # the keys are expected to be in the same table or index. The keys need
               # not be sorted in any particular way.
@@ -474,14 +501,6 @@
               # If the same key is specified multiple times in the set (for example
               # if two ranges, two keys, or a key and a range overlap), Cloud Spanner
               # behaves as if the key were only specified once.
-            "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
-                # many elements as there are columns in the primary or index key
-                # with which this `KeySet` is used.  Individual key values are
-                # encoded as described here.
-              [
-                "",
-              ],
-            ],
             "ranges": [ # A list of key ranges. See KeyRange for more information about
                 # key range specifications.
               { # KeyRange represents a range of rows in a table or index.
@@ -588,36 +607,18 @@
                 ],
               },
             ],
+            "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
+                # many elements as there are columns in the primary or index key
+                # with which this `KeySet` is used.  Individual key values are
+                # encoded as described here.
+              [
+                "",
+              ],
+            ],
             "all": True or False, # For convenience `all` can be set to `true` to indicate that this
                 # `KeySet` matches all keys in the table or index. Note that any keys
                 # specified in `keys` or `ranges` are only yielded once.
           },
-          "table": "A String", # Required. The table whose rows will be deleted.
-        },
-        "insertOrUpdate": { # Arguments to insert, update, insert_or_update, and # Like insert, except that if the row already exists, then
-            # its column values are overwritten with the ones provided. Any
-            # column values not explicitly written are preserved.
-            # replace operations.
-          "table": "A String", # Required. The table whose rows will be written.
-          "values": [ # The values to be written. `values` can contain more than one
-              # list of values. If it does, then multiple rows are written, one
-              # for each entry in `values`. Each list in `values` must have
-              # exactly as many entries as there are entries in columns
-              # above. Sending multiple lists is equivalent to sending multiple
-              # `Mutation`s, each containing one `values` entry and repeating
-              # table and columns. Individual values in each list are
-              # encoded as described here.
-            [
-              "",
-            ],
-          ],
-          "columns": [ # The names of the columns in table to be written.
-              #
-              # The list of columns must contain enough columns to allow
-              # Cloud Spanner to derive values for all primary key columns in the
-              # row(s) to be modified.
-            "A String",
-          ],
         },
         "update": { # Arguments to insert, update, insert_or_update, and # Update existing rows in a table. If any of the rows does not
             # already exist, the transaction fails with error `NOT_FOUND`.
@@ -643,10 +644,9 @@
             "A String",
           ],
         },
-        "replace": { # Arguments to insert, update, insert_or_update, and # Like insert, except that if the row already exists, it is
-            # deleted, and the column values provided are inserted
-            # instead. Unlike insert_or_update, this means any values not
-            # explicitly written become `NULL`.
+        "insertOrUpdate": { # Arguments to insert, update, insert_or_update, and # Like insert, except that if the row already exists, then
+            # its column values are overwritten with the ones provided. Any
+            # column values not explicitly written are preserved.
             # replace operations.
           "table": "A String", # Required. The table whose rows will be written.
           "values": [ # The values to be written. `values` can contain more than one
@@ -1635,6 +1635,9 @@
             # is the type of the array elements.
       },
     },
+    "queryMode": "A String", # Used to control the amount of debugging information returned in
+        # ResultSetStats.
+    "sql": "A String", # Required. The SQL query string.
     "params": { # The SQL query string can contain parameter placeholders. A parameter
         # placeholder consists of `'@'` followed by the parameter
         # name. Parameter names consist of any combination of letters,
@@ -1651,9 +1654,6 @@
         # corresponding parameter values.
       "a_key": "", # Properties of the object.
     },
-    "sql": "A String", # Required. The SQL query string.
-    "queryMode": "A String", # Used to control the amount of debugging information returned in
-        # ResultSetStats.
   }
 
   x__xgafv: string, V1 error format.
@@ -1708,11 +1708,11 @@
                     # created for each column that is read by the operator. The corresponding
                     # `variable` fields will be set to the variable names assigned to the
                     # columns.
+                "childIndex": 42, # The node to which the link points.
                 "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
                     # distinguish between the build child and the probe child, or in the case
                     # of the child being an output variable, to represent the tag associated
                     # with the output variable.
-                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
@@ -2401,6 +2401,9 @@
             # is the type of the array elements.
       },
     },
+    "queryMode": "A String", # Used to control the amount of debugging information returned in
+        # ResultSetStats.
+    "sql": "A String", # Required. The SQL query string.
     "params": { # The SQL query string can contain parameter placeholders. A parameter
         # placeholder consists of `'@'` followed by the parameter
         # name. Parameter names consist of any combination of letters,
@@ -2417,9 +2420,6 @@
         # corresponding parameter values.
       "a_key": "", # Properties of the object.
     },
-    "sql": "A String", # Required. The SQL query string.
-    "queryMode": "A String", # Used to control the amount of debugging information returned in
-        # ResultSetStats.
   }
 
   x__xgafv: string, V1 error format.
@@ -2433,6 +2433,14 @@
     { # Partial results from a streaming read or SQL query. Streaming reads and
       # SQL queries better tolerate large result sets, large rows, and large
       # values, but are a little trickier to consume.
+    "resumeToken": "A String", # Streaming calls might be interrupted for a variety of reasons, such
+        # as TCP connection loss. If this occurs, the stream of results can
+        # be resumed by re-sending the original request and including
+        # `resume_token`. Note that executing any other transaction in the
+        # same session invalidates the token.
+    "chunkedValue": True or False, # If true, then the final value in values is chunked, and must
+        # be combined with more values from subsequent `PartialResultSet`s
+        # to obtain a complete field value.
     "values": [ # A streamed result set consists of a stream of values, which might
         # be split into many `PartialResultSet` messages to accommodate
         # large rows and/or large values. Every N complete values defines a
@@ -2508,14 +2516,6 @@
         # field value `"World" = "W" + "orl" + "d"`.
       "",
     ],
-    "chunkedValue": True or False, # If true, then the final value in values is chunked, and must
-        # be combined with more values from subsequent `PartialResultSet`s
-        # to obtain a complete field value.
-    "resumeToken": "A String", # Streaming calls might be interrupted for a variety of reasons, such
-        # as TCP connection loss. If this occurs, the stream of results can
-        # be resumed by re-sending the original request and including
-        # `resume_token`. Note that executing any other transaction in the
-        # same session invalidates the token.
     "stats": { # Additional statistics about a ResultSet or PartialResultSet. # Query plan and execution statistics for the query that produced this
         # streaming result set. These can be requested by setting
         # ExecuteSqlRequest.query_mode and are sent
@@ -2549,11 +2549,11 @@
                     # created for each column that is read by the operator. The corresponding
                     # `variable` fields will be set to the variable names assigned to the
                     # columns.
+                "childIndex": 42, # The node to which the link points.
                 "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
                     # distinguish between the build child and the probe child, or in the case
                     # of the child being an output variable, to represent the tag associated
                     # with the output variable.
-                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
@@ -3274,14 +3274,6 @@
         # If the same key is specified multiple times in the set (for example
         # if two ranges, two keys, or a key and a range overlap), Cloud Spanner
         # behaves as if the key were only specified once.
-      "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
-          # many elements as there are columns in the primary or index key
-          # with which this `KeySet` is used.  Individual key values are
-          # encoded as described here.
-        [
-          "",
-        ],
-      ],
       "ranges": [ # A list of key ranges. See KeyRange for more information about
           # key range specifications.
         { # KeyRange represents a range of rows in a table or index.
@@ -3388,6 +3380,14 @@
           ],
         },
       ],
+      "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
+          # many elements as there are columns in the primary or index key
+          # with which this `KeySet` is used.  Individual key values are
+          # encoded as described here.
+        [
+          "",
+        ],
+      ],
       "all": True or False, # For convenience `all` can be set to `true` to indicate that this
           # `KeySet` matches all keys in the table or index. Note that any keys
           # specified in `keys` or `ranges` are only yielded once.
@@ -3453,11 +3453,11 @@
                     # created for each column that is read by the operator. The corresponding
                     # `variable` fields will be set to the variable names assigned to the
                     # columns.
+                "childIndex": 42, # The node to which the link points.
                 "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
                     # distinguish between the build child and the probe child, or in the case
                     # of the child being an output variable, to represent the tag associated
                     # with the output variable.
-                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
@@ -4188,14 +4188,6 @@
         # If the same key is specified multiple times in the set (for example
         # if two ranges, two keys, or a key and a range overlap), Cloud Spanner
         # behaves as if the key were only specified once.
-      "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
-          # many elements as there are columns in the primary or index key
-          # with which this `KeySet` is used.  Individual key values are
-          # encoded as described here.
-        [
-          "",
-        ],
-      ],
       "ranges": [ # A list of key ranges. See KeyRange for more information about
           # key range specifications.
         { # KeyRange represents a range of rows in a table or index.
@@ -4302,6 +4294,14 @@
           ],
         },
       ],
+      "keys": [ # A list of specific keys. Entries in `keys` should have exactly as
+          # many elements as there are columns in the primary or index key
+          # with which this `KeySet` is used.  Individual key values are
+          # encoded as described here.
+        [
+          "",
+        ],
+      ],
       "all": True or False, # For convenience `all` can be set to `true` to indicate that this
           # `KeySet` matches all keys in the table or index. Note that any keys
           # specified in `keys` or `ranges` are only yielded once.
@@ -4326,6 +4326,14 @@
     { # Partial results from a streaming read or SQL query. Streaming reads and
       # SQL queries better tolerate large result sets, large rows, and large
       # values, but are a little trickier to consume.
+    "resumeToken": "A String", # Streaming calls might be interrupted for a variety of reasons, such
+        # as TCP connection loss. If this occurs, the stream of results can
+        # be resumed by re-sending the original request and including
+        # `resume_token`. Note that executing any other transaction in the
+        # same session invalidates the token.
+    "chunkedValue": True or False, # If true, then the final value in values is chunked, and must
+        # be combined with more values from subsequent `PartialResultSet`s
+        # to obtain a complete field value.
     "values": [ # A streamed result set consists of a stream of values, which might
         # be split into many `PartialResultSet` messages to accommodate
         # large rows and/or large values. Every N complete values defines a
@@ -4401,14 +4409,6 @@
         # field value `"World" = "W" + "orl" + "d"`.
       "",
     ],
-    "chunkedValue": True or False, # If true, then the final value in values is chunked, and must
-        # be combined with more values from subsequent `PartialResultSet`s
-        # to obtain a complete field value.
-    "resumeToken": "A String", # Streaming calls might be interrupted for a variety of reasons, such
-        # as TCP connection loss. If this occurs, the stream of results can
-        # be resumed by re-sending the original request and including
-        # `resume_token`. Note that executing any other transaction in the
-        # same session invalidates the token.
     "stats": { # Additional statistics about a ResultSet or PartialResultSet. # Query plan and execution statistics for the query that produced this
         # streaming result set. These can be requested by setting
         # ExecuteSqlRequest.query_mode and are sent
@@ -4442,11 +4442,11 @@
                     # created for each column that is read by the operator. The corresponding
                     # `variable` fields will be set to the variable names assigned to the
                     # columns.
+                "childIndex": 42, # The node to which the link points.
                 "type": "A String", # The type of the link. For example, in Hash Joins this could be used to
                     # distinguish between the build child and the probe child, or in the case
                     # of the child being an output variable, to represent the tag associated
                     # with the output variable.
-                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
diff --git a/docs/dyn/spanner_v1.projects.instances.html b/docs/dyn/spanner_v1.projects.instances.html
index 8bccf28..d8b4c63 100644
--- a/docs/dyn/spanner_v1.projects.instances.html
+++ b/docs/dyn/spanner_v1.projects.instances.html
@@ -219,6 +219,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -282,22 +298,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -453,13 +453,57 @@
       # [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
           # An AuditConifg must have one or more AuditLogConfigs.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-            # logging for the `service` specified above.
-            # Follows the same format of Binding.members.
-            # This field is deprecated in favor of per-permission-type exemptions.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          #     {
+          #       "audit_configs": [
+          #         {
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
+          #           ]
+          #         },
+          #         {
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
         "auditLogConfigs": [ # The configuration for logging of each type of permission.
@@ -492,7 +536,7 @@
           },
         ],
         "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
             # `allServices` is a special value that covers all services.
       },
     ],
@@ -534,28 +578,6 @@
         "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
             # that match the LOG action.
           { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
             "counter": { # Options for counters # Counter options.
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
@@ -840,6 +862,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -903,22 +941,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -972,13 +994,57 @@
         # [IAM developer's guide](https://cloud.google.com/iam).
       "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
         { # Specifies the audit configuration for a service.
-            # It consists of which permission types are logged, and what identities, if
-            # any, are exempted from logging.
+            # The configuration determines which permission types are logged, and what
+            # identities, if any, are exempted from logging.
             # An AuditConifg must have one or more AuditLogConfigs.
-          "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-              # logging for the `service` specified above.
-              # Follows the same format of Binding.members.
-              # This field is deprecated in favor of per-permission-type exemptions.
+            #
+            # If there are AuditConfigs for both `allServices` and a specific service,
+            # the union of the two AuditConfigs is used for that service: the log_types
+            # specified in each AuditConfig are enabled, and the exempted_members in each
+            # AuditConfig are exempted.
+            #
+            # Example Policy with multiple AuditConfigs:
+            #
+            #     {
+            #       "audit_configs": [
+            #         {
+            #           "service": "allServices"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #               "exempted_members": [
+            #                 "user:foo@gmail.com"
+            #               ]
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #             },
+            #             {
+            #               "log_type": "ADMIN_READ",
+            #             }
+            #           ]
+            #         },
+            #         {
+            #           "service": "fooservice.googleapis.com"
+            #           "audit_log_configs": [
+            #             {
+            #               "log_type": "DATA_READ",
+            #             },
+            #             {
+            #               "log_type": "DATA_WRITE",
+            #               "exempted_members": [
+            #                 "user:bar@gmail.com"
+            #               ]
+            #             }
+            #           ]
+            #         }
+            #       ]
+            #     }
+            #
+            # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+            # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+            # bar@gmail.com from DATA_WRITE logging.
+          "exemptedMembers": [
             "A String",
           ],
           "auditLogConfigs": [ # The configuration for logging of each type of permission.
@@ -1011,7 +1077,7 @@
             },
           ],
           "service": "A String", # Specifies a service that will be enabled for audit logging.
-              # For example, `resourcemanager`, `storage`, `compute`.
+              # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
               # `allServices` is a special value that covers all services.
         },
       ],
@@ -1053,28 +1119,6 @@
           "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
               # that match the LOG action.
             { # Specifies what kind of log the caller must write
-                # Increment a streamz counter with the specified metric and field names.
-                #
-                # Metric names should start with a '/', generally be lowercase-only,
-                # and end in "_count". Field names should not contain an initial slash.
-                # The actual exported metric names will have "/iam/policy" prepended.
-                #
-                # Field names correspond to IAM request parameters and field values are
-                # their respective values.
-                #
-                # At present the only supported field names are
-                #    - "iam_principal", corresponding to IAMContext.principal;
-                #    - "" (empty string), resulting in one aggretated counter with no field.
-                #
-                # Examples:
-                #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-                #   ==> increment counter /iam/policy/backend_debug_access_count
-                #                         {iam_principal=[value of IAMContext.principal]}
-                #
-                # At this time we do not support:
-                # * multiple field names (though this may be supported in the future)
-                # * decrementing the counter
-                # * incrementing it by anything other than 1
               "counter": { # Options for counters # Counter options.
                 "field": "A String", # The field value to attribute.
                 "metric": "A String", # The metric to update.
@@ -1139,8 +1183,8 @@
       "iamOwned": True or False,
     },
     "updateMask": "A String", # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
-        # the fields in the mask will be modified. If no mask is provided, a default
-        # mask is used:
+        # the fields in the mask will be modified. If no mask is provided, the
+        # following default mask is used:
         # paths: "bindings, etag"
         # This field is only used by Cloud IAM.
   }
@@ -1186,13 +1230,57 @@
       # [IAM developer's guide](https://cloud.google.com/iam).
     "auditConfigs": [ # Specifies cloud audit logging configuration for this policy.
       { # Specifies the audit configuration for a service.
-          # It consists of which permission types are logged, and what identities, if
-          # any, are exempted from logging.
+          # The configuration determines which permission types are logged, and what
+          # identities, if any, are exempted from logging.
           # An AuditConifg must have one or more AuditLogConfigs.
-        "exemptedMembers": [ # Specifies the identities that are exempted from "data access" audit
-            # logging for the `service` specified above.
-            # Follows the same format of Binding.members.
-            # This field is deprecated in favor of per-permission-type exemptions.
+          #
+          # If there are AuditConfigs for both `allServices` and a specific service,
+          # the union of the two AuditConfigs is used for that service: the log_types
+          # specified in each AuditConfig are enabled, and the exempted_members in each
+          # AuditConfig are exempted.
+          #
+          # Example Policy with multiple AuditConfigs:
+          #
+          #     {
+          #       "audit_configs": [
+          #         {
+          #           "service": "allServices"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #               "exempted_members": [
+          #                 "user:foo@gmail.com"
+          #               ]
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #             },
+          #             {
+          #               "log_type": "ADMIN_READ",
+          #             }
+          #           ]
+          #         },
+          #         {
+          #           "service": "fooservice.googleapis.com"
+          #           "audit_log_configs": [
+          #             {
+          #               "log_type": "DATA_READ",
+          #             },
+          #             {
+          #               "log_type": "DATA_WRITE",
+          #               "exempted_members": [
+          #                 "user:bar@gmail.com"
+          #               ]
+          #             }
+          #           ]
+          #         }
+          #       ]
+          #     }
+          #
+          # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+          # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+          # bar@gmail.com from DATA_WRITE logging.
+        "exemptedMembers": [
           "A String",
         ],
         "auditLogConfigs": [ # The configuration for logging of each type of permission.
@@ -1225,7 +1313,7 @@
           },
         ],
         "service": "A String", # Specifies a service that will be enabled for audit logging.
-            # For example, `resourcemanager`, `storage`, `compute`.
+            # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
             # `allServices` is a special value that covers all services.
       },
     ],
@@ -1267,28 +1355,6 @@
         "logConfig": [ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
             # that match the LOG action.
           { # Specifies what kind of log the caller must write
-              # Increment a streamz counter with the specified metric and field names.
-              #
-              # Metric names should start with a '/', generally be lowercase-only,
-              # and end in "_count". Field names should not contain an initial slash.
-              # The actual exported metric names will have "/iam/policy" prepended.
-              #
-              # Field names correspond to IAM request parameters and field values are
-              # their respective values.
-              #
-              # At present the only supported field names are
-              #    - "iam_principal", corresponding to IAMContext.principal;
-              #    - "" (empty string), resulting in one aggretated counter with no field.
-              #
-              # Examples:
-              #   counter { metric: "/debug_access_count"  field: "iam_principal" }
-              #   ==> increment counter /iam/policy/backend_debug_access_count
-              #                         {iam_principal=[value of IAMContext.principal]}
-              #
-              # At this time we do not support:
-              # * multiple field names (though this may be supported in the future)
-              # * decrementing the counter
-              # * incrementing it by anything other than 1
             "counter": { # Options for counters # Counter options.
               "field": "A String", # The field value to attribute.
               "metric": "A String", # The metric to update.
diff --git a/docs/dyn/spanner_v1.projects.instances.operations.html b/docs/dyn/spanner_v1.projects.instances.operations.html
index 877b045..f474346 100644
--- a/docs/dyn/spanner_v1.projects.instances.operations.html
+++ b/docs/dyn/spanner_v1.projects.instances.operations.html
@@ -178,6 +178,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -241,22 +257,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -282,7 +282,6 @@
   An object of the form:
 
     { # The response message for Operations.ListOperations.
-    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
       { # This resource represents a long-running operation that is the result of a
           # network API call.
@@ -292,6 +291,22 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -355,24 +370,9 @@
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
+    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/datastore_v1beta2.html b/docs/dyn/speech_v1.html
similarity index 85%
copy from docs/dyn/datastore_v1beta2.html
copy to docs/dyn/speech_v1.html
index 5744916..279c889 100644
--- a/docs/dyn/datastore_v1beta2.html
+++ b/docs/dyn/speech_v1.html
@@ -72,12 +72,17 @@
 
 </style>
 
-<h1><a href="datastore_v1beta2.html">Google Cloud Datastore API</a></h1>
+<h1><a href="speech_v1.html">Google Cloud Speech API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="datastore_v1beta2.datasets.html">datasets()</a></code>
+  <code><a href="speech_v1.operations.html">operations()</a></code>
 </p>
-<p class="firstline">Returns the datasets Resource.</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="speech_v1.speech.html">speech()</a></code>
+</p>
+<p class="firstline">Returns the speech Resource.</p>
 
 <p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
diff --git a/docs/dyn/speech_v1.operations.html b/docs/dyn/speech_v1.operations.html
new file mode 100644
index 0000000..4ff3893
--- /dev/null
+++ b/docs/dyn/speech_v1.operations.html
@@ -0,0 +1,404 @@
+<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="speech_v1.html">Google Cloud Speech API</a> . <a href="speech_v1.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation.  The server</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
+<p class="toc_element">
+  <code><a href="#list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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="cancel">cancel(name, body, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation.  The server
+makes a best effort to cancel the operation, but success is not
+guaranteed.  If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.  Clients can use
+Operations.GetOperation or
+other methods to check whether the cancellation succeeded or whether the
+operation completed despite cancellation. On successful cancellation,
+the operation is not deleted; instead, it becomes an operation with
+an Operation.error value with a google.rpc.Status.code of 1,
+corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+  }
+
+  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="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is
+no longer interested in the operation result. It does not cancel the
+operation. If the server doesn't support this method, it returns
+`google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (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, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation's parent resource.
+  pageSize: integer, The standard list page size.
+  filter: string, The standard list filter.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
+    "operations": [ # A list of operations that matches the specified filter in the request.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "metadata": { # Service-specific metadata associated with the operation.  It typically
+            # contains progress information and common metadata such as create time.
+            # Some services might not provide such metadata.  Any method that returns a
+            # long-running operation should document the metadata type, if any.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` that can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+      },
+    ],
+  }</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
diff --git a/docs/dyn/speech_v1.speech.html b/docs/dyn/speech_v1.speech.html
new file mode 100644
index 0000000..e07a219
--- /dev/null
+++ b/docs/dyn/speech_v1.speech.html
@@ -0,0 +1,347 @@
+<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="speech_v1.html">Google Cloud Speech API</a> . <a href="speech_v1.speech.html">speech</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#longrunningrecognize">longrunningrecognize(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Performs asynchronous speech recognition: receive results via the</p>
+<p class="toc_element">
+  <code><a href="#recognize">recognize(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Performs synchronous speech recognition: receive results after all audio</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="longrunningrecognize">longrunningrecognize(body, x__xgafv=None)</code>
+  <pre>Performs asynchronous speech recognition: receive results via the
+google.longrunning.Operations interface. Returns either an
+`Operation.error` or an `Operation.response` which contains
+a `LongRunningRecognizeResponse` message.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The top-level message sent by the client for the `LongRunningRecognize`
+      # method.
+    "audio": { # Contains audio data in the encoding specified in the `RecognitionConfig`. # *Required* The audio data to be recognized.
+        # Either `content` or `uri` must be supplied. Supplying both or neither
+        # returns google.rpc.Code.INVALID_ARGUMENT. See
+        # [audio limits](https://cloud.google.com/speech/limits#content).
+      "content": "A String", # The audio data bytes encoded as specified in
+          # `RecognitionConfig`. Note: as with all bytes fields, protobuffers use a
+          # pure binary representation, whereas JSON representations use base64.
+      "uri": "A String", # URI that points to a file that contains audio data bytes as specified in
+          # `RecognitionConfig`. Currently, only Google Cloud Storage URIs are
+          # supported, which must be specified in the following format:
+          # `gs://bucket_name/object_name` (other URI formats return
+          # google.rpc.Code.INVALID_ARGUMENT). For more information, see
+          # [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
+    },
+    "config": { # Provides information to the recognizer that specifies how to process the # *Required* Provides information to the recognizer that specifies how to
+        # process the request.
+        # request.
+      "languageCode": "A String", # *Required* The language of the supplied audio as a
+          # [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
+          # Example: "en-US".
+          # See [Language Support](https://cloud.google.com/speech/docs/languages)
+          # for a list of the currently supported language codes.
+      "encoding": "A String", # *Required* Encoding of audio data sent in all `RecognitionAudio` messages.
+      "maxAlternatives": 42, # *Optional* Maximum number of recognition hypotheses to be returned.
+          # Specifically, the maximum number of `SpeechRecognitionAlternative` messages
+          # within each `SpeechRecognitionResult`.
+          # The server may return fewer than `max_alternatives`.
+          # Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of
+          # one. If omitted, will return a maximum of one.
+      "sampleRateHertz": 42, # *Required* Sample rate in Hertz of the audio data sent in all
+          # `RecognitionAudio` messages. Valid values are: 8000-48000.
+          # 16000 is optimal. For best results, set the sampling rate of the audio
+          # source to 16000 Hz. If that's not possible, use the native sample rate of
+          # the audio source (instead of re-sampling).
+      "profanityFilter": True or False, # *Optional* If set to `true`, the server will attempt to filter out
+          # profanities, replacing all but the initial character in each filtered word
+          # with asterisks, e.g. "f***". If set to `false` or omitted, profanities
+          # won't be filtered out.
+      "speechContexts": [ # *Optional* A means to provide context to assist the speech recognition.
+        { # Provides "hints" to the speech recognizer to favor specific words and phrases
+            # in the results.
+          "phrases": [ # *Optional* A list of strings containing words and phrases "hints" so that
+              # the speech recognition is more likely to recognize them. This can be used
+              # to improve the accuracy for specific words and phrases, for example, if
+              # specific commands are typically spoken by the user. This can also be used
+              # to add additional words to the vocabulary of the recognizer. See
+              # [usage limits](https://cloud.google.com/speech/limits#content).
+            "A String",
+          ],
+        },
+      ],
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="recognize">recognize(body, x__xgafv=None)</code>
+  <pre>Performs synchronous speech recognition: receive results after all audio
+has been sent and processed.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The top-level message sent by the client for the `Recognize` method.
+    "audio": { # Contains audio data in the encoding specified in the `RecognitionConfig`. # *Required* The audio data to be recognized.
+        # Either `content` or `uri` must be supplied. Supplying both or neither
+        # returns google.rpc.Code.INVALID_ARGUMENT. See
+        # [audio limits](https://cloud.google.com/speech/limits#content).
+      "content": "A String", # The audio data bytes encoded as specified in
+          # `RecognitionConfig`. Note: as with all bytes fields, protobuffers use a
+          # pure binary representation, whereas JSON representations use base64.
+      "uri": "A String", # URI that points to a file that contains audio data bytes as specified in
+          # `RecognitionConfig`. Currently, only Google Cloud Storage URIs are
+          # supported, which must be specified in the following format:
+          # `gs://bucket_name/object_name` (other URI formats return
+          # google.rpc.Code.INVALID_ARGUMENT). For more information, see
+          # [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
+    },
+    "config": { # Provides information to the recognizer that specifies how to process the # *Required* Provides information to the recognizer that specifies how to
+        # process the request.
+        # request.
+      "languageCode": "A String", # *Required* The language of the supplied audio as a
+          # [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
+          # Example: "en-US".
+          # See [Language Support](https://cloud.google.com/speech/docs/languages)
+          # for a list of the currently supported language codes.
+      "encoding": "A String", # *Required* Encoding of audio data sent in all `RecognitionAudio` messages.
+      "maxAlternatives": 42, # *Optional* Maximum number of recognition hypotheses to be returned.
+          # Specifically, the maximum number of `SpeechRecognitionAlternative` messages
+          # within each `SpeechRecognitionResult`.
+          # The server may return fewer than `max_alternatives`.
+          # Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of
+          # one. If omitted, will return a maximum of one.
+      "sampleRateHertz": 42, # *Required* Sample rate in Hertz of the audio data sent in all
+          # `RecognitionAudio` messages. Valid values are: 8000-48000.
+          # 16000 is optimal. For best results, set the sampling rate of the audio
+          # source to 16000 Hz. If that's not possible, use the native sample rate of
+          # the audio source (instead of re-sampling).
+      "profanityFilter": True or False, # *Optional* If set to `true`, the server will attempt to filter out
+          # profanities, replacing all but the initial character in each filtered word
+          # with asterisks, e.g. "f***". If set to `false` or omitted, profanities
+          # won't be filtered out.
+      "speechContexts": [ # *Optional* A means to provide context to assist the speech recognition.
+        { # Provides "hints" to the speech recognizer to favor specific words and phrases
+            # in the results.
+          "phrases": [ # *Optional* A list of strings containing words and phrases "hints" so that
+              # the speech recognition is more likely to recognize them. This can be used
+              # to improve the accuracy for specific words and phrases, for example, if
+              # specific commands are typically spoken by the user. This can also be used
+              # to add additional words to the vocabulary of the recognizer. See
+              # [usage limits](https://cloud.google.com/speech/limits#content).
+            "A String",
+          ],
+        },
+      ],
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The only message returned to the client by the `Recognize` method. It
+      # contains the result as zero or more sequential `SpeechRecognitionResult`
+      # messages.
+    "results": [ # *Output-only* Sequential list of transcription results corresponding to
+        # sequential portions of audio.
+      { # A speech recognition result corresponding to a portion of the audio.
+        "alternatives": [ # *Output-only* May contain one or more recognition hypotheses (up to the
+            # maximum specified in `max_alternatives`).
+            # These alternatives are ordered in terms of accuracy, with the first/top
+            # alternative being the most probable, as ranked by the recognizer.
+          { # Alternative hypotheses (a.k.a. n-best list).
+            "confidence": 3.14, # *Output-only* The confidence estimate between 0.0 and 1.0. A higher number
+                # indicates an estimated greater likelihood that the recognized words are
+                # correct. This field is typically provided only for the top hypothesis, and
+                # only for `is_final=true` results. Clients should not rely on the
+                # `confidence` field as it is not guaranteed to be accurate, or even set, in
+                # any of the results.
+                # The default of 0.0 is a sentinel value indicating `confidence` was not set.
+            "transcript": "A String", # *Output-only* Transcript text representing the words that the user spoke.
+          },
+        ],
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/speech_v1beta1.operations.html b/docs/dyn/speech_v1beta1.operations.html
index f2a7915..2aa2119 100644
--- a/docs/dyn/speech_v1beta1.operations.html
+++ b/docs/dyn/speech_v1beta1.operations.html
@@ -178,6 +178,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -195,7 +211,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -218,7 +234,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -241,22 +257,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
@@ -265,11 +265,16 @@
   <pre>Lists operations that match the specified filter in the request. If the
 server doesn't support this method, it returns `UNIMPLEMENTED`.
 
-NOTE: the `name` binding below allows API services to override the binding
-to use different resource name schemes, such as `users/*/operations`.
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
-  name: string, The name of the operation collection.
+  name: string, The name of the operation's parent resource.
   pageSize: integer, The standard list page size.
   filter: string, The standard list filter.
   pageToken: string, The standard list page token.
@@ -292,6 +297,22 @@
             # long-running operation should document the metadata type, if any.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that
+            # originally returns it. If you use the default HTTP mapping, the
+            # `name` should have the format of `operations/some/unique/name`.
         "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
             # programming environments, including REST APIs and RPC APIs. It is used by
             # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -309,7 +330,7 @@
             # error message is needed, put the localized message in the error details or
             # localize it in the client. The optional error details may contain arbitrary
             # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
+            # in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -332,7 +353,7 @@
             #     errors.
             #
             # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
+            #     have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the
             #     `Status` message should be used directly inside batch response, one for
@@ -355,22 +376,6 @@
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress.
-            # If true, the operation is completed, and either `error` or `response` is
-            # available.
-        "response": { # The normal response of the operation in case of success.  If the original
-            # method returns no data on success, such as `Delete`, the response is
-            # `google.protobuf.Empty`.  If the original method is standard
-            # `Get`/`Create`/`Update`, the response should be the resource.  For other
-            # methods, the response should have the type `XxxResponse`, where `Xxx`
-            # is the original method name.  For example, if the original method name
-            # is `TakeSnapshot()`, the inferred response type is
-            # `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @type with type URL.
-        },
-        "name": "A String", # The server-assigned name, which is only unique within the same service that
-            # originally returns it. If you use the default HTTP mapping, the
-            # `name` should have the format of `operations/some/unique/name`.
       },
     ],
   }</pre>
diff --git a/docs/dyn/speech_v1beta1.speech.html b/docs/dyn/speech_v1beta1.speech.html
index 06ba9a0..fec9787 100644
--- a/docs/dyn/speech_v1beta1.speech.html
+++ b/docs/dyn/speech_v1beta1.speech.html
@@ -163,6 +163,22 @@
         # long-running operation should document the metadata type, if any.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
     "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
         # programming environments, including REST APIs and RPC APIs. It is used by
         # [gRPC](https://github.com/grpc). The error model is designed to be:
@@ -180,7 +196,7 @@
         # error message is needed, put the localized message in the error details or
         # localize it in the client. The optional error details may contain arbitrary
         # information about the error. There is a predefined set of error detail types
-        # in the package `google.rpc` which can be used for common error conditions.
+        # in the package `google.rpc` that can be used for common error conditions.
         #
         # # Language mapping
         #
@@ -203,7 +219,7 @@
         #     errors.
         #
         # - Workflow errors. A typical workflow has multiple steps. Each step may
-        #     have a `Status` message for error reporting purpose.
+        #     have a `Status` message for error reporting.
         #
         # - Batch operations. If a client uses batch request and batch response, the
         #     `Status` message should be used directly inside batch response, one for
@@ -226,22 +242,6 @@
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress.
-        # If true, the operation is completed, and either `error` or `response` is
-        # available.
-    "response": { # The normal response of the operation in case of success.  If the original
-        # method returns no data on success, such as `Delete`, the response is
-        # `google.protobuf.Empty`.  If the original method is standard
-        # `Get`/`Create`/`Update`, the response should be the resource.  For other
-        # methods, the response should have the type `XxxResponse`, where `Xxx`
-        # is the original method name.  For example, if the original method name
-        # is `TakeSnapshot()`, the inferred response type is
-        # `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @type with type URL.
-    },
-    "name": "A String", # The server-assigned name, which is only unique within the same service that
-        # originally returns it. If you use the default HTTP mapping, the
-        # `name` should have the format of `operations/some/unique/name`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/sqladmin_v1beta4.backupRuns.html b/docs/dyn/sqladmin_v1beta4.backupRuns.html
index c75b21f..67de362 100644
--- a/docs/dyn/sqladmin_v1beta4.backupRuns.html
+++ b/docs/dyn/sqladmin_v1beta4.backupRuns.html
@@ -105,12 +105,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -143,7 +144,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -229,12 +230,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -267,7 +269,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
diff --git a/docs/dyn/sqladmin_v1beta4.databases.html b/docs/dyn/sqladmin_v1beta4.databases.html
index 61b86b9..1cf37da 100644
--- a/docs/dyn/sqladmin_v1beta4.databases.html
+++ b/docs/dyn/sqladmin_v1beta4.databases.html
@@ -108,12 +108,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -146,7 +147,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -216,12 +217,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -254,7 +256,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -329,12 +331,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -367,7 +370,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -414,12 +417,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -452,7 +456,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html
index ddf5588..a47fc60 100644
--- a/docs/dyn/sqladmin_v1beta4.instances.html
+++ b/docs/dyn/sqladmin_v1beta4.instances.html
@@ -158,12 +158,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -196,7 +197,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -228,12 +229,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -266,7 +268,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -323,12 +325,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -361,7 +364,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -403,12 +406,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -441,7 +445,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -544,12 +548,9 @@
           "hour": 42, # hour of day - 0 to 23.
         },
         "availabilityType": "A String", # Reserved for future use.
-        "labels": [ # User defined labels.
-          { # User defined labels for Cloud SQL instances.
-            "value": "A String", # The value of the label.
-            "key": "A String", # The key of the label.
-          },
-        ],
+        "labels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+          "a_key": "A String", # An individual label entry, composed of a key and a value.
+        },
         "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
           "A String",
         ],
@@ -582,7 +583,7 @@
         "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
         "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
         "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
-        "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
+        "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true. Applies only to Second Generation instances.
         "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
           "kind": "sql#locationPreference", # This is always sql#locationPreference.
           "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
@@ -625,12 +626,13 @@
 
 { # Database instance import request.
     "importContext": { # Database instance import context. # Contains details about the import operation.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -647,12 +649,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -685,7 +688,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -786,12 +789,9 @@
         "hour": 42, # hour of day - 0 to 23.
       },
       "availabilityType": "A String", # Reserved for future use.
-      "labels": [ # User defined labels.
-        { # User defined labels for Cloud SQL instances.
-          "value": "A String", # The value of the label.
-          "key": "A String", # The key of the label.
-        },
-      ],
+      "labels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+        "a_key": "A String", # An individual label entry, composed of a key and a value.
+      },
       "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
         "A String",
       ],
@@ -824,7 +824,7 @@
       "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
       "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
       "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
-      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
+      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true. Applies only to Second Generation instances.
       "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
         "kind": "sql#locationPreference", # This is always sql#locationPreference.
         "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
@@ -861,12 +861,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -899,7 +900,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -925,7 +926,7 @@
   project: string, Project ID of the project for which to list Cloud SQL instances. (required)
   maxResults: integer, The maximum number of results to return per response.
   pageToken: string, A previously-returned page token representing part of the larger set of results to view.
-  filter: string, A filter expression for filtering listed instances.
+  filter: string, An expression for filtering the results of the request, such as by name or label.
 
 Returns:
   An object of the form:
@@ -1007,12 +1008,9 @@
               "hour": 42, # hour of day - 0 to 23.
             },
             "availabilityType": "A String", # Reserved for future use.
-            "labels": [ # User defined labels.
-              { # User defined labels for Cloud SQL instances.
-                "value": "A String", # The value of the label.
-                "key": "A String", # The key of the label.
-              },
-            ],
+            "labels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+              "a_key": "A String", # An individual label entry, composed of a key and a value.
+            },
             "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
               "A String",
             ],
@@ -1045,7 +1043,7 @@
             "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
             "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
             "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
-            "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
+            "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true. Applies only to Second Generation instances.
             "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
               "kind": "sql#locationPreference", # This is always sql#locationPreference.
               "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
@@ -1177,12 +1175,9 @@
         "hour": 42, # hour of day - 0 to 23.
       },
       "availabilityType": "A String", # Reserved for future use.
-      "labels": [ # User defined labels.
-        { # User defined labels for Cloud SQL instances.
-          "value": "A String", # The value of the label.
-          "key": "A String", # The key of the label.
-        },
-      ],
+      "labels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+        "a_key": "A String", # An individual label entry, composed of a key and a value.
+      },
       "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
         "A String",
       ],
@@ -1215,7 +1210,7 @@
       "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
       "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
       "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
-      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
+      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true. Applies only to Second Generation instances.
       "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
         "kind": "sql#locationPreference", # This is always sql#locationPreference.
         "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
@@ -1252,12 +1247,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1290,7 +1286,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1322,12 +1318,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1360,7 +1357,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1392,12 +1389,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1430,7 +1428,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1462,12 +1460,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1500,7 +1499,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1543,12 +1542,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1581,7 +1581,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1613,12 +1613,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1651,7 +1652,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1683,12 +1684,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1721,7 +1723,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1763,12 +1765,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -1801,7 +1804,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -1903,12 +1906,9 @@
         "hour": 42, # hour of day - 0 to 23.
       },
       "availabilityType": "A String", # Reserved for future use.
-      "labels": [ # User defined labels.
-        { # User defined labels for Cloud SQL instances.
-          "value": "A String", # The value of the label.
-          "key": "A String", # The key of the label.
-        },
-      ],
+      "labels": { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+        "a_key": "A String", # An individual label entry, composed of a key and a value.
+      },
       "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance. This property is only applicable to First Generation instances.
         "A String",
       ],
@@ -1941,7 +1941,7 @@
       "crashSafeReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property is only applicable to First Generation instances.
       "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE. Only PER_USE is supported for Second Generation instances.
       "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
-      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is false. Applies only to Second Generation instances.
+      "storageAutoResize": True or False, # Configuration to increase storage size automatically. The default value is true. Applies only to Second Generation instances.
       "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance. App Engine co-location is only applicable to First Generation instances.
         "kind": "sql#locationPreference", # This is always sql#locationPreference.
         "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
@@ -1978,12 +1978,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -2016,7 +2017,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
diff --git a/docs/dyn/sqladmin_v1beta4.operations.html b/docs/dyn/sqladmin_v1beta4.operations.html
index 8b19636..342b11b 100644
--- a/docs/dyn/sqladmin_v1beta4.operations.html
+++ b/docs/dyn/sqladmin_v1beta4.operations.html
@@ -98,12 +98,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -136,7 +137,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -173,12 +174,13 @@
       { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
         "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
         "importContext": { # Database instance import context. # The context for import operation, if applicable.
+          "kind": "sql#importContext", # This is always sql#importContext.
+          "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
           "fileType": "A String", # The file type for the specified uri.
               # SQL: The file contains SQL statements.
               # CSV: The file contains CSV data.
-          "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-          "kind": "sql#importContext", # This is always sql#importContext.
           "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+          "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
           "csvImportOptions": { # Options for importing data as CSV.
             "table": "A String", # The table to which CSV data is imported.
             "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -211,7 +213,7 @@
         "targetProject": "A String", # The project ID of the target instance related to this operation.
         "targetId": "A String", # Name of the database instance related to this operation.
         "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-        "targetLink": "A String", # The URI of the instance related to the operation.
+        "targetLink": "A String",
         "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
         "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
           "kind": "sql#operationErrors", # This is always sql#operationErrors.
diff --git a/docs/dyn/sqladmin_v1beta4.sslCerts.html b/docs/dyn/sqladmin_v1beta4.sslCerts.html
index 491c950..8ac6d02 100644
--- a/docs/dyn/sqladmin_v1beta4.sslCerts.html
+++ b/docs/dyn/sqladmin_v1beta4.sslCerts.html
@@ -136,12 +136,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -174,7 +175,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -254,12 +255,13 @@
     "operation": { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly. # The operation to track the ssl certs insert request.
       "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
       "importContext": { # Database instance import context. # The context for import operation, if applicable.
+        "kind": "sql#importContext", # This is always sql#importContext.
+        "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
         "fileType": "A String", # The file type for the specified uri.
             # SQL: The file contains SQL statements.
             # CSV: The file contains CSV data.
-        "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-        "kind": "sql#importContext", # This is always sql#importContext.
         "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+        "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
         "csvImportOptions": { # Options for importing data as CSV.
           "table": "A String", # The table to which CSV data is imported.
           "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -292,7 +294,7 @@
       "targetProject": "A String", # The project ID of the target instance related to this operation.
       "targetId": "A String", # Name of the database instance related to this operation.
       "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-      "targetLink": "A String", # The URI of the instance related to the operation.
+      "targetLink": "A String",
       "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
       "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
         "kind": "sql#operationErrors", # This is always sql#operationErrors.
diff --git a/docs/dyn/sqladmin_v1beta4.users.html b/docs/dyn/sqladmin_v1beta4.users.html
index 3cc92ce..c5f6665 100644
--- a/docs/dyn/sqladmin_v1beta4.users.html
+++ b/docs/dyn/sqladmin_v1beta4.users.html
@@ -103,12 +103,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -141,7 +142,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -186,12 +187,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -224,7 +226,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
@@ -299,12 +301,13 @@
     { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
     "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
     "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
       "fileType": "A String", # The file type for the specified uri.
           # SQL: The file contains SQL statements.
           # CSV: The file contains CSV data.
-      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
-      "kind": "sql#importContext", # This is always sql#importContext.
       "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "importUser": "A String", # The PostgreSQL user to use for this import operation. Defaults to cloudsqlsuperuser. Does not apply to MySQL instances.
       "csvImportOptions": { # Options for importing data as CSV.
         "table": "A String", # The table to which CSV data is imported.
         "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
@@ -337,7 +340,7 @@
     "targetProject": "A String", # The project ID of the target instance related to this operation.
     "targetId": "A String", # Name of the database instance related to this operation.
     "operationType": "A String", # The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME, CREATE_USER, DELETE_USER, CREATE_DATABASE, DELETE_DATABASE .
-    "targetLink": "A String", # The URI of the instance related to the operation.
+    "targetLink": "A String",
     "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
     "error": { # Database instance operation errors list wrapper. # If errors occurred during processing of this operation, this field will be populated.
       "kind": "sql#operationErrors", # This is always sql#operationErrors.
diff --git a/docs/dyn/storage_v1.bucketAccessControls.html b/docs/dyn/storage_v1.bucketAccessControls.html
index d06b39f..24a8ca4 100644
--- a/docs/dyn/storage_v1.bucketAccessControls.html
+++ b/docs/dyn/storage_v1.bucketAccessControls.html
@@ -75,41 +75,43 @@
 <h1><a href="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.bucketAccessControls.html">bucketAccessControls</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(bucket, entity)</a></code></p>
+  <code><a href="#delete">delete(bucket, entity, userProject=None)</a></code></p>
 <p class="firstline">Permanently deletes the ACL entry for the specified entity on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#get">get(bucket, entity)</a></code></p>
+  <code><a href="#get">get(bucket, entity, userProject=None)</a></code></p>
 <p class="firstline">Returns the ACL entry for the specified entity on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(bucket, body)</a></code></p>
+  <code><a href="#insert">insert(bucket, body, userProject=None)</a></code></p>
 <p class="firstline">Creates a new ACL entry on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#list">list(bucket)</a></code></p>
+  <code><a href="#list">list(bucket, userProject=None)</a></code></p>
 <p class="firstline">Retrieves ACL entries on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(bucket, entity, body)</a></code></p>
+  <code><a href="#patch">patch(bucket, entity, body, userProject=None)</a></code></p>
 <p class="firstline">Updates an ACL entry on the specified bucket. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#update">update(bucket, entity, body)</a></code></p>
+  <code><a href="#update">update(bucket, entity, body, userProject=None)</a></code></p>
 <p class="firstline">Updates an ACL entry on the specified bucket.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(bucket, entity)</code>
+    <code class="details" id="delete">delete(bucket, entity, userProject=None)</code>
   <pre>Permanently deletes the ACL entry for the specified entity on the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
   entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(bucket, entity)</code>
+    <code class="details" id="get">get(bucket, entity, userProject=None)</code>
   <pre>Returns the ACL entry for the specified entity on the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
   entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -144,7 +146,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(bucket, body)</code>
+    <code class="details" id="insert">insert(bucket, body, userProject=None)</code>
   <pre>Creates a new ACL entry on the specified bucket.
 
 Args:
@@ -180,6 +182,7 @@
     "selfLink": "A String", # The link to this access-control entry.
   }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -214,11 +217,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(bucket)</code>
+    <code class="details" id="list">list(bucket, userProject=None)</code>
   <pre>Retrieves ACL entries on the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -258,7 +262,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(bucket, entity, body)</code>
+    <code class="details" id="patch">patch(bucket, entity, body, userProject=None)</code>
   <pre>Updates an ACL entry on the specified bucket. This method supports patch semantics.
 
 Args:
@@ -295,6 +299,7 @@
     "selfLink": "A String", # The link to this access-control entry.
   }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -329,7 +334,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(bucket, entity, body)</code>
+    <code class="details" id="update">update(bucket, entity, body, userProject=None)</code>
   <pre>Updates an ACL entry on the specified bucket.
 
 Args:
@@ -366,6 +371,7 @@
     "selfLink": "A String", # The link to this access-control entry.
   }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/storage_v1.buckets.html b/docs/dyn/storage_v1.buckets.html
index 8ad21b4..a337490 100644
--- a/docs/dyn/storage_v1.buckets.html
+++ b/docs/dyn/storage_v1.buckets.html
@@ -75,13 +75,13 @@
 <h1><a href="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.buckets.html">buckets</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#delete">delete(bucket, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Permanently deletes an empty bucket.</p>
 <p class="toc_element">
-  <code><a href="#get">get(bucket, projection=None, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#get">get(bucket, projection=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Returns metadata for the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(bucket)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(bucket, userProject=None)</a></code></p>
 <p class="firstline">Returns an IAM policy for the specified bucket.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, body, projection=None, predefinedDefaultObjectAcl=None, predefinedAcl=None)</a></code></p>
@@ -93,31 +93,32 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, userProject=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuration changes may take time to propagate. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(bucket, body)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(bucket, body, userProject=None)</a></code></p>
 <p class="firstline">Updates an IAM policy for the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(bucket, permissions)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(bucket, permissions, userProject=None)</a></code></p>
 <p class="firstline">Tests a set of permissions on the given bucket to see which, if any, are held by the caller.</p>
 <p class="toc_element">
-  <code><a href="#update">update(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#update">update(bucket, body, projection=None, ifMetagenerationMatch=None, userProject=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuration changes may take time to propagate.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="delete">delete(bucket, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</code>
   <pre>Permanently deletes an empty bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
   ifMetagenerationMatch: string, If set, only deletes the bucket if its metageneration matches this value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifMetagenerationNotMatch: string, If set, only deletes the bucket if its metageneration does not match this value.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(bucket, projection=None, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="get">get(bucket, projection=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</code>
   <pre>Returns metadata for the specified bucket.
 
 Args:
@@ -127,6 +128,7 @@
       full - Include all properties.
       noAcl - Omit owner, acl and defaultObjectAcl properties.
   ifMetagenerationMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifMetagenerationNotMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
 
 Returns:
@@ -137,15 +139,20 @@
         "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
         "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
       },
-      "selfLink": "A String", # The URI of this bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
       "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
       "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
         "logObjectPrefix": "A String", # A prefix for log object names.
         "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
       },
       "name": "A String", # The name of the bucket.
-      "metageneration": "A String", # The metadata generation of this bucket.
+      "billing": { # The bucket's billing configuration.
+        "requesterPays": True or False, # When set to true, bucket is requester pays.
+      },
       "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+      "labels": { # User-provided labels, in key/value pairs.
+        "a_key": "A String", # An individual label entry.
+      },
       "updated": "A String", # The modification time of the bucket in RFC 3339 format.
       "versioning": { # The bucket's versioning configuration.
         "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -249,6 +256,7 @@
           },
         ],
       },
+      "selfLink": "A String", # The URI of this bucket.
       "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -256,11 +264,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(bucket)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(bucket, userProject=None)</code>
   <pre>Returns an IAM policy for the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -313,15 +322,20 @@
       "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
       "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
     },
-    "selfLink": "A String", # The URI of this bucket.
+    "metageneration": "A String", # The metadata generation of this bucket.
     "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
     "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
       "logObjectPrefix": "A String", # A prefix for log object names.
       "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
     },
     "name": "A String", # The name of the bucket.
-    "metageneration": "A String", # The metadata generation of this bucket.
+    "billing": { # The bucket's billing configuration.
+      "requesterPays": True or False, # When set to true, bucket is requester pays.
+    },
     "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+    "labels": { # User-provided labels, in key/value pairs.
+      "a_key": "A String", # An individual label entry.
+    },
     "updated": "A String", # The modification time of the bucket in RFC 3339 format.
     "versioning": { # The bucket's versioning configuration.
       "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -425,6 +439,7 @@
         },
       ],
     },
+    "selfLink": "A String", # The URI of this bucket.
     "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
     "projectNumber": "A String", # The project number of the project the bucket belongs to.
     "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -458,15 +473,20 @@
         "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
         "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
       },
-      "selfLink": "A String", # The URI of this bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
       "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
       "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
         "logObjectPrefix": "A String", # A prefix for log object names.
         "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
       },
       "name": "A String", # The name of the bucket.
-      "metageneration": "A String", # The metadata generation of this bucket.
+      "billing": { # The bucket's billing configuration.
+        "requesterPays": True or False, # When set to true, bucket is requester pays.
+      },
       "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+      "labels": { # User-provided labels, in key/value pairs.
+        "a_key": "A String", # An individual label entry.
+      },
       "updated": "A String", # The modification time of the bucket in RFC 3339 format.
       "versioning": { # The bucket's versioning configuration.
         "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -570,6 +590,7 @@
           },
         ],
       },
+      "selfLink": "A String", # The URI of this bucket.
       "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -601,15 +622,20 @@
             "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
             "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
           },
-          "selfLink": "A String", # The URI of this bucket.
+          "metageneration": "A String", # The metadata generation of this bucket.
           "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
           "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
             "logObjectPrefix": "A String", # A prefix for log object names.
             "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
           },
           "name": "A String", # The name of the bucket.
-          "metageneration": "A String", # The metadata generation of this bucket.
+          "billing": { # The bucket's billing configuration.
+            "requesterPays": True or False, # When set to true, bucket is requester pays.
+          },
           "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+          "labels": { # User-provided labels, in key/value pairs.
+            "a_key": "A String", # An individual label entry.
+          },
           "updated": "A String", # The modification time of the bucket in RFC 3339 format.
           "versioning": { # The bucket's versioning configuration.
             "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -713,6 +739,7 @@
               },
             ],
           },
+          "selfLink": "A String", # The URI of this bucket.
           "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
           "projectNumber": "A String", # The project number of the project the bucket belongs to.
           "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -737,7 +764,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, userProject=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuration changes may take time to propagate. This method supports patch semantics.
 
 Args:
@@ -750,15 +777,20 @@
       "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
       "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
     },
-    "selfLink": "A String", # The URI of this bucket.
+    "metageneration": "A String", # The metadata generation of this bucket.
     "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
     "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
       "logObjectPrefix": "A String", # A prefix for log object names.
       "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
     },
     "name": "A String", # The name of the bucket.
-    "metageneration": "A String", # The metadata generation of this bucket.
+    "billing": { # The bucket's billing configuration.
+      "requesterPays": True or False, # When set to true, bucket is requester pays.
+    },
     "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+    "labels": { # User-provided labels, in key/value pairs.
+      "a_key": "A String", # An individual label entry.
+    },
     "updated": "A String", # The modification time of the bucket in RFC 3339 format.
     "versioning": { # The bucket's versioning configuration.
       "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -862,6 +894,7 @@
         },
       ],
     },
+    "selfLink": "A String", # The URI of this bucket.
     "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
     "projectNumber": "A String", # The project number of the project the bucket belongs to.
     "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -872,6 +905,7 @@
       full - Include all properties.
       noAcl - Omit owner, acl and defaultObjectAcl properties.
   ifMetagenerationMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   predefinedDefaultObjectAcl: string, Apply a predefined set of default object access controls to this bucket.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -897,15 +931,20 @@
         "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
         "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
       },
-      "selfLink": "A String", # The URI of this bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
       "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
       "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
         "logObjectPrefix": "A String", # A prefix for log object names.
         "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
       },
       "name": "A String", # The name of the bucket.
-      "metageneration": "A String", # The metadata generation of this bucket.
+      "billing": { # The bucket's billing configuration.
+        "requesterPays": True or False, # When set to true, bucket is requester pays.
+      },
       "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+      "labels": { # User-provided labels, in key/value pairs.
+        "a_key": "A String", # An individual label entry.
+      },
       "updated": "A String", # The modification time of the bucket in RFC 3339 format.
       "versioning": { # The bucket's versioning configuration.
         "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -1009,6 +1048,7 @@
           },
         ],
       },
+      "selfLink": "A String", # The URI of this bucket.
       "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -1016,7 +1056,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(bucket, body)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(bucket, body, userProject=None)</code>
   <pre>Updates an IAM policy for the specified bucket.
 
 Args:
@@ -1057,6 +1097,7 @@
   "kind": "storage#policy", # The kind of item this is. For policies, this is always storage#policy. This field is ignored on input.
 }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -1096,12 +1137,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(bucket, permissions)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(bucket, permissions, userProject=None)</code>
   <pre>Tests a set of permissions on the given bucket to see which, if any, are held by the caller.
 
 Args:
   bucket: string, Name of a bucket. (required)
   permissions: string, Permissions to test. (required) (repeated)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -1129,7 +1171,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="update">update(bucket, body, projection=None, ifMetagenerationMatch=None, userProject=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuration changes may take time to propagate.
 
 Args:
@@ -1142,15 +1184,20 @@
       "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
       "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
     },
-    "selfLink": "A String", # The URI of this bucket.
+    "metageneration": "A String", # The metadata generation of this bucket.
     "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
     "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
       "logObjectPrefix": "A String", # A prefix for log object names.
       "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
     },
     "name": "A String", # The name of the bucket.
-    "metageneration": "A String", # The metadata generation of this bucket.
+    "billing": { # The bucket's billing configuration.
+      "requesterPays": True or False, # When set to true, bucket is requester pays.
+    },
     "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+    "labels": { # User-provided labels, in key/value pairs.
+      "a_key": "A String", # An individual label entry.
+    },
     "updated": "A String", # The modification time of the bucket in RFC 3339 format.
     "versioning": { # The bucket's versioning configuration.
       "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -1254,6 +1301,7 @@
         },
       ],
     },
+    "selfLink": "A String", # The URI of this bucket.
     "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
     "projectNumber": "A String", # The project number of the project the bucket belongs to.
     "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
@@ -1264,6 +1312,7 @@
       full - Include all properties.
       noAcl - Omit owner, acl and defaultObjectAcl properties.
   ifMetagenerationMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   predefinedDefaultObjectAcl: string, Apply a predefined set of default object access controls to this bucket.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -1289,15 +1338,20 @@
         "notFoundPage": "A String", # If the requested object path is missing, and any mainPageSuffix object is missing, if applicable, the service will return the named object from this bucket as the content for a 404 Not Found result.
         "mainPageSuffix": "A String", # If the requested object path is missing, the service will ensure the path has a trailing '/', append this suffix, and attempt to retrieve the resulting object. This allows the creation of index.html objects to represent directory pages.
       },
-      "selfLink": "A String", # The URI of this bucket.
+      "metageneration": "A String", # The metadata generation of this bucket.
       "kind": "storage#bucket", # The kind of item this is. For buckets, this is always storage#bucket.
       "logging": { # The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
         "logObjectPrefix": "A String", # A prefix for log object names.
         "logBucket": "A String", # The destination bucket where the current bucket's logs should be placed.
       },
       "name": "A String", # The name of the bucket.
-      "metageneration": "A String", # The metadata generation of this bucket.
+      "billing": { # The bucket's billing configuration.
+        "requesterPays": True or False, # When set to true, bucket is requester pays.
+      },
       "timeCreated": "A String", # The creation time of the bucket in RFC 3339 format.
+      "labels": { # User-provided labels, in key/value pairs.
+        "a_key": "A String", # An individual label entry.
+      },
       "updated": "A String", # The modification time of the bucket in RFC 3339 format.
       "versioning": { # The bucket's versioning configuration.
         "enabled": True or False, # While set to true, versioning is fully enabled for this bucket.
@@ -1401,6 +1455,7 @@
           },
         ],
       },
+      "selfLink": "A String", # The URI of this bucket.
       "id": "A String", # The ID of the bucket. For buckets, the id and name properities are the same.
       "projectNumber": "A String", # The project number of the project the bucket belongs to.
       "storageClass": "A String", # The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
diff --git a/docs/dyn/storage_v1.defaultObjectAccessControls.html b/docs/dyn/storage_v1.defaultObjectAccessControls.html
index 555edc0..01008fe 100644
--- a/docs/dyn/storage_v1.defaultObjectAccessControls.html
+++ b/docs/dyn/storage_v1.defaultObjectAccessControls.html
@@ -75,41 +75,43 @@
 <h1><a href="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.defaultObjectAccessControls.html">defaultObjectAccessControls</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(bucket, entity)</a></code></p>
+  <code><a href="#delete">delete(bucket, entity, userProject=None)</a></code></p>
 <p class="firstline">Permanently deletes the default object ACL entry for the specified entity on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#get">get(bucket, entity)</a></code></p>
+  <code><a href="#get">get(bucket, entity, userProject=None)</a></code></p>
 <p class="firstline">Returns the default object ACL entry for the specified entity on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(bucket, body)</a></code></p>
+  <code><a href="#insert">insert(bucket, body, userProject=None)</a></code></p>
 <p class="firstline">Creates a new default object ACL entry on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#list">list(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#list">list(bucket, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Retrieves default object ACL entries on the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(bucket, entity, body)</a></code></p>
+  <code><a href="#patch">patch(bucket, entity, body, userProject=None)</a></code></p>
 <p class="firstline">Updates a default object ACL entry on the specified bucket. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#update">update(bucket, entity, body)</a></code></p>
+  <code><a href="#update">update(bucket, entity, body, userProject=None)</a></code></p>
 <p class="firstline">Updates a default object ACL entry on the specified bucket.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(bucket, entity)</code>
+    <code class="details" id="delete">delete(bucket, entity, userProject=None)</code>
   <pre>Permanently deletes the default object ACL entry for the specified entity on the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
   entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(bucket, entity)</code>
+    <code class="details" id="get">get(bucket, entity, userProject=None)</code>
   <pre>Returns the default object ACL entry for the specified entity on the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
   entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -146,7 +148,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(bucket, body)</code>
+    <code class="details" id="insert">insert(bucket, body, userProject=None)</code>
   <pre>Creates a new default object ACL entry on the specified bucket.
 
 Args:
@@ -184,6 +186,7 @@
   "selfLink": "A String", # The link to this access-control entry.
 }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -220,12 +223,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(bucket, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="list">list(bucket, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</code>
   <pre>Retrieves default object ACL entries on the specified bucket.
 
 Args:
   bucket: string, Name of a bucket. (required)
   ifMetagenerationMatch: string, If present, only return default ACL listing if the bucket's current metageneration matches this value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifMetagenerationNotMatch: string, If present, only return default ACL listing if the bucket's current metageneration does not match the given value.
 
 Returns:
@@ -268,7 +272,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(bucket, entity, body)</code>
+    <code class="details" id="patch">patch(bucket, entity, body, userProject=None)</code>
   <pre>Updates a default object ACL entry on the specified bucket. This method supports patch semantics.
 
 Args:
@@ -307,6 +311,7 @@
   "selfLink": "A String", # The link to this access-control entry.
 }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -343,7 +348,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(bucket, entity, body)</code>
+    <code class="details" id="update">update(bucket, entity, body, userProject=None)</code>
   <pre>Updates a default object ACL entry on the specified bucket.
 
 Args:
@@ -382,6 +387,7 @@
   "selfLink": "A String", # The link to this access-control entry.
 }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/storage_v1.html b/docs/dyn/storage_v1.html
index d8ad463..9df9e6b 100644
--- a/docs/dyn/storage_v1.html
+++ b/docs/dyn/storage_v1.html
@@ -95,6 +95,11 @@
 <p class="firstline">Returns the defaultObjectAccessControls Resource.</p>
 
 <p class="toc_element">
+  <code><a href="storage_v1.notifications.html">notifications()</a></code>
+</p>
+<p class="firstline">Returns the notifications Resource.</p>
+
+<p class="toc_element">
   <code><a href="storage_v1.objectAccessControls.html">objectAccessControls()</a></code>
 </p>
 <p class="firstline">Returns the objectAccessControls Resource.</p>
@@ -105,6 +110,11 @@
 <p class="firstline">Returns the objects Resource.</p>
 
 <p class="toc_element">
+  <code><a href="storage_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/storage_v1.notifications.html b/docs/dyn/storage_v1.notifications.html
new file mode 100644
index 0000000..db3725e
--- /dev/null
+++ b/docs/dyn/storage_v1.notifications.html
@@ -0,0 +1,210 @@
+<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="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.notifications.html">notifications</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(bucket, notification, userProject=None)</a></code></p>
+<p class="firstline">Permanently deletes a notification subscription.</p>
+<p class="toc_element">
+  <code><a href="#get">get(bucket, notification, userProject=None)</a></code></p>
+<p class="firstline">View a notification configuration.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(bucket, body, userProject=None)</a></code></p>
+<p class="firstline">Creates a notification subscription for a given bucket.</p>
+<p class="toc_element">
+  <code><a href="#list">list(bucket, userProject=None)</a></code></p>
+<p class="firstline">Retrieves a list of notification subscriptions for a given bucket.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(bucket, notification, userProject=None)</code>
+  <pre>Permanently deletes a notification subscription.
+
+Args:
+  bucket: string, The parent bucket of the notification. (required)
+  notification: string, ID of the notification to delete. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(bucket, notification, userProject=None)</code>
+  <pre>View a notification configuration.
+
+Args:
+  bucket: string, The parent bucket of the notification. (required)
+  notification: string, Notification ID (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
+
+Returns:
+  An object of the form:
+
+    { # A subscription to receive Google PubSub notifications.
+      "kind": "storage#notification", # The kind of item this is. For notifications, this is always storage#notification.
+      "custom_attributes": { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
+        "a_key": "A String",
+      },
+      "topic": "A String", # The Cloud PubSub topic to which this subscription publishes. Formatted as: '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}'
+      "etag": "A String", # HTTP 1.1 Entity tag for this subscription notification.
+      "event_types": [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
+        "A String",
+      ],
+      "payload_format": "JSON_API_V1", # The desired content of the Payload.
+      "object_name_prefix": "A String", # If present, only apply this notification configuration to object names that begin with this prefix.
+      "id": "A String", # The ID of the notification.
+      "selfLink": "A String", # The canonical URL of this notification.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(bucket, body, userProject=None)</code>
+  <pre>Creates a notification subscription for a given bucket.
+
+Args:
+  bucket: string, The parent bucket of the notification. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A subscription to receive Google PubSub notifications.
+    "kind": "storage#notification", # The kind of item this is. For notifications, this is always storage#notification.
+    "custom_attributes": { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
+      "a_key": "A String",
+    },
+    "topic": "A String", # The Cloud PubSub topic to which this subscription publishes. Formatted as: '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}'
+    "etag": "A String", # HTTP 1.1 Entity tag for this subscription notification.
+    "event_types": [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
+      "A String",
+    ],
+    "payload_format": "JSON_API_V1", # The desired content of the Payload.
+    "object_name_prefix": "A String", # If present, only apply this notification configuration to object names that begin with this prefix.
+    "id": "A String", # The ID of the notification.
+    "selfLink": "A String", # The canonical URL of this notification.
+  }
+
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
+
+Returns:
+  An object of the form:
+
+    { # A subscription to receive Google PubSub notifications.
+      "kind": "storage#notification", # The kind of item this is. For notifications, this is always storage#notification.
+      "custom_attributes": { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
+        "a_key": "A String",
+      },
+      "topic": "A String", # The Cloud PubSub topic to which this subscription publishes. Formatted as: '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}'
+      "etag": "A String", # HTTP 1.1 Entity tag for this subscription notification.
+      "event_types": [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
+        "A String",
+      ],
+      "payload_format": "JSON_API_V1", # The desired content of the Payload.
+      "object_name_prefix": "A String", # If present, only apply this notification configuration to object names that begin with this prefix.
+      "id": "A String", # The ID of the notification.
+      "selfLink": "A String", # The canonical URL of this notification.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(bucket, userProject=None)</code>
+  <pre>Retrieves a list of notification subscriptions for a given bucket.
+
+Args:
+  bucket: string, Name of a GCS bucket. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
+
+Returns:
+  An object of the form:
+
+    { # A list of notification subscriptions.
+    "items": [ # The list of items.
+      { # A subscription to receive Google PubSub notifications.
+          "kind": "storage#notification", # The kind of item this is. For notifications, this is always storage#notification.
+          "custom_attributes": { # An optional list of additional attributes to attach to each Cloud PubSub message published for this notification subscription.
+            "a_key": "A String",
+          },
+          "topic": "A String", # The Cloud PubSub topic to which this subscription publishes. Formatted as: '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}'
+          "etag": "A String", # HTTP 1.1 Entity tag for this subscription notification.
+          "event_types": [ # If present, only send notifications about listed event types. If empty, sent notifications for all event types.
+            "A String",
+          ],
+          "payload_format": "JSON_API_V1", # The desired content of the Payload.
+          "object_name_prefix": "A String", # If present, only apply this notification configuration to object names that begin with this prefix.
+          "id": "A String", # The ID of the notification.
+          "selfLink": "A String", # The canonical URL of this notification.
+        },
+    ],
+    "kind": "storage#notifications", # The kind of item this is. For lists of notifications, this is always storage#notifications.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1.objectAccessControls.html b/docs/dyn/storage_v1.objectAccessControls.html
index f3d94e0..9361348 100644
--- a/docs/dyn/storage_v1.objectAccessControls.html
+++ b/docs/dyn/storage_v1.objectAccessControls.html
@@ -75,44 +75,46 @@
 <h1><a href="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.objectAccessControls.html">objectAccessControls</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(bucket, object, entity, generation=None)</a></code></p>
+  <code><a href="#delete">delete(bucket, object, entity, userProject=None, generation=None)</a></code></p>
 <p class="firstline">Permanently deletes the ACL entry for the specified entity on the specified object.</p>
 <p class="toc_element">
-  <code><a href="#get">get(bucket, object, entity, generation=None)</a></code></p>
+  <code><a href="#get">get(bucket, object, entity, userProject=None, generation=None)</a></code></p>
 <p class="firstline">Returns the ACL entry for the specified entity on the specified object.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(bucket, object, body, generation=None)</a></code></p>
+  <code><a href="#insert">insert(bucket, object, body, generation=None, userProject=None)</a></code></p>
 <p class="firstline">Creates a new ACL entry on the specified object.</p>
 <p class="toc_element">
-  <code><a href="#list">list(bucket, object, generation=None)</a></code></p>
+  <code><a href="#list">list(bucket, object, generation=None, userProject=None)</a></code></p>
 <p class="firstline">Retrieves ACL entries on the specified object.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(bucket, object, entity, body, generation=None)</a></code></p>
+  <code><a href="#patch">patch(bucket, object, entity, body, userProject=None, generation=None)</a></code></p>
 <p class="firstline">Updates an ACL entry on the specified object. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#update">update(bucket, object, entity, body, generation=None)</a></code></p>
+  <code><a href="#update">update(bucket, object, entity, body, userProject=None, generation=None)</a></code></p>
 <p class="firstline">Updates an ACL entry on the specified object.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(bucket, object, entity, generation=None)</code>
+    <code class="details" id="delete">delete(bucket, object, entity, userProject=None, generation=None)</code>
   <pre>Permanently deletes the ACL entry for the specified entity on the specified object.
 
 Args:
   bucket: string, Name of a bucket. (required)
   object: string, Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts. (required)
   entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(bucket, object, entity, generation=None)</code>
+    <code class="details" id="get">get(bucket, object, entity, userProject=None, generation=None)</code>
   <pre>Returns the ACL entry for the specified entity on the specified object.
 
 Args:
   bucket: string, Name of a bucket. (required)
   object: string, Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts. (required)
   entity: string, The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers. (required)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
 
 Returns:
@@ -150,7 +152,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(bucket, object, body, generation=None)</code>
+    <code class="details" id="insert">insert(bucket, object, body, generation=None, userProject=None)</code>
   <pre>Creates a new ACL entry on the specified object.
 
 Args:
@@ -190,6 +192,7 @@
 }
 
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -226,13 +229,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(bucket, object, generation=None)</code>
+    <code class="details" id="list">list(bucket, object, generation=None, userProject=None)</code>
   <pre>Retrieves ACL entries on the specified object.
 
 Args:
   bucket: string, Name of a bucket. (required)
   object: string, Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts. (required)
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -274,7 +278,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(bucket, object, entity, body, generation=None)</code>
+    <code class="details" id="patch">patch(bucket, object, entity, body, userProject=None, generation=None)</code>
   <pre>Updates an ACL entry on the specified object. This method supports patch semantics.
 
 Args:
@@ -314,6 +318,7 @@
   "selfLink": "A String", # The link to this access-control entry.
 }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
 
 Returns:
@@ -351,7 +356,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(bucket, object, entity, body, generation=None)</code>
+    <code class="details" id="update">update(bucket, object, entity, body, userProject=None, generation=None)</code>
   <pre>Updates an ACL entry on the specified object.
 
 Args:
@@ -391,6 +396,7 @@
   "selfLink": "A String", # The link to this access-control entry.
 }
 
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
 
 Returns:
diff --git a/docs/dyn/storage_v1.objects.html b/docs/dyn/storage_v1.objects.html
index cfbeeb9..a5527d6 100644
--- a/docs/dyn/storage_v1.objects.html
+++ b/docs/dyn/storage_v1.objects.html
@@ -75,65 +75,65 @@
 <h1><a href="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.objects.html">objects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#compose">compose(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None)</a></code></p>
+  <code><a href="#compose">compose(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None)</a></code></p>
 <p class="firstline">Concatenates a list of existing objects into a new object in the same bucket.</p>
 <p class="toc_element">
-  <code><a href="#compose_media">compose_media(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None)</a></code></p>
+  <code><a href="#compose_media">compose_media(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None)</a></code></p>
 <p class="firstline">Concatenates a list of existing objects into a new object in the same bucket.</p>
 <p class="toc_element">
-  <code><a href="#copy">copy(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#copy">copy(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Copies a source object to a destination object. Optionally overrides metadata.</p>
 <p class="toc_element">
-  <code><a href="#copy_media">copy_media(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#copy_media">copy_media(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Copies a source object to a destination object. Optionally overrides metadata.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#delete">delete(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, userProject=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.</p>
 <p class="toc_element">
-  <code><a href="#get">get(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+  <code><a href="#get">get(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, userProject=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
 <p class="firstline">Retrieves an object or its metadata.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(bucket, object, generation=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(bucket, object, generation=None, userProject=None)</a></code></p>
 <p class="firstline">Returns an IAM policy for the specified object.</p>
 <p class="toc_element">
-  <code><a href="#get_media">get_media(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+  <code><a href="#get_media">get_media(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, userProject=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
 <p class="firstline">Retrieves an object or its metadata.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#insert">insert(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, userProject=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Stores a new object and metadata.</p>
 <p class="toc_element">
-  <code><a href="#insert_media">insert_media(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#insert_media">insert_media(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, userProject=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Stores a new object and metadata.</p>
 <p class="toc_element">
-  <code><a href="#list">list(bucket, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</a></code></p>
+  <code><a href="#list">list(bucket, projection=None, versions=None, userProject=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</a></code></p>
 <p class="firstline">Retrieves a list of objects matching the criteria.</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>
 <p class="toc_element">
-  <code><a href="#patch">patch(bucket, object, body, ifGenerationMatch=None, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+  <code><a href="#patch">patch(bucket, object, body, projection=None, generation=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates an object's metadata. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#rewrite">rewrite(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, maxBytesRewrittenPerCall=None, ifSourceGenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, rewriteToken=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#rewrite">rewrite(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, maxBytesRewrittenPerCall=None, ifSourceGenerationNotMatch=None, ifGenerationMatch=None, ifSourceMetagenerationNotMatch=None, rewriteToken=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Rewrites a source object to a destination object. Optionally overrides metadata.</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(bucket, object, body, generation=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(bucket, object, body, generation=None, userProject=None)</a></code></p>
 <p class="firstline">Updates an IAM policy for the specified object.</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(bucket, object, permissions, generation=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(bucket, object, permissions, userProject=None, generation=None)</a></code></p>
 <p class="firstline">Tests a set of permissions on the given object to see which, if any, are held by the caller.</p>
 <p class="toc_element">
-  <code><a href="#update">update(bucket, object, body, ifGenerationMatch=None, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+  <code><a href="#update">update(bucket, object, body, projection=None, generation=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates an object's metadata.</p>
 <p class="toc_element">
-  <code><a href="#update_media">update_media(bucket, object, body, ifGenerationMatch=None, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None, projection=None)</a></code></p>
+  <code><a href="#update_media">update_media(bucket, object, body, projection=None, generation=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates an object's metadata.</p>
 <p class="toc_element">
-  <code><a href="#watchAll">watchAll(bucket, body, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</a></code></p>
+  <code><a href="#watchAll">watchAll(bucket, body, projection=None, versions=None, userProject=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</a></code></p>
 <p class="firstline">Watch for changes on all objects in a bucket.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="compose">compose(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None)</code>
+    <code class="details" id="compose">compose(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None)</code>
   <pre>Concatenates a list of existing objects into a new object in the same bucket.
 
 Args:
@@ -224,6 +224,7 @@
 
   ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   destinationPredefinedAcl: string, Apply a predefined set of access controls to the destination object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -306,7 +307,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="compose_media">compose_media(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None)</code>
+    <code class="details" id="compose_media">compose_media(destinationBucket, destinationObject, body, ifGenerationMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None)</code>
   <pre>Concatenates a list of existing objects into a new object in the same bucket.
 
 Args:
@@ -397,6 +398,7 @@
 
   ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   destinationPredefinedAcl: string, Apply a predefined set of access controls to the destination object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -413,7 +415,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="copy">copy(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="copy">copy(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
   <pre>Copies a source object to a destination object. Optionally overrides metadata.
 
 Args:
@@ -502,6 +504,7 @@
   ifGenerationMatch: string, Makes the operation conditional on whether the destination object's current generation matches the given value.
   ifGenerationNotMatch: string, Makes the operation conditional on whether the destination object's current generation does not match the given value.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   destinationPredefinedAcl: string, Apply a predefined set of access controls to the destination object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -587,7 +590,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="copy_media">copy_media(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="copy_media">copy_media(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, ifSourceGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
   <pre>Copies a source object to a destination object. Optionally overrides metadata.
 
 Args:
@@ -676,6 +679,7 @@
   ifGenerationMatch: string, Makes the operation conditional on whether the destination object's current generation matches the given value.
   ifGenerationNotMatch: string, Makes the operation conditional on whether the destination object's current generation does not match the given value.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   destinationPredefinedAcl: string, Apply a predefined set of access controls to the destination object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -695,7 +699,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="delete">delete(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, userProject=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None)</code>
   <pre>Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.
 
 Args:
@@ -704,13 +708,14 @@
   ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
   generation: string, If present, permanently deletes a specific revision of this object (as opposed to the latest version, the default).
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
 </pre>
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+    <code class="details" id="get">get(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, userProject=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
   <pre>Retrieves an object or its metadata.
 
 Args:
@@ -719,6 +724,7 @@
   ifGenerationNotMatch: string, Makes the operation conditional on whether the object's generation does not match the given value.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifGenerationMatch: string, Makes the operation conditional on whether the object's generation matches the given value.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
   projection: string, Set of properties to return. Defaults to noAcl.
@@ -799,13 +805,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(bucket, object, generation=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(bucket, object, generation=None, userProject=None)</code>
   <pre>Returns an IAM policy for the specified object.
 
 Args:
   bucket: string, Name of the bucket in which the object resides. (required)
   object: string, Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts. (required)
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -845,7 +852,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get_media">get_media(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
+    <code class="details" id="get_media">get_media(bucket, object, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, userProject=None, ifGenerationMatch=None, ifMetagenerationNotMatch=None, projection=None)</code>
   <pre>Retrieves an object or its metadata.
 
 Args:
@@ -854,6 +861,7 @@
   ifGenerationNotMatch: string, Makes the operation conditional on whether the object's generation does not match the given value.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifGenerationMatch: string, Makes the operation conditional on whether the object's generation matches the given value.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
   projection: string, Set of properties to return. Defaults to noAcl.
@@ -868,7 +876,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="insert">insert(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, userProject=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</code>
   <pre>Stores a new object and metadata.
 
 Args:
@@ -961,6 +969,7 @@
   ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
   name: string, Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   contentEncoding: string, If set, sets the contentEncoding property of the final object to this value. Setting this parameter is equivalent to setting the contentEncoding metadata property. This can be useful when uploading an object with uploadType=media to indicate the encoding of the content being uploaded.
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
@@ -1038,7 +1047,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert_media">insert_media(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="insert_media">insert_media(bucket, body=None, projection=None, media_body=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, name=None, ifMetagenerationMatch=None, userProject=None, contentEncoding=None, media_mime_type=None, ifMetagenerationNotMatch=None)</code>
   <pre>Stores a new object and metadata.
 
 Args:
@@ -1131,6 +1140,7 @@
   ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
   name: string, Name of the object. Required when the object metadata is not otherwise provided. Overrides the object metadata's name value, if any. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   contentEncoding: string, If set, sets the contentEncoding property of the final object to this value. Setting this parameter is equivalent to setting the contentEncoding metadata property. This can be useful when uploading an object with uploadType=media to indicate the encoding of the content being uploaded.
   media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
@@ -1142,7 +1152,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(bucket, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</code>
+    <code class="details" id="list">list(bucket, projection=None, versions=None, userProject=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</code>
   <pre>Retrieves a list of objects matching the criteria.
 
 Args:
@@ -1152,6 +1162,7 @@
       full - Include all properties.
       noAcl - Omit the owner, acl property.
   versions: boolean, If true, lists all versions of an object as distinct results. The default is false. For more information, see Object Versioning.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   delimiter: string, Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.
   maxResults: integer, Maximum number of items plus prefixes to return in a single page of responses. As duplicate prefixes are omitted, fewer total results may be returned than requested. The service will use this parameter or 1,000 items, whichever is smaller.
   pageToken: string, A previously-returned page token representing part of the larger set of results to view.
@@ -1253,7 +1264,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(bucket, object, body, ifGenerationMatch=None, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None, projection=None)</code>
+    <code class="details" id="patch">patch(bucket, object, body, projection=None, generation=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates an object's metadata. This method supports patch semantics.
 
 Args:
@@ -1330,10 +1341,11 @@
     "storageClass": "A String", # Storage class of the object.
   }
 
-  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
-  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the owner, acl property.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
-  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
   predefinedAcl: string, Apply a predefined set of access controls to this object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -1342,11 +1354,11 @@
       private - Object owner gets OWNER access.
       projectPrivate - Object owner gets OWNER access, and project team members get access according to their roles.
       publicRead - Object owner gets OWNER access, and allUsers get READER access.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
-  projection: string, Set of properties to return. Defaults to full.
-    Allowed values
-      full - Include all properties.
-      noAcl - Omit the owner, acl property.
 
 Returns:
   An object of the form:
@@ -1421,7 +1433,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="rewrite">rewrite(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, maxBytesRewrittenPerCall=None, ifSourceGenerationNotMatch=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifSourceMetagenerationNotMatch=None, rewriteToken=None, ifMetagenerationMatch=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="rewrite">rewrite(sourceBucket, sourceObject, destinationBucket, destinationObject, body, projection=None, sourceGeneration=None, maxBytesRewrittenPerCall=None, ifSourceGenerationNotMatch=None, ifGenerationMatch=None, ifSourceMetagenerationNotMatch=None, rewriteToken=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, destinationPredefinedAcl=None, ifSourceGenerationMatch=None, ifSourceMetagenerationMatch=None, ifMetagenerationNotMatch=None)</code>
   <pre>Rewrites a source object to a destination object. Optionally overrides metadata.
 
 Args:
@@ -1508,10 +1520,11 @@
   maxBytesRewrittenPerCall: string, The maximum number of bytes that will be rewritten per rewrite request. Most callers shouldn't need to specify this parameter - it is primarily in place to support testing. If specified the value must be an integral multiple of 1 MiB (1048576). Also, this only applies to requests where the source and destination span locations and/or storage classes. Finally, this value must not change across rewrite calls else you'll get an error that the rewriteToken is invalid.
   ifSourceGenerationNotMatch: string, Makes the operation conditional on whether the source object's generation does not match the given value.
   ifGenerationMatch: string, Makes the operation conditional on whether the destination object's current generation matches the given value.
-  ifGenerationNotMatch: string, Makes the operation conditional on whether the destination object's current generation does not match the given value.
   ifSourceMetagenerationNotMatch: string, Makes the operation conditional on whether the source object's current metageneration does not match the given value.
   rewriteToken: string, Include this field (from the previous rewrite response) on each rewrite request after the first one, until the rewrite response 'done' flag is true. Calls that provide a rewriteToken can omit all other request fields, but if included those fields must match the values provided in the first rewrite request.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the destination object's current generation does not match the given value.
   ifMetagenerationMatch: string, Makes the operation conditional on whether the destination object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   destinationPredefinedAcl: string, Apply a predefined set of access controls to the destination object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -1604,7 +1617,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(bucket, object, body, generation=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(bucket, object, body, generation=None, userProject=None)</code>
   <pre>Updates an IAM policy for the specified object.
 
 Args:
@@ -1647,6 +1660,7 @@
 }
 
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
 
 Returns:
   An object of the form:
@@ -1686,13 +1700,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(bucket, object, permissions, generation=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(bucket, object, permissions, userProject=None, generation=None)</code>
   <pre>Tests a set of permissions on the given object to see which, if any, are held by the caller.
 
 Args:
   bucket: string, Name of the bucket in which the object resides. (required)
   object: string, Name of the object. For information about how to URL encode object names to be path safe, see Encoding URI Path Parts. (required)
   permissions: string, Permissions to test. (required) (repeated)
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
 
 Returns:
@@ -1721,7 +1736,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(bucket, object, body, ifGenerationMatch=None, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None, projection=None)</code>
+    <code class="details" id="update">update(bucket, object, body, projection=None, generation=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates an object's metadata.
 
 Args:
@@ -1798,10 +1813,11 @@
     "storageClass": "A String", # Storage class of the object.
   }
 
-  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
-  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the owner, acl property.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
-  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
   predefinedAcl: string, Apply a predefined set of access controls to this object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -1810,11 +1826,11 @@
       private - Object owner gets OWNER access.
       projectPrivate - Object owner gets OWNER access, and project team members get access according to their roles.
       publicRead - Object owner gets OWNER access, and allUsers get READER access.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
-  projection: string, Set of properties to return. Defaults to full.
-    Allowed values
-      full - Include all properties.
-      noAcl - Omit the owner, acl property.
 
 Returns:
   An object of the form:
@@ -1889,7 +1905,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update_media">update_media(bucket, object, body, ifGenerationMatch=None, ifGenerationNotMatch=None, generation=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None, projection=None)</code>
+    <code class="details" id="update_media">update_media(bucket, object, body, projection=None, generation=None, predefinedAcl=None, ifGenerationMatch=None, ifGenerationNotMatch=None, ifMetagenerationMatch=None, userProject=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates an object's metadata.
 
 Args:
@@ -1966,10 +1982,11 @@
     "storageClass": "A String", # Storage class of the object.
   }
 
-  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
-  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  projection: string, Set of properties to return. Defaults to full.
+    Allowed values
+      full - Include all properties.
+      noAcl - Omit the owner, acl property.
   generation: string, If present, selects a specific revision of this object (as opposed to the latest version, the default).
-  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
   predefinedAcl: string, Apply a predefined set of access controls to this object.
     Allowed values
       authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
@@ -1978,11 +1995,11 @@
       private - Object owner gets OWNER access.
       projectPrivate - Object owner gets OWNER access, and project team members get access according to their roles.
       publicRead - Object owner gets OWNER access, and allUsers get READER access.
+  ifGenerationMatch: string, Makes the operation conditional on whether the object's current generation matches the given value.
+  ifGenerationNotMatch: string, Makes the operation conditional on whether the object's current generation does not match the given value.
+  ifMetagenerationMatch: string, Makes the operation conditional on whether the object's current metageneration matches the given value.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   ifMetagenerationNotMatch: string, Makes the operation conditional on whether the object's current metageneration does not match the given value.
-  projection: string, Set of properties to return. Defaults to full.
-    Allowed values
-      full - Include all properties.
-      noAcl - Omit the owner, acl property.
 
 Returns:
   The media object as a string.
@@ -1991,7 +2008,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watchAll">watchAll(bucket, body, projection=None, versions=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</code>
+    <code class="details" id="watchAll">watchAll(bucket, body, projection=None, versions=None, userProject=None, delimiter=None, maxResults=None, pageToken=None, prefix=None)</code>
   <pre>Watch for changes on all objects in a bucket.
 
 Args:
@@ -2019,6 +2036,7 @@
       full - Include all properties.
       noAcl - Omit the owner, acl property.
   versions: boolean, If true, lists all versions of an object as distinct results. The default is false. For more information, see Object Versioning.
+  userProject: string, The project number to be billed for this request, for Requester Pays buckets.
   delimiter: string, Returns results in a directory-like mode. items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name, truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted.
   maxResults: integer, Maximum number of items plus prefixes to return in a single page of responses. As duplicate prefixes are omitted, fewer total results may be returned than requested. The service will use this parameter or 1,000 items, whichever is smaller.
   pageToken: string, A previously-returned page token representing part of the larger set of results to view.
diff --git a/docs/dyn/appengine_v1.experimental.html b/docs/dyn/storage_v1.projects.html
similarity index 79%
rename from docs/dyn/appengine_v1.experimental.html
rename to docs/dyn/storage_v1.projects.html
index 2f06e1e..761f6d5 100644
--- a/docs/dyn/appengine_v1.experimental.html
+++ b/docs/dyn/storage_v1.projects.html
@@ -72,11 +72,11 @@
 
 </style>
 
-<h1><a href="appengine_v1.html">Google App Engine Admin API</a> . <a href="appengine_v1.experimental.html">experimental</a></h1>
+<h1><a href="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="appengine_v1.experimental.apps.html">apps()</a></code>
+  <code><a href="storage_v1.projects.serviceAccount.html">serviceAccount()</a></code>
 </p>
-<p class="firstline">Returns the apps Resource.</p>
+<p class="firstline">Returns the serviceAccount Resource.</p>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1.projects.serviceAccount.html b/docs/dyn/storage_v1.projects.serviceAccount.html
new file mode 100644
index 0000000..3c0003c
--- /dev/null
+++ b/docs/dyn/storage_v1.projects.serviceAccount.html
@@ -0,0 +1,97 @@
+<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="storage_v1.html">Cloud Storage JSON API</a> . <a href="storage_v1.projects.html">projects</a> . <a href="storage_v1.projects.serviceAccount.html">serviceAccount</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(projectId)</a></code></p>
+<p class="firstline">Get the email address of this project's GCS service account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(projectId)</code>
+  <pre>Get the email address of this project's GCS service account.
+
+Args:
+  projectId: string, Project ID (required)
+
+Returns:
+  An object of the form:
+
+    { # A subscription to receive Google PubSub notifications.
+    "kind": "storage#serviceAccount", # The kind of item this is. For notifications, this is always storage#notification.
+    "email_address": "A String", # The ID of the notification.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storagetransfer_v1.googleServiceAccounts.html b/docs/dyn/storagetransfer_v1.googleServiceAccounts.html
index f9056ac..c0c0e38 100644
--- a/docs/dyn/storagetransfer_v1.googleServiceAccounts.html
+++ b/docs/dyn/storagetransfer_v1.googleServiceAccounts.html
@@ -76,15 +76,27 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#get">get(projectId, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the Google service account that is used by Storage Transfer Service to access buckets in the project where transfers run or in other projects. Each Google service account is associated with one Google Developers Console project. Users should add this service account to the Google Cloud Storage bucket ACLs to grant access to Storage Transfer Service. This service account is created and owned by Storage Transfer Service and can only be used by Storage Transfer Service.</p>
+<p class="firstline">Returns the Google service account that is used by Storage Transfer</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(projectId, x__xgafv=None)</code>
-  <pre>Returns the Google service account that is used by Storage Transfer Service to access buckets in the project where transfers run or in other projects. Each Google service account is associated with one Google Developers Console project. Users should add this service account to the Google Cloud Storage bucket ACLs to grant access to Storage Transfer Service. This service account is created and owned by Storage Transfer Service and can only be used by Storage Transfer Service.
+  <pre>Returns the Google service account that is used by Storage Transfer
+Service to access buckets in the project where transfers
+run or in other projects. Each Google service account is associated
+with one Google Cloud Platform Console project. Users
+should add this service account to the Google Cloud Storage bucket
+ACLs to grant access to Storage Transfer Service. This service
+account is created and owned by Storage Transfer Service and can
+only be used by Storage Transfer Service.
 
 Args:
-  projectId: string, The ID of the Google Developers Console project that the Google service account is associated with. Required. (required)
+  projectId: string, The ID of the Google Cloud Platform Console project that the Google service
+account is associated with.
+Required. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
diff --git a/docs/dyn/storagetransfer_v1.html b/docs/dyn/storagetransfer_v1.html
index a1b9f93..12482d7 100644
--- a/docs/dyn/storagetransfer_v1.html
+++ b/docs/dyn/storagetransfer_v1.html
@@ -90,11 +90,6 @@
 <p class="firstline">Returns the transferOperations Resource.</p>
 
 <p class="toc_element">
-  <code><a href="storagetransfer_v1.v1.html">v1()</a></code>
-</p>
-<p class="firstline">Returns the v1 Resource.</p>
-
-<p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
 <p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/storagetransfer_v1.transferJobs.html b/docs/dyn/storagetransfer_v1.transferJobs.html
index 9142b50..cbb2a45 100644
--- a/docs/dyn/storagetransfer_v1.transferJobs.html
+++ b/docs/dyn/storagetransfer_v1.transferJobs.html
@@ -88,7 +88,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(jobName, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a transfer job. Updating a job's transfer spec does not affect transfer operations that are running already. Updating the scheduling of a job is not allowed.</p>
+<p class="firstline">Updates a transfer job. Updating a job's transfer spec does not affect</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body, x__xgafv=None)</code>
@@ -98,131 +98,440 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # This resource represents the configuration of a transfer job that runs periodically.
-    "transferSpec": { # Configuration for running a transfer. # Transfer specification. Required.
-      "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink.
-        "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to `minTimeElapsedSinceLastModification`.
-        "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. Requirements: * Each include-prefix and exclude-prefix can contain any sequence of Unicode characters, of max length 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * None of the include-prefix or the exclude-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace, i.e., no include-prefix may be a prefix of another include-prefix. * Each exclude-prefix must exclude a distinct portion of the object namespace, i.e., no exclude-prefix may be a prefix of another exclude-prefix. * If `includePrefixes` is specified, then each exclude-prefix must start with the value of a path explicitly included by `includePrefixes`. The max size of `includePrefixes` is 20.
+{ # This resource represents the configuration of a transfer job that runs
+      # periodically.
+    "transferSpec": { # Configuration for running a transfer. # Transfer specification.
+        # Required.
+      "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set
+          # of data source and data sink objects.  Object conditions based on
+          # objects' `lastModificationTime` do not exclude objects in a data sink.
+        "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to
+            # `minTimeElapsedSinceLastModification`.
+        "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object
+            # conditions must have names that start with one of the `includePrefixes`
+            # and that do not start with any of the `excludePrefixes`. If `includePrefixes`
+            # is not specified, all objects except those that have names starting with
+            # one of the `excludePrefixes` must satisfy the object conditions.
+            #
+            # Requirements:
+            #
+            #   * Each include-prefix and exclude-prefix can contain any sequence of
+            #     Unicode characters, of max length 1024 bytes when UTF8-encoded, and
+            #     must not contain Carriage Return or Line Feed characters.  Wildcard
+            #     matching and regular expression matching are not supported.
+            #
+            #   * Each include-prefix and exclude-prefix must omit the leading slash.
+            #     For example, to include the `requests.gz` object in a transfer from
+            #     `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
+            #     prefix as `logs/y=2015/requests.gz`.
+            #
+            #   * None of the include-prefix or the exclude-prefix values can be empty,
+            #     if specified.
+            #
+            #   * Each include-prefix must include a distinct portion of the object
+            #     namespace, i.e., no include-prefix may be a prefix of another
+            #     include-prefix.
+            #
+            #   * Each exclude-prefix must exclude a distinct portion of the object
+            #     namespace, i.e., no exclude-prefix may be a prefix of another
+            #     exclude-prefix.
+            #
+            #   * If `includePrefixes` is specified, then each exclude-prefix must start
+            #     with the value of a path explicitly included by `includePrefixes`.
+            #
+            # The max size of `includePrefixes` is 1000.
           "A String",
         ],
-        "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for `includePrefixes`. The max size of `excludePrefixes` is 20.
+        "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for
+            # `includePrefixes`.
+            #
+            # The max size of `excludePrefixes` is 1000.
           "A String",
         ],
-        "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value and `maxTimeElapsedSinceLastModification` takes the maximum possible value of Duration. Objects that satisfy the object conditions must either have a `lastModificationTime` greater or equal to `NOW` - `maxTimeElapsedSinceLastModification` and less than `NOW` - `minTimeElapsedSinceLastModification`, or not have a `lastModificationTime`.
+        "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
+            # and `maxTimeElapsedSinceLastModification` takes the maximum possible
+            # value of Duration. Objects that satisfy the object conditions
+            # must either have a `lastModificationTime` greater or equal to
+            # `NOW` - `maxTimeElapsedSinceLastModification` and less than
+            # `NOW` - `minTimeElapsedSinceLastModification`, or not have a
+            # `lastModificationTime`.
       },
-      "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data source.
-        "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+      "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data source.
+          # its `lastModificationTime` refers to the object's updated time, which changes
+          # when the content or the metadata of the object is updated.
+        "bucketName": "A String", # Google Cloud Storage bucket name (see
+            # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+            # Required.
       },
-      "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5 hash of the object An HTTP URL that points to the object to be transferred. It must be a valid URL with URL scheme HTTP or HTTPS. When an object with URL `http(s)://hostname:port/` is transferred to the data sink, the name of the object at the data sink is `/`. Length and MD5 provide the size and the base64-encoded MD5 hash of the object. If Length does not match the actual length of the object fetched, the object will not be transferred. If MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. `lastModificationTime` is not available in HttpData objects. The objects that the URL list points to must allow public access. Storage Transfer Service obeys `robots.txt` rules and requires the HTTP server to support Range requests and to return a Content-Length header in each response. # An HTTP URL data source.
-        "listUrl": "A String", # The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. Required.
+      "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over # An HTTP URL data source.
+          # HTTP.  The information of the objects to be transferred is contained in a
+          # file referenced by a URL. The first line in the file must be
+          # "TsvHttpData-1.0", which specifies the format of the file.  Subsequent lines
+          # specify the information of the list of objects, one object per list entry.
+          # Each entry has the following tab-delimited fields:
+          #
+          # * HTTP URL - The location of the object.
+          #
+          # * Length - The size of the object in bytes.
+          #
+          # * MD5 - The base64-encoded MD5 hash of the object.
+          #
+          # For an example of a valid TSV file, see
+          # [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
+          #
+          # When transferring data based on a URL list, keep the following in mind:
+          #
+          # * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
+          # to a data sink, the name of the object at the data sink is
+          # `<hostname>/<URL-path>`.
+          #
+          # * If the specified size of an object does not match the actual size of the
+          # object fetched, the object will not be transferred.
+          #
+          # * If the specified MD5 does not match the MD5 computed from the transferred
+          # bytes, the object transfer will fail. For more information, see
+          # [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
+          #
+          # * Ensure that each URL you specify is publicly accessible. For
+          # example, in Google Cloud Storage you can
+          # [share an object publicly]
+          # (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
+          # a link to it.
+          #
+          # * Storage Transfer Service obeys `robots.txt` rules and requires the source
+          # HTTP server to support `Range` requests and to return a `Content-Length`
+          # header in each response.
+          #
+          # * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
+          # to transfer.
+        "listUrl": "A String", # The URL that points to the file that stores the object list entries.
+            # This file must allow public access.  Currently, only URLs with HTTP and
+            # HTTPS schemes are supported.
+            # Required.
       },
-      "transferOptions": { # TransferOptions uses three boolean parameters to define the actions to be performed on objects in a transfer. # If the option `deleteObjectsUniqueInSink` is `true`, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink.
+      "transferOptions": { # TransferOptions uses three boolean parameters to define the actions # If the option `deleteObjectsUniqueInSink` is `true`, object conditions
+          # based on objects' `lastModificationTime` are ignored and do not exclude
+          # objects in a data source or a data sink.
+          # to be performed on objects in a transfer.
         "overwriteObjectsAlreadyExistingInSink": True or False, # Whether overwriting objects that already exist in the sink is allowed.
-        "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are transferred to the sink.
+        "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are
+            # transferred to the sink.
         "deleteObjectsUniqueInSink": True or False, # Whether objects that exist only in the sink should be deleted.
       },
-      "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data sink.
-        "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+      "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data sink.
+          # its `lastModificationTime` refers to the object's updated time, which changes
+          # when the content or the metadata of the object is updated.
+        "bucketName": "A String", # Google Cloud Storage bucket name (see
+            # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+            # Required.
       },
-      "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. In an AwsS3Data, an object's name is the S3 object's key name. # An AWS S3 data source.
-        "awsAccessKey": { # AWS access key (see [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). # AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. Required.
-          "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses. Required.
-          "accessKeyId": "A String", # AWS access key ID. Required.
+      "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. # An AWS S3 data source.
+          # In an AwsS3Data, an object's name is the S3 object's key name.
+        "awsAccessKey": { # AWS access key (see # AWS access key used to sign the API requests to the AWS S3 bucket.
+            # Permissions on the bucket must be granted to the access ID of the
+            # AWS access key.
+            # Required.
+            # [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
+          "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses.
+              # Required.
+          "accessKeyId": "A String", # AWS access key ID.
+              # Required.
         },
-        "bucketName": "A String", # S3 Bucket name (see [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). Required.
+        "bucketName": "A String", # S3 Bucket name (see
+            # [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
+            # Required.
       },
     },
-    "status": "A String", # Status of the job. This value MUST be specified for `CreateTransferJobRequests`. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from `ENABLED` to `DISABLED`, and an operation spawned by the transfer is running, the status change would not affect the current operation.
+    "status": "A String", # Status of the job. This value MUST be specified for
+        # `CreateTransferJobRequests`.
+        # 
+        # NOTE: The effect of the new job status takes place during a subsequent job
+        # run. For example, if you change the job status from `ENABLED` to
+        # `DISABLED`, and an operation spawned by the transfer is running, the status
+        # change would not affect the current operation.
     "deletionTime": "A String", # This field cannot be changed by user requests.
-    "name": "A String", # A globally unique name assigned by Storage Transfer Service when the job is created. This field should be left empty in requests to create a new transfer job; otherwise, the requests result in an `INVALID_ARGUMENT` error.
-    "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification. Required.
-      "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The first day the recurring transfer is scheduled to run. Required.
-        "month": 42, # Month of year of date. Must be from 1 to 12.
-        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-        "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+    "description": "A String", # A description provided by the user for the job. Its max length is 1024
+        # bytes when Unicode-encoded.
+    "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification.
+        # Required.
+      "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The first day the recurring transfer is scheduled to run. If
+          # `scheduleStartDate` is in the past, the transfer will run for the first
+          # time on the following day.
+          # Required.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "month": 42, # Month of year. Must be from 1 to 12.
       },
-      "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are [google.type.Date][google.type.Date] and `google.protobuf.Timestamp`. # The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, transfers are scheduled to start at midnight UTC.
-        "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
-        "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
-        "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+      "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant # The time in UTC at which the transfer will be scheduled to start in a day.
+          # Transfers may start later than this time. If not specified, recurring and
+          # one-time transfers that are scheduled to run today will run immediately;
+          # recurring transfers that are scheduled to run on a future date will start
+          # at approximately midnight UTC on that date. Note that when configuring a
+          # transfer with the Cloud Platform Console, the transfer's start time in a
+          # day is specified in your local timezone.
+          # or are specified elsewhere. An API may choose to allow leap seconds. Related
+          # types are google.type.Date and `google.protobuf.Timestamp`.
+        "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+            # to allow the value "24:00:00" for scenarios like business closing time.
         "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+        "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+            # allow the value 60 if it allows leap-seconds.
+        "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
       },
-      "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once.
-        "month": 42, # Month of year of date. Must be from 1 to 12.
-        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-        "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+      "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The last day the recurring transfer will be run. If `scheduleEndDate`
+          # is the same as `scheduleStartDate`, the transfer will be executed only
+          # once.
+          # time zone are either specified elsewhere or are not significant. The date
+          # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+          # represent a year and month where the day is not significant, e.g. credit card
+          # expiration date. The year may be 0 to represent a month and day independent
+          # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+          # and `google.protobuf.Timestamp`.
+        "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+            # a year.
+        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+            # if specifying a year/month where the day is not significant.
+        "month": 42, # Month of year. Must be from 1 to 12.
       },
     },
-    "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
+    "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+        # Required.
     "lastModificationTime": "A String", # This field cannot be changed by user requests.
     "creationTime": "A String", # This field cannot be changed by user requests.
-    "description": "A String", # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
+    "name": "A String", # A globally unique name assigned by Storage Transfer Service when the
+        # job is created. This field should be left empty in requests to create a new
+        # transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
+        # error.
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents the configuration of a transfer job that runs periodically.
-      "transferSpec": { # Configuration for running a transfer. # Transfer specification. Required.
-        "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink.
-          "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to `minTimeElapsedSinceLastModification`.
-          "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. Requirements: * Each include-prefix and exclude-prefix can contain any sequence of Unicode characters, of max length 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * None of the include-prefix or the exclude-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace, i.e., no include-prefix may be a prefix of another include-prefix. * Each exclude-prefix must exclude a distinct portion of the object namespace, i.e., no exclude-prefix may be a prefix of another exclude-prefix. * If `includePrefixes` is specified, then each exclude-prefix must start with the value of a path explicitly included by `includePrefixes`. The max size of `includePrefixes` is 20.
+    { # This resource represents the configuration of a transfer job that runs
+        # periodically.
+      "transferSpec": { # Configuration for running a transfer. # Transfer specification.
+          # Required.
+        "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set
+            # of data source and data sink objects.  Object conditions based on
+            # objects' `lastModificationTime` do not exclude objects in a data sink.
+          "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to
+              # `minTimeElapsedSinceLastModification`.
+          "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object
+              # conditions must have names that start with one of the `includePrefixes`
+              # and that do not start with any of the `excludePrefixes`. If `includePrefixes`
+              # is not specified, all objects except those that have names starting with
+              # one of the `excludePrefixes` must satisfy the object conditions.
+              #
+              # Requirements:
+              #
+              #   * Each include-prefix and exclude-prefix can contain any sequence of
+              #     Unicode characters, of max length 1024 bytes when UTF8-encoded, and
+              #     must not contain Carriage Return or Line Feed characters.  Wildcard
+              #     matching and regular expression matching are not supported.
+              #
+              #   * Each include-prefix and exclude-prefix must omit the leading slash.
+              #     For example, to include the `requests.gz` object in a transfer from
+              #     `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
+              #     prefix as `logs/y=2015/requests.gz`.
+              #
+              #   * None of the include-prefix or the exclude-prefix values can be empty,
+              #     if specified.
+              #
+              #   * Each include-prefix must include a distinct portion of the object
+              #     namespace, i.e., no include-prefix may be a prefix of another
+              #     include-prefix.
+              #
+              #   * Each exclude-prefix must exclude a distinct portion of the object
+              #     namespace, i.e., no exclude-prefix may be a prefix of another
+              #     exclude-prefix.
+              #
+              #   * If `includePrefixes` is specified, then each exclude-prefix must start
+              #     with the value of a path explicitly included by `includePrefixes`.
+              #
+              # The max size of `includePrefixes` is 1000.
             "A String",
           ],
-          "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for `includePrefixes`. The max size of `excludePrefixes` is 20.
+          "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for
+              # `includePrefixes`.
+              #
+              # The max size of `excludePrefixes` is 1000.
             "A String",
           ],
-          "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value and `maxTimeElapsedSinceLastModification` takes the maximum possible value of Duration. Objects that satisfy the object conditions must either have a `lastModificationTime` greater or equal to `NOW` - `maxTimeElapsedSinceLastModification` and less than `NOW` - `minTimeElapsedSinceLastModification`, or not have a `lastModificationTime`.
+          "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
+              # and `maxTimeElapsedSinceLastModification` takes the maximum possible
+              # value of Duration. Objects that satisfy the object conditions
+              # must either have a `lastModificationTime` greater or equal to
+              # `NOW` - `maxTimeElapsedSinceLastModification` and less than
+              # `NOW` - `minTimeElapsedSinceLastModification`, or not have a
+              # `lastModificationTime`.
         },
-        "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data source.
-          "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+        "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data source.
+            # its `lastModificationTime` refers to the object's updated time, which changes
+            # when the content or the metadata of the object is updated.
+          "bucketName": "A String", # Google Cloud Storage bucket name (see
+              # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              # Required.
         },
-        "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5 hash of the object An HTTP URL that points to the object to be transferred. It must be a valid URL with URL scheme HTTP or HTTPS. When an object with URL `http(s)://hostname:port/` is transferred to the data sink, the name of the object at the data sink is `/`. Length and MD5 provide the size and the base64-encoded MD5 hash of the object. If Length does not match the actual length of the object fetched, the object will not be transferred. If MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. `lastModificationTime` is not available in HttpData objects. The objects that the URL list points to must allow public access. Storage Transfer Service obeys `robots.txt` rules and requires the HTTP server to support Range requests and to return a Content-Length header in each response. # An HTTP URL data source.
-          "listUrl": "A String", # The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. Required.
+        "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over # An HTTP URL data source.
+            # HTTP.  The information of the objects to be transferred is contained in a
+            # file referenced by a URL. The first line in the file must be
+            # "TsvHttpData-1.0", which specifies the format of the file.  Subsequent lines
+            # specify the information of the list of objects, one object per list entry.
+            # Each entry has the following tab-delimited fields:
+            #
+            # * HTTP URL - The location of the object.
+            #
+            # * Length - The size of the object in bytes.
+            #
+            # * MD5 - The base64-encoded MD5 hash of the object.
+            #
+            # For an example of a valid TSV file, see
+            # [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
+            #
+            # When transferring data based on a URL list, keep the following in mind:
+            #
+            # * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
+            # to a data sink, the name of the object at the data sink is
+            # `<hostname>/<URL-path>`.
+            #
+            # * If the specified size of an object does not match the actual size of the
+            # object fetched, the object will not be transferred.
+            #
+            # * If the specified MD5 does not match the MD5 computed from the transferred
+            # bytes, the object transfer will fail. For more information, see
+            # [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
+            #
+            # * Ensure that each URL you specify is publicly accessible. For
+            # example, in Google Cloud Storage you can
+            # [share an object publicly]
+            # (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
+            # a link to it.
+            #
+            # * Storage Transfer Service obeys `robots.txt` rules and requires the source
+            # HTTP server to support `Range` requests and to return a `Content-Length`
+            # header in each response.
+            #
+            # * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
+            # to transfer.
+          "listUrl": "A String", # The URL that points to the file that stores the object list entries.
+              # This file must allow public access.  Currently, only URLs with HTTP and
+              # HTTPS schemes are supported.
+              # Required.
         },
-        "transferOptions": { # TransferOptions uses three boolean parameters to define the actions to be performed on objects in a transfer. # If the option `deleteObjectsUniqueInSink` is `true`, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink.
+        "transferOptions": { # TransferOptions uses three boolean parameters to define the actions # If the option `deleteObjectsUniqueInSink` is `true`, object conditions
+            # based on objects' `lastModificationTime` are ignored and do not exclude
+            # objects in a data source or a data sink.
+            # to be performed on objects in a transfer.
           "overwriteObjectsAlreadyExistingInSink": True or False, # Whether overwriting objects that already exist in the sink is allowed.
-          "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are transferred to the sink.
+          "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are
+              # transferred to the sink.
           "deleteObjectsUniqueInSink": True or False, # Whether objects that exist only in the sink should be deleted.
         },
-        "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data sink.
-          "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+        "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data sink.
+            # its `lastModificationTime` refers to the object's updated time, which changes
+            # when the content or the metadata of the object is updated.
+          "bucketName": "A String", # Google Cloud Storage bucket name (see
+              # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              # Required.
         },
-        "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. In an AwsS3Data, an object's name is the S3 object's key name. # An AWS S3 data source.
-          "awsAccessKey": { # AWS access key (see [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). # AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. Required.
-            "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses. Required.
-            "accessKeyId": "A String", # AWS access key ID. Required.
+        "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. # An AWS S3 data source.
+            # In an AwsS3Data, an object's name is the S3 object's key name.
+          "awsAccessKey": { # AWS access key (see # AWS access key used to sign the API requests to the AWS S3 bucket.
+              # Permissions on the bucket must be granted to the access ID of the
+              # AWS access key.
+              # Required.
+              # [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
+            "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses.
+                # Required.
+            "accessKeyId": "A String", # AWS access key ID.
+                # Required.
           },
-          "bucketName": "A String", # S3 Bucket name (see [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). Required.
+          "bucketName": "A String", # S3 Bucket name (see
+              # [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
+              # Required.
         },
       },
-      "status": "A String", # Status of the job. This value MUST be specified for `CreateTransferJobRequests`. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from `ENABLED` to `DISABLED`, and an operation spawned by the transfer is running, the status change would not affect the current operation.
+      "status": "A String", # Status of the job. This value MUST be specified for
+          # `CreateTransferJobRequests`.
+          #
+          # NOTE: The effect of the new job status takes place during a subsequent job
+          # run. For example, if you change the job status from `ENABLED` to
+          # `DISABLED`, and an operation spawned by the transfer is running, the status
+          # change would not affect the current operation.
       "deletionTime": "A String", # This field cannot be changed by user requests.
-      "name": "A String", # A globally unique name assigned by Storage Transfer Service when the job is created. This field should be left empty in requests to create a new transfer job; otherwise, the requests result in an `INVALID_ARGUMENT` error.
-      "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification. Required.
-        "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The first day the recurring transfer is scheduled to run. Required.
-          "month": 42, # Month of year of date. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-          "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+      "description": "A String", # A description provided by the user for the job. Its max length is 1024
+          # bytes when Unicode-encoded.
+      "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification.
+          # Required.
+        "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The first day the recurring transfer is scheduled to run. If
+            # `scheduleStartDate` is in the past, the transfer will run for the first
+            # time on the following day.
+            # Required.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
-        "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are [google.type.Date][google.type.Date] and `google.protobuf.Timestamp`. # The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, transfers are scheduled to start at midnight UTC.
-          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
-          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
-          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+        "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant # The time in UTC at which the transfer will be scheduled to start in a day.
+            # Transfers may start later than this time. If not specified, recurring and
+            # one-time transfers that are scheduled to run today will run immediately;
+            # recurring transfers that are scheduled to run on a future date will start
+            # at approximately midnight UTC on that date. Note that when configuring a
+            # transfer with the Cloud Platform Console, the transfer's start time in a
+            # day is specified in your local timezone.
+            # or are specified elsewhere. An API may choose to allow leap seconds. Related
+            # types are google.type.Date and `google.protobuf.Timestamp`.
+          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+              # to allow the value "24:00:00" for scenarios like business closing time.
           "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+              # allow the value 60 if it allows leap-seconds.
+          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         },
-        "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once.
-          "month": 42, # Month of year of date. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-          "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+        "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The last day the recurring transfer will be run. If `scheduleEndDate`
+            # is the same as `scheduleStartDate`, the transfer will be executed only
+            # once.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
       },
-      "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
+      "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+          # Required.
       "lastModificationTime": "A String", # This field cannot be changed by user requests.
       "creationTime": "A String", # This field cannot be changed by user requests.
-      "description": "A String", # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
+      "name": "A String", # A globally unique name assigned by Storage Transfer Service when the
+          # job is created. This field should be left empty in requests to create a new
+          # transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
+          # error.
     }</pre>
 </div>
 
@@ -231,72 +540,230 @@
   <pre>Gets a transfer job.
 
 Args:
-  jobName: string, The job to get. Required. (required)
-  projectId: string, The ID of the Google Developers Console project that owns the job. Required.
+  jobName: string, The job to get.
+Required. (required)
+  projectId: string, The ID of the Google Cloud Platform Console project that owns the job.
+Required.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents the configuration of a transfer job that runs periodically.
-      "transferSpec": { # Configuration for running a transfer. # Transfer specification. Required.
-        "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink.
-          "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to `minTimeElapsedSinceLastModification`.
-          "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. Requirements: * Each include-prefix and exclude-prefix can contain any sequence of Unicode characters, of max length 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * None of the include-prefix or the exclude-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace, i.e., no include-prefix may be a prefix of another include-prefix. * Each exclude-prefix must exclude a distinct portion of the object namespace, i.e., no exclude-prefix may be a prefix of another exclude-prefix. * If `includePrefixes` is specified, then each exclude-prefix must start with the value of a path explicitly included by `includePrefixes`. The max size of `includePrefixes` is 20.
+    { # This resource represents the configuration of a transfer job that runs
+        # periodically.
+      "transferSpec": { # Configuration for running a transfer. # Transfer specification.
+          # Required.
+        "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set
+            # of data source and data sink objects.  Object conditions based on
+            # objects' `lastModificationTime` do not exclude objects in a data sink.
+          "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to
+              # `minTimeElapsedSinceLastModification`.
+          "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object
+              # conditions must have names that start with one of the `includePrefixes`
+              # and that do not start with any of the `excludePrefixes`. If `includePrefixes`
+              # is not specified, all objects except those that have names starting with
+              # one of the `excludePrefixes` must satisfy the object conditions.
+              #
+              # Requirements:
+              #
+              #   * Each include-prefix and exclude-prefix can contain any sequence of
+              #     Unicode characters, of max length 1024 bytes when UTF8-encoded, and
+              #     must not contain Carriage Return or Line Feed characters.  Wildcard
+              #     matching and regular expression matching are not supported.
+              #
+              #   * Each include-prefix and exclude-prefix must omit the leading slash.
+              #     For example, to include the `requests.gz` object in a transfer from
+              #     `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
+              #     prefix as `logs/y=2015/requests.gz`.
+              #
+              #   * None of the include-prefix or the exclude-prefix values can be empty,
+              #     if specified.
+              #
+              #   * Each include-prefix must include a distinct portion of the object
+              #     namespace, i.e., no include-prefix may be a prefix of another
+              #     include-prefix.
+              #
+              #   * Each exclude-prefix must exclude a distinct portion of the object
+              #     namespace, i.e., no exclude-prefix may be a prefix of another
+              #     exclude-prefix.
+              #
+              #   * If `includePrefixes` is specified, then each exclude-prefix must start
+              #     with the value of a path explicitly included by `includePrefixes`.
+              #
+              # The max size of `includePrefixes` is 1000.
             "A String",
           ],
-          "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for `includePrefixes`. The max size of `excludePrefixes` is 20.
+          "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for
+              # `includePrefixes`.
+              #
+              # The max size of `excludePrefixes` is 1000.
             "A String",
           ],
-          "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value and `maxTimeElapsedSinceLastModification` takes the maximum possible value of Duration. Objects that satisfy the object conditions must either have a `lastModificationTime` greater or equal to `NOW` - `maxTimeElapsedSinceLastModification` and less than `NOW` - `minTimeElapsedSinceLastModification`, or not have a `lastModificationTime`.
+          "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
+              # and `maxTimeElapsedSinceLastModification` takes the maximum possible
+              # value of Duration. Objects that satisfy the object conditions
+              # must either have a `lastModificationTime` greater or equal to
+              # `NOW` - `maxTimeElapsedSinceLastModification` and less than
+              # `NOW` - `minTimeElapsedSinceLastModification`, or not have a
+              # `lastModificationTime`.
         },
-        "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data source.
-          "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+        "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data source.
+            # its `lastModificationTime` refers to the object's updated time, which changes
+            # when the content or the metadata of the object is updated.
+          "bucketName": "A String", # Google Cloud Storage bucket name (see
+              # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              # Required.
         },
-        "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5 hash of the object An HTTP URL that points to the object to be transferred. It must be a valid URL with URL scheme HTTP or HTTPS. When an object with URL `http(s)://hostname:port/` is transferred to the data sink, the name of the object at the data sink is `/`. Length and MD5 provide the size and the base64-encoded MD5 hash of the object. If Length does not match the actual length of the object fetched, the object will not be transferred. If MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. `lastModificationTime` is not available in HttpData objects. The objects that the URL list points to must allow public access. Storage Transfer Service obeys `robots.txt` rules and requires the HTTP server to support Range requests and to return a Content-Length header in each response. # An HTTP URL data source.
-          "listUrl": "A String", # The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. Required.
+        "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over # An HTTP URL data source.
+            # HTTP.  The information of the objects to be transferred is contained in a
+            # file referenced by a URL. The first line in the file must be
+            # "TsvHttpData-1.0", which specifies the format of the file.  Subsequent lines
+            # specify the information of the list of objects, one object per list entry.
+            # Each entry has the following tab-delimited fields:
+            #
+            # * HTTP URL - The location of the object.
+            #
+            # * Length - The size of the object in bytes.
+            #
+            # * MD5 - The base64-encoded MD5 hash of the object.
+            #
+            # For an example of a valid TSV file, see
+            # [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
+            #
+            # When transferring data based on a URL list, keep the following in mind:
+            #
+            # * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
+            # to a data sink, the name of the object at the data sink is
+            # `<hostname>/<URL-path>`.
+            #
+            # * If the specified size of an object does not match the actual size of the
+            # object fetched, the object will not be transferred.
+            #
+            # * If the specified MD5 does not match the MD5 computed from the transferred
+            # bytes, the object transfer will fail. For more information, see
+            # [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
+            #
+            # * Ensure that each URL you specify is publicly accessible. For
+            # example, in Google Cloud Storage you can
+            # [share an object publicly]
+            # (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
+            # a link to it.
+            #
+            # * Storage Transfer Service obeys `robots.txt` rules and requires the source
+            # HTTP server to support `Range` requests and to return a `Content-Length`
+            # header in each response.
+            #
+            # * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
+            # to transfer.
+          "listUrl": "A String", # The URL that points to the file that stores the object list entries.
+              # This file must allow public access.  Currently, only URLs with HTTP and
+              # HTTPS schemes are supported.
+              # Required.
         },
-        "transferOptions": { # TransferOptions uses three boolean parameters to define the actions to be performed on objects in a transfer. # If the option `deleteObjectsUniqueInSink` is `true`, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink.
+        "transferOptions": { # TransferOptions uses three boolean parameters to define the actions # If the option `deleteObjectsUniqueInSink` is `true`, object conditions
+            # based on objects' `lastModificationTime` are ignored and do not exclude
+            # objects in a data source or a data sink.
+            # to be performed on objects in a transfer.
           "overwriteObjectsAlreadyExistingInSink": True or False, # Whether overwriting objects that already exist in the sink is allowed.
-          "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are transferred to the sink.
+          "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are
+              # transferred to the sink.
           "deleteObjectsUniqueInSink": True or False, # Whether objects that exist only in the sink should be deleted.
         },
-        "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data sink.
-          "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+        "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data sink.
+            # its `lastModificationTime` refers to the object's updated time, which changes
+            # when the content or the metadata of the object is updated.
+          "bucketName": "A String", # Google Cloud Storage bucket name (see
+              # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              # Required.
         },
-        "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. In an AwsS3Data, an object's name is the S3 object's key name. # An AWS S3 data source.
-          "awsAccessKey": { # AWS access key (see [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). # AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. Required.
-            "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses. Required.
-            "accessKeyId": "A String", # AWS access key ID. Required.
+        "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. # An AWS S3 data source.
+            # In an AwsS3Data, an object's name is the S3 object's key name.
+          "awsAccessKey": { # AWS access key (see # AWS access key used to sign the API requests to the AWS S3 bucket.
+              # Permissions on the bucket must be granted to the access ID of the
+              # AWS access key.
+              # Required.
+              # [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
+            "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses.
+                # Required.
+            "accessKeyId": "A String", # AWS access key ID.
+                # Required.
           },
-          "bucketName": "A String", # S3 Bucket name (see [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). Required.
+          "bucketName": "A String", # S3 Bucket name (see
+              # [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
+              # Required.
         },
       },
-      "status": "A String", # Status of the job. This value MUST be specified for `CreateTransferJobRequests`. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from `ENABLED` to `DISABLED`, and an operation spawned by the transfer is running, the status change would not affect the current operation.
+      "status": "A String", # Status of the job. This value MUST be specified for
+          # `CreateTransferJobRequests`.
+          #
+          # NOTE: The effect of the new job status takes place during a subsequent job
+          # run. For example, if you change the job status from `ENABLED` to
+          # `DISABLED`, and an operation spawned by the transfer is running, the status
+          # change would not affect the current operation.
       "deletionTime": "A String", # This field cannot be changed by user requests.
-      "name": "A String", # A globally unique name assigned by Storage Transfer Service when the job is created. This field should be left empty in requests to create a new transfer job; otherwise, the requests result in an `INVALID_ARGUMENT` error.
-      "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification. Required.
-        "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The first day the recurring transfer is scheduled to run. Required.
-          "month": 42, # Month of year of date. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-          "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+      "description": "A String", # A description provided by the user for the job. Its max length is 1024
+          # bytes when Unicode-encoded.
+      "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification.
+          # Required.
+        "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The first day the recurring transfer is scheduled to run. If
+            # `scheduleStartDate` is in the past, the transfer will run for the first
+            # time on the following day.
+            # Required.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
-        "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are [google.type.Date][google.type.Date] and `google.protobuf.Timestamp`. # The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, transfers are scheduled to start at midnight UTC.
-          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
-          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
-          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+        "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant # The time in UTC at which the transfer will be scheduled to start in a day.
+            # Transfers may start later than this time. If not specified, recurring and
+            # one-time transfers that are scheduled to run today will run immediately;
+            # recurring transfers that are scheduled to run on a future date will start
+            # at approximately midnight UTC on that date. Note that when configuring a
+            # transfer with the Cloud Platform Console, the transfer's start time in a
+            # day is specified in your local timezone.
+            # or are specified elsewhere. An API may choose to allow leap seconds. Related
+            # types are google.type.Date and `google.protobuf.Timestamp`.
+          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+              # to allow the value "24:00:00" for scenarios like business closing time.
           "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+              # allow the value 60 if it allows leap-seconds.
+          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         },
-        "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once.
-          "month": 42, # Month of year of date. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-          "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+        "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The last day the recurring transfer will be run. If `scheduleEndDate`
+            # is the same as `scheduleStartDate`, the transfer will be executed only
+            # once.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
       },
-      "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
+      "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+          # Required.
       "lastModificationTime": "A String", # This field cannot be changed by user requests.
       "creationTime": "A String", # This field cannot be changed by user requests.
-      "description": "A String", # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
+      "name": "A String", # A globally unique name assigned by Storage Transfer Service when the
+          # job is created. This field should be left empty in requests to create a new
+          # transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
+          # error.
     }</pre>
 </div>
 
@@ -306,9 +773,19 @@
 
 Args:
   pageSize: integer, The list page size. The max allowed value is 256.
-  filter: string, A list of query parameters specified as JSON text in the form of {"`project_id`":"my_project_id", "`job_names`":["jobid1","jobid2",...], "`job_statuses`":["status1","status2",...]}. Since `job_names` and `job_statuses` support multiple values, their values must be specified with array notation. `project_id` is required. `job_names` and `job_statuses` are optional. The valid values for `job_statuses` are case-insensitive: `ENABLED`, `DISABLED`, and `DELETED`.
+  filter: string, A list of query parameters specified as JSON text in the form of
+{"project_id":"my_project_id",
+"job_names":["jobid1","jobid2",...],
+"job_statuses":["status1","status2",...]}.
+Since `job_names` and `job_statuses` support multiple values, their values
+must be specified with array notation. `project_id` is required. `job_names`
+and `job_statuses` are optional.  The valid values for `job_statuses` are
+case-insensitive: `ENABLED`, `DISABLED`, and `DELETED`.
   pageToken: string, The list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -316,65 +793,218 @@
     { # Response from ListTransferJobs.
     "nextPageToken": "A String", # The list next page token.
     "transferJobs": [ # A list of transfer jobs.
-      { # This resource represents the configuration of a transfer job that runs periodically.
-          "transferSpec": { # Configuration for running a transfer. # Transfer specification. Required.
-            "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink.
-              "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to `minTimeElapsedSinceLastModification`.
-              "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. Requirements: * Each include-prefix and exclude-prefix can contain any sequence of Unicode characters, of max length 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * None of the include-prefix or the exclude-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace, i.e., no include-prefix may be a prefix of another include-prefix. * Each exclude-prefix must exclude a distinct portion of the object namespace, i.e., no exclude-prefix may be a prefix of another exclude-prefix. * If `includePrefixes` is specified, then each exclude-prefix must start with the value of a path explicitly included by `includePrefixes`. The max size of `includePrefixes` is 20.
+      { # This resource represents the configuration of a transfer job that runs
+            # periodically.
+          "transferSpec": { # Configuration for running a transfer. # Transfer specification.
+              # Required.
+            "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set
+                # of data source and data sink objects.  Object conditions based on
+                # objects' `lastModificationTime` do not exclude objects in a data sink.
+              "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to
+                  # `minTimeElapsedSinceLastModification`.
+              "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object
+                  # conditions must have names that start with one of the `includePrefixes`
+                  # and that do not start with any of the `excludePrefixes`. If `includePrefixes`
+                  # is not specified, all objects except those that have names starting with
+                  # one of the `excludePrefixes` must satisfy the object conditions.
+                  #
+                  # Requirements:
+                  #
+                  #   * Each include-prefix and exclude-prefix can contain any sequence of
+                  #     Unicode characters, of max length 1024 bytes when UTF8-encoded, and
+                  #     must not contain Carriage Return or Line Feed characters.  Wildcard
+                  #     matching and regular expression matching are not supported.
+                  #
+                  #   * Each include-prefix and exclude-prefix must omit the leading slash.
+                  #     For example, to include the `requests.gz` object in a transfer from
+                  #     `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
+                  #     prefix as `logs/y=2015/requests.gz`.
+                  #
+                  #   * None of the include-prefix or the exclude-prefix values can be empty,
+                  #     if specified.
+                  #
+                  #   * Each include-prefix must include a distinct portion of the object
+                  #     namespace, i.e., no include-prefix may be a prefix of another
+                  #     include-prefix.
+                  #
+                  #   * Each exclude-prefix must exclude a distinct portion of the object
+                  #     namespace, i.e., no exclude-prefix may be a prefix of another
+                  #     exclude-prefix.
+                  #
+                  #   * If `includePrefixes` is specified, then each exclude-prefix must start
+                  #     with the value of a path explicitly included by `includePrefixes`.
+                  #
+                  # The max size of `includePrefixes` is 1000.
                 "A String",
               ],
-              "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for `includePrefixes`. The max size of `excludePrefixes` is 20.
+              "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for
+                  # `includePrefixes`.
+                  #
+                  # The max size of `excludePrefixes` is 1000.
                 "A String",
               ],
-              "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value and `maxTimeElapsedSinceLastModification` takes the maximum possible value of Duration. Objects that satisfy the object conditions must either have a `lastModificationTime` greater or equal to `NOW` - `maxTimeElapsedSinceLastModification` and less than `NOW` - `minTimeElapsedSinceLastModification`, or not have a `lastModificationTime`.
+              "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
+                  # and `maxTimeElapsedSinceLastModification` takes the maximum possible
+                  # value of Duration. Objects that satisfy the object conditions
+                  # must either have a `lastModificationTime` greater or equal to
+                  # `NOW` - `maxTimeElapsedSinceLastModification` and less than
+                  # `NOW` - `minTimeElapsedSinceLastModification`, or not have a
+                  # `lastModificationTime`.
             },
-            "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data source.
-              "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+            "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data source.
+                # its `lastModificationTime` refers to the object's updated time, which changes
+                # when the content or the metadata of the object is updated.
+              "bucketName": "A String", # Google Cloud Storage bucket name (see
+                  # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+                  # Required.
             },
-            "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5 hash of the object An HTTP URL that points to the object to be transferred. It must be a valid URL with URL scheme HTTP or HTTPS. When an object with URL `http(s)://hostname:port/` is transferred to the data sink, the name of the object at the data sink is `/`. Length and MD5 provide the size and the base64-encoded MD5 hash of the object. If Length does not match the actual length of the object fetched, the object will not be transferred. If MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. `lastModificationTime` is not available in HttpData objects. The objects that the URL list points to must allow public access. Storage Transfer Service obeys `robots.txt` rules and requires the HTTP server to support Range requests and to return a Content-Length header in each response. # An HTTP URL data source.
-              "listUrl": "A String", # The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. Required.
+            "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over # An HTTP URL data source.
+                # HTTP.  The information of the objects to be transferred is contained in a
+                # file referenced by a URL. The first line in the file must be
+                # "TsvHttpData-1.0", which specifies the format of the file.  Subsequent lines
+                # specify the information of the list of objects, one object per list entry.
+                # Each entry has the following tab-delimited fields:
+                #
+                # * HTTP URL - The location of the object.
+                #
+                # * Length - The size of the object in bytes.
+                #
+                # * MD5 - The base64-encoded MD5 hash of the object.
+                #
+                # For an example of a valid TSV file, see
+                # [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
+                #
+                # When transferring data based on a URL list, keep the following in mind:
+                #
+                # * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
+                # to a data sink, the name of the object at the data sink is
+                # `<hostname>/<URL-path>`.
+                #
+                # * If the specified size of an object does not match the actual size of the
+                # object fetched, the object will not be transferred.
+                #
+                # * If the specified MD5 does not match the MD5 computed from the transferred
+                # bytes, the object transfer will fail. For more information, see
+                # [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
+                #
+                # * Ensure that each URL you specify is publicly accessible. For
+                # example, in Google Cloud Storage you can
+                # [share an object publicly]
+                # (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
+                # a link to it.
+                #
+                # * Storage Transfer Service obeys `robots.txt` rules and requires the source
+                # HTTP server to support `Range` requests and to return a `Content-Length`
+                # header in each response.
+                #
+                # * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
+                # to transfer.
+              "listUrl": "A String", # The URL that points to the file that stores the object list entries.
+                  # This file must allow public access.  Currently, only URLs with HTTP and
+                  # HTTPS schemes are supported.
+                  # Required.
             },
-            "transferOptions": { # TransferOptions uses three boolean parameters to define the actions to be performed on objects in a transfer. # If the option `deleteObjectsUniqueInSink` is `true`, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink.
+            "transferOptions": { # TransferOptions uses three boolean parameters to define the actions # If the option `deleteObjectsUniqueInSink` is `true`, object conditions
+                # based on objects' `lastModificationTime` are ignored and do not exclude
+                # objects in a data source or a data sink.
+                # to be performed on objects in a transfer.
               "overwriteObjectsAlreadyExistingInSink": True or False, # Whether overwriting objects that already exist in the sink is allowed.
-              "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are transferred to the sink.
+              "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are
+                  # transferred to the sink.
               "deleteObjectsUniqueInSink": True or False, # Whether objects that exist only in the sink should be deleted.
             },
-            "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data sink.
-              "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+            "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data sink.
+                # its `lastModificationTime` refers to the object's updated time, which changes
+                # when the content or the metadata of the object is updated.
+              "bucketName": "A String", # Google Cloud Storage bucket name (see
+                  # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+                  # Required.
             },
-            "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. In an AwsS3Data, an object's name is the S3 object's key name. # An AWS S3 data source.
-              "awsAccessKey": { # AWS access key (see [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). # AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. Required.
-                "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses. Required.
-                "accessKeyId": "A String", # AWS access key ID. Required.
+            "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. # An AWS S3 data source.
+                # In an AwsS3Data, an object's name is the S3 object's key name.
+              "awsAccessKey": { # AWS access key (see # AWS access key used to sign the API requests to the AWS S3 bucket.
+                  # Permissions on the bucket must be granted to the access ID of the
+                  # AWS access key.
+                  # Required.
+                  # [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
+                "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses.
+                    # Required.
+                "accessKeyId": "A String", # AWS access key ID.
+                    # Required.
               },
-              "bucketName": "A String", # S3 Bucket name (see [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). Required.
+              "bucketName": "A String", # S3 Bucket name (see
+                  # [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
+                  # Required.
             },
           },
-          "status": "A String", # Status of the job. This value MUST be specified for `CreateTransferJobRequests`. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from `ENABLED` to `DISABLED`, and an operation spawned by the transfer is running, the status change would not affect the current operation.
+          "status": "A String", # Status of the job. This value MUST be specified for
+              # `CreateTransferJobRequests`.
+              #
+              # NOTE: The effect of the new job status takes place during a subsequent job
+              # run. For example, if you change the job status from `ENABLED` to
+              # `DISABLED`, and an operation spawned by the transfer is running, the status
+              # change would not affect the current operation.
           "deletionTime": "A String", # This field cannot be changed by user requests.
-          "name": "A String", # A globally unique name assigned by Storage Transfer Service when the job is created. This field should be left empty in requests to create a new transfer job; otherwise, the requests result in an `INVALID_ARGUMENT` error.
-          "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification. Required.
-            "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The first day the recurring transfer is scheduled to run. Required.
-              "month": 42, # Month of year of date. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-              "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+          "description": "A String", # A description provided by the user for the job. Its max length is 1024
+              # bytes when Unicode-encoded.
+          "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification.
+              # Required.
+            "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The first day the recurring transfer is scheduled to run. If
+                # `scheduleStartDate` is in the past, the transfer will run for the first
+                # time on the following day.
+                # Required.
+                # time zone are either specified elsewhere or are not significant. The date
+                # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+                # represent a year and month where the day is not significant, e.g. credit card
+                # expiration date. The year may be 0 to represent a month and day independent
+                # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+                # and `google.protobuf.Timestamp`.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
+              "month": 42, # Month of year. Must be from 1 to 12.
             },
-            "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are [google.type.Date][google.type.Date] and `google.protobuf.Timestamp`. # The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, transfers are scheduled to start at midnight UTC.
-              "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
-              "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
-              "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+            "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant # The time in UTC at which the transfer will be scheduled to start in a day.
+                # Transfers may start later than this time. If not specified, recurring and
+                # one-time transfers that are scheduled to run today will run immediately;
+                # recurring transfers that are scheduled to run on a future date will start
+                # at approximately midnight UTC on that date. Note that when configuring a
+                # transfer with the Cloud Platform Console, the transfer's start time in a
+                # day is specified in your local timezone.
+                # or are specified elsewhere. An API may choose to allow leap seconds. Related
+                # types are google.type.Date and `google.protobuf.Timestamp`.
+              "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+                  # to allow the value "24:00:00" for scenarios like business closing time.
               "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+              "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+                  # allow the value 60 if it allows leap-seconds.
+              "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
             },
-            "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once.
-              "month": 42, # Month of year of date. Must be from 1 to 12.
-              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-              "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+            "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The last day the recurring transfer will be run. If `scheduleEndDate`
+                # is the same as `scheduleStartDate`, the transfer will be executed only
+                # once.
+                # time zone are either specified elsewhere or are not significant. The date
+                # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+                # represent a year and month where the day is not significant, e.g. credit card
+                # expiration date. The year may be 0 to represent a month and day independent
+                # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+                # and `google.protobuf.Timestamp`.
+              "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                  # a year.
+              "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                  # if specifying a year/month where the day is not significant.
+              "month": 42, # Month of year. Must be from 1 to 12.
             },
           },
-          "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
+          "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+              # Required.
           "lastModificationTime": "A String", # This field cannot be changed by user requests.
           "creationTime": "A String", # This field cannot be changed by user requests.
-          "description": "A String", # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
+          "name": "A String", # A globally unique name assigned by Storage Transfer Service when the
+              # job is created. This field should be left empty in requests to create a new
+              # transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
+              # error.
         },
     ],
   }</pre>
@@ -396,142 +1026,461 @@
 
 <div class="method">
     <code class="details" id="patch">patch(jobName, body, x__xgafv=None)</code>
-  <pre>Updates a transfer job. Updating a job's transfer spec does not affect transfer operations that are running already. Updating the scheduling of a job is not allowed.
+  <pre>Updates a transfer job. Updating a job's transfer spec does not affect
+transfer operations that are running already. Updating the scheduling
+of a job is not allowed.
 
 Args:
-  jobName: string, The name of job to update. Required. (required)
+  jobName: string, The name of job to update.
+Required. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # Request passed to UpdateTransferJob.
-    "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
-    "updateTransferJobFieldMask": "A String", # The field mask of the fields in `transferJob` that are to be updated in this request. Fields in `transferJob` that can be updated are: `description`, `transferSpec`, and `status`. To update the `transferSpec` of the job, a complete transfer specification has to be provided. An incomplete specification which misses any required fields will be rejected with the error `INVALID_ARGUMENT`.
-    "transferJob": { # This resource represents the configuration of a transfer job that runs periodically. # The job to update. Required.
-        "transferSpec": { # Configuration for running a transfer. # Transfer specification. Required.
-          "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink.
-            "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to `minTimeElapsedSinceLastModification`.
-            "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. Requirements: * Each include-prefix and exclude-prefix can contain any sequence of Unicode characters, of max length 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * None of the include-prefix or the exclude-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace, i.e., no include-prefix may be a prefix of another include-prefix. * Each exclude-prefix must exclude a distinct portion of the object namespace, i.e., no exclude-prefix may be a prefix of another exclude-prefix. * If `includePrefixes` is specified, then each exclude-prefix must start with the value of a path explicitly included by `includePrefixes`. The max size of `includePrefixes` is 20.
+    "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+        # Required.
+    "updateTransferJobFieldMask": "A String", # The field mask of the fields in `transferJob` that are to be updated in
+        # this request.  Fields in `transferJob` that can be updated are:
+        # `description`, `transferSpec`, and `status`.  To update the `transferSpec`
+        # of the job, a complete transfer specification has to be provided. An
+        # incomplete specification which misses any required fields will be rejected
+        # with the error `INVALID_ARGUMENT`.
+    "transferJob": { # This resource represents the configuration of a transfer job that runs # The job to update.
+        # Required.
+          # periodically.
+        "transferSpec": { # Configuration for running a transfer. # Transfer specification.
+            # Required.
+          "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set
+              # of data source and data sink objects.  Object conditions based on
+              # objects' `lastModificationTime` do not exclude objects in a data sink.
+            "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to
+                # `minTimeElapsedSinceLastModification`.
+            "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object
+                # conditions must have names that start with one of the `includePrefixes`
+                # and that do not start with any of the `excludePrefixes`. If `includePrefixes`
+                # is not specified, all objects except those that have names starting with
+                # one of the `excludePrefixes` must satisfy the object conditions.
+                #
+                # Requirements:
+                #
+                #   * Each include-prefix and exclude-prefix can contain any sequence of
+                #     Unicode characters, of max length 1024 bytes when UTF8-encoded, and
+                #     must not contain Carriage Return or Line Feed characters.  Wildcard
+                #     matching and regular expression matching are not supported.
+                #
+                #   * Each include-prefix and exclude-prefix must omit the leading slash.
+                #     For example, to include the `requests.gz` object in a transfer from
+                #     `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
+                #     prefix as `logs/y=2015/requests.gz`.
+                #
+                #   * None of the include-prefix or the exclude-prefix values can be empty,
+                #     if specified.
+                #
+                #   * Each include-prefix must include a distinct portion of the object
+                #     namespace, i.e., no include-prefix may be a prefix of another
+                #     include-prefix.
+                #
+                #   * Each exclude-prefix must exclude a distinct portion of the object
+                #     namespace, i.e., no exclude-prefix may be a prefix of another
+                #     exclude-prefix.
+                #
+                #   * If `includePrefixes` is specified, then each exclude-prefix must start
+                #     with the value of a path explicitly included by `includePrefixes`.
+                #
+                # The max size of `includePrefixes` is 1000.
               "A String",
             ],
-            "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for `includePrefixes`. The max size of `excludePrefixes` is 20.
+            "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for
+                # `includePrefixes`.
+                #
+                # The max size of `excludePrefixes` is 1000.
               "A String",
             ],
-            "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value and `maxTimeElapsedSinceLastModification` takes the maximum possible value of Duration. Objects that satisfy the object conditions must either have a `lastModificationTime` greater or equal to `NOW` - `maxTimeElapsedSinceLastModification` and less than `NOW` - `minTimeElapsedSinceLastModification`, or not have a `lastModificationTime`.
+            "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
+                # and `maxTimeElapsedSinceLastModification` takes the maximum possible
+                # value of Duration. Objects that satisfy the object conditions
+                # must either have a `lastModificationTime` greater or equal to
+                # `NOW` - `maxTimeElapsedSinceLastModification` and less than
+                # `NOW` - `minTimeElapsedSinceLastModification`, or not have a
+                # `lastModificationTime`.
           },
-          "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data source.
-            "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+          "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data source.
+              # its `lastModificationTime` refers to the object's updated time, which changes
+              # when the content or the metadata of the object is updated.
+            "bucketName": "A String", # Google Cloud Storage bucket name (see
+                # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+                # Required.
           },
-          "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5 hash of the object An HTTP URL that points to the object to be transferred. It must be a valid URL with URL scheme HTTP or HTTPS. When an object with URL `http(s)://hostname:port/` is transferred to the data sink, the name of the object at the data sink is `/`. Length and MD5 provide the size and the base64-encoded MD5 hash of the object. If Length does not match the actual length of the object fetched, the object will not be transferred. If MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. `lastModificationTime` is not available in HttpData objects. The objects that the URL list points to must allow public access. Storage Transfer Service obeys `robots.txt` rules and requires the HTTP server to support Range requests and to return a Content-Length header in each response. # An HTTP URL data source.
-            "listUrl": "A String", # The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. Required.
+          "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over # An HTTP URL data source.
+              # HTTP.  The information of the objects to be transferred is contained in a
+              # file referenced by a URL. The first line in the file must be
+              # "TsvHttpData-1.0", which specifies the format of the file.  Subsequent lines
+              # specify the information of the list of objects, one object per list entry.
+              # Each entry has the following tab-delimited fields:
+              #
+              # * HTTP URL - The location of the object.
+              #
+              # * Length - The size of the object in bytes.
+              #
+              # * MD5 - The base64-encoded MD5 hash of the object.
+              #
+              # For an example of a valid TSV file, see
+              # [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
+              #
+              # When transferring data based on a URL list, keep the following in mind:
+              #
+              # * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
+              # to a data sink, the name of the object at the data sink is
+              # `<hostname>/<URL-path>`.
+              #
+              # * If the specified size of an object does not match the actual size of the
+              # object fetched, the object will not be transferred.
+              #
+              # * If the specified MD5 does not match the MD5 computed from the transferred
+              # bytes, the object transfer will fail. For more information, see
+              # [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
+              #
+              # * Ensure that each URL you specify is publicly accessible. For
+              # example, in Google Cloud Storage you can
+              # [share an object publicly]
+              # (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
+              # a link to it.
+              #
+              # * Storage Transfer Service obeys `robots.txt` rules and requires the source
+              # HTTP server to support `Range` requests and to return a `Content-Length`
+              # header in each response.
+              #
+              # * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
+              # to transfer.
+            "listUrl": "A String", # The URL that points to the file that stores the object list entries.
+                # This file must allow public access.  Currently, only URLs with HTTP and
+                # HTTPS schemes are supported.
+                # Required.
           },
-          "transferOptions": { # TransferOptions uses three boolean parameters to define the actions to be performed on objects in a transfer. # If the option `deleteObjectsUniqueInSink` is `true`, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink.
+          "transferOptions": { # TransferOptions uses three boolean parameters to define the actions # If the option `deleteObjectsUniqueInSink` is `true`, object conditions
+              # based on objects' `lastModificationTime` are ignored and do not exclude
+              # objects in a data source or a data sink.
+              # to be performed on objects in a transfer.
             "overwriteObjectsAlreadyExistingInSink": True or False, # Whether overwriting objects that already exist in the sink is allowed.
-            "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are transferred to the sink.
+            "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are
+                # transferred to the sink.
             "deleteObjectsUniqueInSink": True or False, # Whether objects that exist only in the sink should be deleted.
           },
-          "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data sink.
-            "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+          "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data sink.
+              # its `lastModificationTime` refers to the object's updated time, which changes
+              # when the content or the metadata of the object is updated.
+            "bucketName": "A String", # Google Cloud Storage bucket name (see
+                # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+                # Required.
           },
-          "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. In an AwsS3Data, an object's name is the S3 object's key name. # An AWS S3 data source.
-            "awsAccessKey": { # AWS access key (see [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). # AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. Required.
-              "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses. Required.
-              "accessKeyId": "A String", # AWS access key ID. Required.
+          "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. # An AWS S3 data source.
+              # In an AwsS3Data, an object's name is the S3 object's key name.
+            "awsAccessKey": { # AWS access key (see # AWS access key used to sign the API requests to the AWS S3 bucket.
+                # Permissions on the bucket must be granted to the access ID of the
+                # AWS access key.
+                # Required.
+                # [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
+              "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses.
+                  # Required.
+              "accessKeyId": "A String", # AWS access key ID.
+                  # Required.
             },
-            "bucketName": "A String", # S3 Bucket name (see [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). Required.
+            "bucketName": "A String", # S3 Bucket name (see
+                # [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
+                # Required.
           },
         },
-        "status": "A String", # Status of the job. This value MUST be specified for `CreateTransferJobRequests`. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from `ENABLED` to `DISABLED`, and an operation spawned by the transfer is running, the status change would not affect the current operation.
+        "status": "A String", # Status of the job. This value MUST be specified for
+            # `CreateTransferJobRequests`.
+            #
+            # NOTE: The effect of the new job status takes place during a subsequent job
+            # run. For example, if you change the job status from `ENABLED` to
+            # `DISABLED`, and an operation spawned by the transfer is running, the status
+            # change would not affect the current operation.
         "deletionTime": "A String", # This field cannot be changed by user requests.
-        "name": "A String", # A globally unique name assigned by Storage Transfer Service when the job is created. This field should be left empty in requests to create a new transfer job; otherwise, the requests result in an `INVALID_ARGUMENT` error.
-        "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification. Required.
-          "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The first day the recurring transfer is scheduled to run. Required.
-            "month": 42, # Month of year of date. Must be from 1 to 12.
-            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-            "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+        "description": "A String", # A description provided by the user for the job. Its max length is 1024
+            # bytes when Unicode-encoded.
+        "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification.
+            # Required.
+          "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The first day the recurring transfer is scheduled to run. If
+              # `scheduleStartDate` is in the past, the transfer will run for the first
+              # time on the following day.
+              # Required.
+              # time zone are either specified elsewhere or are not significant. The date
+              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+              # represent a year and month where the day is not significant, e.g. credit card
+              # expiration date. The year may be 0 to represent a month and day independent
+              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+              # and `google.protobuf.Timestamp`.
+            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                # a year.
+            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                # if specifying a year/month where the day is not significant.
+            "month": 42, # Month of year. Must be from 1 to 12.
           },
-          "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are [google.type.Date][google.type.Date] and `google.protobuf.Timestamp`. # The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, transfers are scheduled to start at midnight UTC.
-            "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
-            "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
-            "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+          "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant # The time in UTC at which the transfer will be scheduled to start in a day.
+              # Transfers may start later than this time. If not specified, recurring and
+              # one-time transfers that are scheduled to run today will run immediately;
+              # recurring transfers that are scheduled to run on a future date will start
+              # at approximately midnight UTC on that date. Note that when configuring a
+              # transfer with the Cloud Platform Console, the transfer's start time in a
+              # day is specified in your local timezone.
+              # or are specified elsewhere. An API may choose to allow leap seconds. Related
+              # types are google.type.Date and `google.protobuf.Timestamp`.
+            "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+                # to allow the value "24:00:00" for scenarios like business closing time.
             "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+                # allow the value 60 if it allows leap-seconds.
+            "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
           },
-          "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once.
-            "month": 42, # Month of year of date. Must be from 1 to 12.
-            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-            "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+          "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The last day the recurring transfer will be run. If `scheduleEndDate`
+              # is the same as `scheduleStartDate`, the transfer will be executed only
+              # once.
+              # time zone are either specified elsewhere or are not significant. The date
+              # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+              # represent a year and month where the day is not significant, e.g. credit card
+              # expiration date. The year may be 0 to represent a month and day independent
+              # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+              # and `google.protobuf.Timestamp`.
+            "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+                # a year.
+            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+                # if specifying a year/month where the day is not significant.
+            "month": 42, # Month of year. Must be from 1 to 12.
           },
         },
-        "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
+        "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+            # Required.
         "lastModificationTime": "A String", # This field cannot be changed by user requests.
         "creationTime": "A String", # This field cannot be changed by user requests.
-        "description": "A String", # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
+        "name": "A String", # A globally unique name assigned by Storage Transfer Service when the
+            # job is created. This field should be left empty in requests to create a new
+            # transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
+            # error.
       },
   }
 
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents the configuration of a transfer job that runs periodically.
-      "transferSpec": { # Configuration for running a transfer. # Transfer specification. Required.
-        "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink.
-          "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to `minTimeElapsedSinceLastModification`.
-          "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. Requirements: * Each include-prefix and exclude-prefix can contain any sequence of Unicode characters, of max length 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * None of the include-prefix or the exclude-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace, i.e., no include-prefix may be a prefix of another include-prefix. * Each exclude-prefix must exclude a distinct portion of the object namespace, i.e., no exclude-prefix may be a prefix of another exclude-prefix. * If `includePrefixes` is specified, then each exclude-prefix must start with the value of a path explicitly included by `includePrefixes`. The max size of `includePrefixes` is 20.
+    { # This resource represents the configuration of a transfer job that runs
+        # periodically.
+      "transferSpec": { # Configuration for running a transfer. # Transfer specification.
+          # Required.
+        "objectConditions": { # Conditions that determine which objects will be transferred. # Only objects that satisfy these object conditions are included in the set
+            # of data source and data sink objects.  Object conditions based on
+            # objects' `lastModificationTime` do not exclude objects in a data sink.
+          "maxTimeElapsedSinceLastModification": "A String", # `maxTimeElapsedSinceLastModification` is the complement to
+              # `minTimeElapsedSinceLastModification`.
+          "includePrefixes": [ # If `includePrefixes` is specified, objects that satisfy the object
+              # conditions must have names that start with one of the `includePrefixes`
+              # and that do not start with any of the `excludePrefixes`. If `includePrefixes`
+              # is not specified, all objects except those that have names starting with
+              # one of the `excludePrefixes` must satisfy the object conditions.
+              #
+              # Requirements:
+              #
+              #   * Each include-prefix and exclude-prefix can contain any sequence of
+              #     Unicode characters, of max length 1024 bytes when UTF8-encoded, and
+              #     must not contain Carriage Return or Line Feed characters.  Wildcard
+              #     matching and regular expression matching are not supported.
+              #
+              #   * Each include-prefix and exclude-prefix must omit the leading slash.
+              #     For example, to include the `requests.gz` object in a transfer from
+              #     `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
+              #     prefix as `logs/y=2015/requests.gz`.
+              #
+              #   * None of the include-prefix or the exclude-prefix values can be empty,
+              #     if specified.
+              #
+              #   * Each include-prefix must include a distinct portion of the object
+              #     namespace, i.e., no include-prefix may be a prefix of another
+              #     include-prefix.
+              #
+              #   * Each exclude-prefix must exclude a distinct portion of the object
+              #     namespace, i.e., no exclude-prefix may be a prefix of another
+              #     exclude-prefix.
+              #
+              #   * If `includePrefixes` is specified, then each exclude-prefix must start
+              #     with the value of a path explicitly included by `includePrefixes`.
+              #
+              # The max size of `includePrefixes` is 1000.
             "A String",
           ],
-          "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for `includePrefixes`. The max size of `excludePrefixes` is 20.
+          "excludePrefixes": [ # `excludePrefixes` must follow the requirements described for
+              # `includePrefixes`.
+              #
+              # The max size of `excludePrefixes` is 1000.
             "A String",
           ],
-          "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value and `maxTimeElapsedSinceLastModification` takes the maximum possible value of Duration. Objects that satisfy the object conditions must either have a `lastModificationTime` greater or equal to `NOW` - `maxTimeElapsedSinceLastModification` and less than `NOW` - `minTimeElapsedSinceLastModification`, or not have a `lastModificationTime`.
+          "minTimeElapsedSinceLastModification": "A String", # If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
+              # and `maxTimeElapsedSinceLastModification` takes the maximum possible
+              # value of Duration. Objects that satisfy the object conditions
+              # must either have a `lastModificationTime` greater or equal to
+              # `NOW` - `maxTimeElapsedSinceLastModification` and less than
+              # `NOW` - `minTimeElapsedSinceLastModification`, or not have a
+              # `lastModificationTime`.
         },
-        "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data source.
-          "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+        "gcsDataSource": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data source.
+            # its `lastModificationTime` refers to the object's updated time, which changes
+            # when the content or the metadata of the object is updated.
+          "bucketName": "A String", # Google Cloud Storage bucket name (see
+              # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              # Required.
         },
-        "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5 hash of the object An HTTP URL that points to the object to be transferred. It must be a valid URL with URL scheme HTTP or HTTPS. When an object with URL `http(s)://hostname:port/` is transferred to the data sink, the name of the object at the data sink is `/`. Length and MD5 provide the size and the base64-encoded MD5 hash of the object. If Length does not match the actual length of the object fetched, the object will not be transferred. If MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. `lastModificationTime` is not available in HttpData objects. The objects that the URL list points to must allow public access. Storage Transfer Service obeys `robots.txt` rules and requires the HTTP server to support Range requests and to return a Content-Length header in each response. # An HTTP URL data source.
-          "listUrl": "A String", # The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported. Required.
+        "httpDataSource": { # An HttpData specifies a list of objects on the web to be transferred over # An HTTP URL data source.
+            # HTTP.  The information of the objects to be transferred is contained in a
+            # file referenced by a URL. The first line in the file must be
+            # "TsvHttpData-1.0", which specifies the format of the file.  Subsequent lines
+            # specify the information of the list of objects, one object per list entry.
+            # Each entry has the following tab-delimited fields:
+            #
+            # * HTTP URL - The location of the object.
+            #
+            # * Length - The size of the object in bytes.
+            #
+            # * MD5 - The base64-encoded MD5 hash of the object.
+            #
+            # For an example of a valid TSV file, see
+            # [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
+            #
+            # When transferring data based on a URL list, keep the following in mind:
+            #
+            # * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
+            # to a data sink, the name of the object at the data sink is
+            # `<hostname>/<URL-path>`.
+            #
+            # * If the specified size of an object does not match the actual size of the
+            # object fetched, the object will not be transferred.
+            #
+            # * If the specified MD5 does not match the MD5 computed from the transferred
+            # bytes, the object transfer will fail. For more information, see
+            # [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
+            #
+            # * Ensure that each URL you specify is publicly accessible. For
+            # example, in Google Cloud Storage you can
+            # [share an object publicly]
+            # (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
+            # a link to it.
+            #
+            # * Storage Transfer Service obeys `robots.txt` rules and requires the source
+            # HTTP server to support `Range` requests and to return a `Content-Length`
+            # header in each response.
+            #
+            # * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
+            # to transfer.
+          "listUrl": "A String", # The URL that points to the file that stores the object list entries.
+              # This file must allow public access.  Currently, only URLs with HTTP and
+              # HTTPS schemes are supported.
+              # Required.
         },
-        "transferOptions": { # TransferOptions uses three boolean parameters to define the actions to be performed on objects in a transfer. # If the option `deleteObjectsUniqueInSink` is `true`, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink.
+        "transferOptions": { # TransferOptions uses three boolean parameters to define the actions # If the option `deleteObjectsUniqueInSink` is `true`, object conditions
+            # based on objects' `lastModificationTime` are ignored and do not exclude
+            # objects in a data source or a data sink.
+            # to be performed on objects in a transfer.
           "overwriteObjectsAlreadyExistingInSink": True or False, # Whether overwriting objects that already exist in the sink is allowed.
-          "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are transferred to the sink.
+          "deleteObjectsFromSourceAfterTransfer": True or False, # Whether objects should be deleted from the source after they are
+              # transferred to the sink.
           "deleteObjectsUniqueInSink": True or False, # Whether objects that exist only in the sink should be deleted.
         },
-        "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and its `lastModificationTime` refers to the object's updated time, which changes when the content or the metadata of the object is updated. # A Google Cloud Storage data sink.
-          "bucketName": "A String", # Google Cloud Storage bucket name (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Required.
+        "gcsDataSink": { # In a GcsData, an object's name is the Google Cloud Storage object's name and # A Google Cloud Storage data sink.
+            # its `lastModificationTime` refers to the object's updated time, which changes
+            # when the content or the metadata of the object is updated.
+          "bucketName": "A String", # Google Cloud Storage bucket name (see
+              # [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
+              # Required.
         },
-        "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. In an AwsS3Data, an object's name is the S3 object's key name. # An AWS S3 data source.
-          "awsAccessKey": { # AWS access key (see [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)). # AWS access key used to sign the API requests to the AWS S3 bucket. Permissions on the bucket must be granted to the access ID of the AWS access key. Required.
-            "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses. Required.
-            "accessKeyId": "A String", # AWS access key ID. Required.
+        "awsS3DataSource": { # An AwsS3Data can be a data source, but not a data sink. # An AWS S3 data source.
+            # In an AwsS3Data, an object's name is the S3 object's key name.
+          "awsAccessKey": { # AWS access key (see # AWS access key used to sign the API requests to the AWS S3 bucket.
+              # Permissions on the bucket must be granted to the access ID of the
+              # AWS access key.
+              # Required.
+              # [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
+            "secretAccessKey": "A String", # AWS secret access key. This field is not returned in RPC responses.
+                # Required.
+            "accessKeyId": "A String", # AWS access key ID.
+                # Required.
           },
-          "bucketName": "A String", # S3 Bucket name (see [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)). Required.
+          "bucketName": "A String", # S3 Bucket name (see
+              # [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
+              # Required.
         },
       },
-      "status": "A String", # Status of the job. This value MUST be specified for `CreateTransferJobRequests`. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from `ENABLED` to `DISABLED`, and an operation spawned by the transfer is running, the status change would not affect the current operation.
+      "status": "A String", # Status of the job. This value MUST be specified for
+          # `CreateTransferJobRequests`.
+          #
+          # NOTE: The effect of the new job status takes place during a subsequent job
+          # run. For example, if you change the job status from `ENABLED` to
+          # `DISABLED`, and an operation spawned by the transfer is running, the status
+          # change would not affect the current operation.
       "deletionTime": "A String", # This field cannot be changed by user requests.
-      "name": "A String", # A globally unique name assigned by Storage Transfer Service when the job is created. This field should be left empty in requests to create a new transfer job; otherwise, the requests result in an `INVALID_ARGUMENT` error.
-      "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification. Required.
-        "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The first day the recurring transfer is scheduled to run. Required.
-          "month": 42, # Month of year of date. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-          "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+      "description": "A String", # A description provided by the user for the job. Its max length is 1024
+          # bytes when Unicode-encoded.
+      "schedule": { # Transfers can be scheduled to recur or to run just once. # Schedule specification.
+          # Required.
+        "scheduleStartDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The first day the recurring transfer is scheduled to run. If
+            # `scheduleStartDate` is in the past, the transfer will run for the first
+            # time on the following day.
+            # Required.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
-        "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are [google.type.Date][google.type.Date] and `google.protobuf.Timestamp`. # The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, transfers are scheduled to start at midnight UTC.
-          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
-          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
-          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
+        "startTimeOfDay": { # Represents a time of day. The date and time zone are either not significant # The time in UTC at which the transfer will be scheduled to start in a day.
+            # Transfers may start later than this time. If not specified, recurring and
+            # one-time transfers that are scheduled to run today will run immediately;
+            # recurring transfers that are scheduled to run on a future date will start
+            # at approximately midnight UTC on that date. Note that when configuring a
+            # transfer with the Cloud Platform Console, the transfer's start time in a
+            # day is specified in your local timezone.
+            # or are specified elsewhere. An API may choose to allow leap seconds. Related
+            # types are google.type.Date and `google.protobuf.Timestamp`.
+          "hours": 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
+              # to allow the value "24:00:00" for scenarios like business closing time.
           "nanos": 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+          "seconds": 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
+              # allow the value 60 if it allows leap-seconds.
+          "minutes": 42, # Minutes of hour of day. Must be from 0 to 59.
         },
-        "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a year and month where the day is not significant, e.g. credit card expiration date. The year may be 0 to represent a month and day independent of year, e.g. anniversary date. Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and `google.protobuf.Timestamp`. # The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once.
-          "month": 42, # Month of year of date. Must be from 1 to 12.
-          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not sigificant.
-          "year": 42, # Year of date. Must be from 1 to 9,999, or 0 if specifying a date without a year.
+        "scheduleEndDate": { # Represents a whole calendar date, e.g. date of birth. The time of day and # The last day the recurring transfer will be run. If `scheduleEndDate`
+            # is the same as `scheduleStartDate`, the transfer will be executed only
+            # once.
+            # time zone are either specified elsewhere or are not significant. The date
+            # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
+            # represent a year and month where the day is not significant, e.g. credit card
+            # expiration date. The year may be 0 to represent a month and day independent
+            # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
+            # and `google.protobuf.Timestamp`.
+          "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
+              # a year.
+          "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
+              # if specifying a year/month where the day is not significant.
+          "month": 42, # Month of year. Must be from 1 to 12.
         },
       },
-      "projectId": "A String", # The ID of the Google Developers Console project that owns the job. Required.
+      "projectId": "A String", # The ID of the Google Cloud Platform Console project that owns the job.
+          # Required.
       "lastModificationTime": "A String", # This field cannot be changed by user requests.
       "creationTime": "A String", # This field cannot be changed by user requests.
-      "description": "A String", # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
+      "name": "A String", # A globally unique name assigned by Storage Transfer Service when the
+          # job is created. This field should be left empty in requests to create a new
+          # transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
+          # error.
     }</pre>
 </div>
 
diff --git a/docs/dyn/storagetransfer_v1.transferOperations.html b/docs/dyn/storagetransfer_v1.transferOperations.html
index 3752f00..a02bc9b 100644
--- a/docs/dyn/storagetransfer_v1.transferOperations.html
+++ b/docs/dyn/storagetransfer_v1.transferOperations.html
@@ -82,10 +82,10 @@
 <p class="firstline">This method is not supported and the server returns `UNIMPLEMENTED`.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="firstline">Gets the latest state of a long-running operation.  Clients can use this</p>
 <p class="toc_element">
   <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.</p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the</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>
@@ -103,11 +103,22 @@
 Args:
   name: string, The name of the operation resource to be cancelled. (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 `{}`.
+    { # 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>
 
@@ -118,83 +129,239 @@
 Args:
   name: string, The name of the operation resource to be deleted. (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 `{}`.
+    { # 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, x__xgafv=None)</code>
-  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+  <pre>Gets the latest state of a long-running operation.  Clients can use this
+method to poll the operation result at intervals as recommended by the API
+service.
 
 Args:
   name: string, The name of the operation resource. (required)
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # This resource represents a long-running operation that is the result of a network API call.
-    "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
-      "a_key": "", # Properties of the object. Contains field @ype with type URL.
-    },
-    "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
-      "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
-      "code": 42, # The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
-      "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
         {
-          "a_key": "", # Properties of the object. Contains field @ype with type URL.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       ],
     },
-    "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed and the `result` is available.
-    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping above, the `name` should have the format of `operations/some/unique/name`.
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `transferOperations/some/unique/name`.
     "metadata": { # Represents the transfer operation object.
-      "a_key": "", # Properties of the object. Contains field @ype with type URL.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding below allows API services to override the binding to use different resource name schemes, such as `users/*/operations`.
+  <pre>Lists operations that match the specified filter in the request. If the
+server doesn't support this method, it returns `UNIMPLEMENTED`.
+
+NOTE: the `name` binding allows API services to override the binding
+to use different resource name schemes, such as `users/*/operations`. To
+override the binding, API services can add a binding such as
+`"/v1/{name=users/*}/operations"` to their service configuration.
+For backwards compatibility, the default name includes the operations
+collection id, however overriding users must ensure the name binding
+is the parent resource, without the operations collection id.
 
 Args:
   name: string, The value `transferOperations`. (required)
-  pageSize: integer, The standard list page size.
-  filter: string, The standard list filter.
-  pageToken: string, The standard list page token.
+  pageSize: integer, The list page size. The max allowed value is 256.
+  filter: string, A list of query parameters specified as JSON text in the form of {\"project_id\" : \"my_project_id\", \"job_names\" : [\"jobid1\", \"jobid2\",...], \"operation_names\" : [\"opid1\", \"opid2\",...], \"transfer_statuses\":[\"status1\", \"status2\",...]}. Since `job_names`, `operation_names`, and `transfer_statuses` support multiple values, they must be specified with array notation. `job_names`, `operation_names`, and `transfer_statuses` are optional.
+  pageToken: string, The list page token.
   x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
 
-    { # The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
+    { # The response message for Operations.ListOperations.
+    "nextPageToken": "A String", # The standard List next-page token.
     "operations": [ # A list of operations that matches the specified filter in the request.
-      { # This resource represents a long-running operation that is the result of a network API call.
-        "response": { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
-          "a_key": "", # Properties of the object. Contains field @ype with type URL.
-        },
-        "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be: - Simple to use and understand for most users - Flexible enough to meet unexpected needs # Overview The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions. # Language mapping The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C. # Other uses The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments. Example uses of this error model include: - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors. - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose. - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response. - Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message. - Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons. # The error result of the operation in case of failure.
-          "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
-          "code": 42, # The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
-          "details": [ # A list of messages that carry the error details. There will be a common set of message types for APIs to use.
+      { # This resource represents a long-running operation that is the result of a
+          # network API call.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` that can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
             {
-              "a_key": "", # Properties of the object. Contains field @ype with type URL.
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           ],
         },
-        "done": True or False, # If the value is `false`, it means the operation is still in progress. If true, the operation is completed and the `result` is available.
-        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping above, the `name` should have the format of `operations/some/unique/name`.
+        "done": True or False, # If the value is `false`, it means the operation is still in progress.
+            # If true, the operation is completed, and either `error` or `response` is
+            # available.
+        "response": { # The normal response of the operation in case of success.  If the original
+            # method returns no data on success, such as `Delete`, the response is
+            # `google.protobuf.Empty`.  If the original method is standard
+            # `Get`/`Create`/`Update`, the response should be the resource.  For other
+            # methods, the response should have the type `XxxResponse`, where `Xxx`
+            # is the original method name.  For example, if the original method name
+            # is `TakeSnapshot()`, the inferred response type is
+            # `TakeSnapshotResponse`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+        "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should have the format of `transferOperations/some/unique/name`.
         "metadata": { # Represents the transfer operation object.
-          "a_key": "", # Properties of the object. Contains field @ype with type URL.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
@@ -217,7 +384,8 @@
   <pre>Pauses a transfer operation.
 
 Args:
-  name: string, The name of the transfer operation. Required. (required)
+  name: string, The name of the transfer operation.
+Required. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -225,11 +393,22 @@
   }
 
   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 `{}`.
+    { # 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>
 
@@ -238,7 +417,8 @@
   <pre>Resumes a transfer operation that is paused.
 
 Args:
-  name: string, The name of the transfer operation. Required. (required)
+  name: string, The name of the transfer operation.
+Required. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -246,11 +426,22 @@
   }
 
   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 `{}`.
+    { # 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>
 
diff --git a/docs/dyn/storagetransfer_v1.v1.html b/docs/dyn/storagetransfer_v1.v1.html
deleted file mode 100644
index 5fe0b25..0000000
--- a/docs/dyn/storagetransfer_v1.v1.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<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="storagetransfer_v1.html">Google Storage Transfer API</a> . <a href="storagetransfer_v1.v1.html">v1</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#getGoogleServiceAccount">getGoogleServiceAccount(projectId=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the Google service account that is used by Storage Transfer Service to access buckets in the project where transfers run or in other projects. Each Google service account is associated with one Google Developers Console project. Users should add this service account to the Google Cloud Storage bucket ACLs to grant access to Storage Transfer Service. This service account is created and owned by Storage Transfer Service and can only be used by Storage Transfer Service.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="getGoogleServiceAccount">getGoogleServiceAccount(projectId=None, x__xgafv=None)</code>
-  <pre>Returns the Google service account that is used by Storage Transfer Service to access buckets in the project where transfers run or in other projects. Each Google service account is associated with one Google Developers Console project. Users should add this service account to the Google Cloud Storage bucket ACLs to grant access to Storage Transfer Service. This service account is created and owned by Storage Transfer Service and can only be used by Storage Transfer Service.
-
-Args:
-  projectId: string, The ID of the Google Developers Console project that the Google service account is associated with. Required.
-  x__xgafv: string, V1 error format.
-
-Returns:
-  An object of the form:
-
-    { # Google service account
-    "accountEmail": "A String", # Required.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/surveys_v2.surveys.html b/docs/dyn/surveys_v2.surveys.html
index 7d259bb..a43fab3 100644
--- a/docs/dyn/surveys_v2.surveys.html
+++ b/docs/dyn/surveys_v2.surveys.html
@@ -456,74 +456,6 @@
   An object of the form:
 
     {
-    "resource": { # Representation of an individual survey object. # Survey object containing the specification of the started Survey.
-        "owners": [ # List of email addresses for survey owners. Must contain at least the address of the user making the API call.
-          "A String",
-        ],
-        "description": "A String", # Text description of the survey.
-        "title": "A String", # Optional name that will be given to the survey.
-        "customerData": "A String", # Additional information to store on behalf of the API consumer and associate with this question. This binary blob is treated as opaque. This field is limited to 64K bytes.
-        "state": "A String", # State that the survey is in.
-        "audience": { # Specifications for the target audience of a survey run through the API. # Targeting-criteria message containing demographic information
-          "countrySubdivision": "A String", # Country subdivision (states/provinces/etc) that surveys should be targeted to. For all countries except GB, ISO-3166-2 subdivision code is required (eg. 'US-OH' for Ohio, United States). For GB, NUTS 1 statistical region codes for the United Kingdom is required (eg. 'UK-UKC' for North East England).
-          "mobileAppPanelId": "A String", # Key for predefined panel that causes survey to be sent to a predefined set of Opinion Rewards App users. You must set PopulationSource to ANDROID_APP_PANEL to use this field.
-          "country": "A String", # Required country code that surveys should be targeted to. Accepts standard ISO 3166-1 2 character language codes. For instance, 'US' for the United States, and 'GB' for the United Kingdom.
-          "ages": [ # Optional list of age buckets to target. Supported age buckets are: ['18-24', '25-34', '35-44', '45-54', '55-64', '65+']
-            "A String",
-          ],
-          "populationSource": "A String", # Online population source where the respondents are sampled from.
-          "languages": [ # Language code that surveys should be targeted to. For instance, 'en-US'. Surveys may target bilingual users by specifying a list of language codes (for example, 'de' and 'en-US'). In that case, all languages will be used for targeting users but the survey content (which is displayed) must match the first language listed. Accepts standard BCP47 language codes. See specification.
-            "A String",
-          ],
-          "gender": "A String", # Optional gender to target.
-        },
-        "cost": { # Message defining the cost to run a given survey through API. # Cost to run the survey and collect the necessary number of responses.
-          "nanos": "A String", # Cost of survey in nano units of the given currency. DEPRECATED in favor of cost_per_response_nanos
-          "currencyCode": "A String", # Currency code that the cost is given in.
-          "costPerResponseNanos": "A String", # Cost per survey response in nano units of the given currency. To get the total cost for a survey, multiply this value by wanted_response_count.
-          "maxCostPerResponseNanos": "A String", # Threshold to start a survey automatically if the quoted price is at most this value. When a survey has a Screener (threshold) question, it must go through an incidence pricing test to determine the final cost per response. Typically you will have to make a followup call to start the survey giving the final computed cost per response. If the survey has no threshold_answers, setting this property will return an error. By specifying this property, you indicate the max price per response you are willing to pay in advance of the incidence test. If the price turns out to be lower than the specified value, the survey will begin immediately and you will be charged at the rate determined by the incidence pricing test. If the price turns out to be greater than the specified value the survey will not be started and you will instead be notified what price was determined by the incidence test. At that point, you must raise the value of this property to be greater than or equal to that cost before attempting to start the survey again. This will immediately start the survey as long the incidence test was run within the last 21 days.
-        },
-        "surveyUrlId": "A String", # Unique survey ID, that is viewable in the URL of the Survey Creator UI
-        "questions": [ # List of questions defining the survey.
-          { # Message defining the question specifications.
-            "highValueLabel": "A String", # For rating questions, the text for the higher end of the scale, such as 'Best'. For numeric questions, a string representing a floating-point that is the maximum allowed number for a response.
-            "mustPickSuggestion": True or False, # Option to force the user to pick one of the open text suggestions. This requires that suggestions are provided for this question.
-            "thresholdAnswers": [ # The threshold/screener answer options, which will screen a user into the rest of the survey. These will be a subset of the answer option strings.
-              "A String",
-            ],
-            "sentimentText": "A String", # Used by the Rating Scale with Text question type. This text goes along with the question field that is presented to the respondent, and is the actual text that the respondent is asked to rate.
-            "question": "A String", # Required question text shown to the respondent.
-            "numStars": "A String", # Number of stars to use for ratings questions.
-            "lowValueLabel": "A String", # For rating questions, the text for the lower end of the scale, such as 'Worst'. For numeric questions, a string representing a floating-point that is the minimum allowed number for a response.
-            "videoId": "A String", # The YouTube video ID to be show in video questions.
-            "answers": [ # Required list of answer options for a question.
-              "A String",
-            ],
-            "lastAnswerPositionPinned": True or False, # Currently only support pinning an answer option to the last position.
-            "hasOther": True or False, # Option to allow open-ended text box for Single Answer and Multiple Answer question types. This can be used with SINGLE_ANSWER, SINGLE_ANSWER_WITH_IMAGE, MULTIPLE_ANSWERS, and MULTIPLE_ANSWERS_WITH_IMAGE question types.
-            "unitOfMeasurementLabel": "A String", # Optional unit of measurement for display (for example: hours, people, miles).
-            "images": [
-              { # Container object for image data and alt_text.
-                "url": "A String", # The read-only URL for the hosted images.
-                "altText": "A String", # The alt text property used in image tags is required for all images.
-                "data": "A String", # Inline jpeg, gif, tiff, bmp, or png image raw bytes for an image question types.
-              },
-            ],
-            "singleLineResponse": True or False, # Option to allow multiple line open text responses instead of a single line response. Note that we don't show auto-complete suggestions with multiple line responses.
-            "openTextSuggestions": [ # A list of suggested answers for open text question auto-complete. This is only valid if single_line_response is true.
-              "A String",
-            ],
-            "type": "A String", # Required field defining the question type. For details about configuring different type of questions, consult the question configuration guide.
-            "answerOrder": "A String", # The randomization option for multiple choice and multi-select questions. If not specified, this option defaults to randomize.
-            "openTextPlaceholder": "A String", # Placeholder text for an open text question.
-          },
-        ],
-        "wantedResponseCount": 42, # Number of responses desired for the survey.
-        "rejectionReason": { # Message representing why the survey was rejected from review, if it was. # Reason for the survey being rejected. Only present if the survey state is rejected.
-          "explanation": "A String", # A human-readable explanation of what was wrong with the survey.
-          "type": "A String", # Which category of rejection this was. See the  Google Surveys Help Center for additional details on each category.
-        },
-      },
     "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
   }</pre>
 </div>
@@ -539,74 +471,6 @@
   An object of the form:
 
     {
-    "resource": { # Representation of an individual survey object. # Survey object containing the specification of the stopped Survey.
-        "owners": [ # List of email addresses for survey owners. Must contain at least the address of the user making the API call.
-          "A String",
-        ],
-        "description": "A String", # Text description of the survey.
-        "title": "A String", # Optional name that will be given to the survey.
-        "customerData": "A String", # Additional information to store on behalf of the API consumer and associate with this question. This binary blob is treated as opaque. This field is limited to 64K bytes.
-        "state": "A String", # State that the survey is in.
-        "audience": { # Specifications for the target audience of a survey run through the API. # Targeting-criteria message containing demographic information
-          "countrySubdivision": "A String", # Country subdivision (states/provinces/etc) that surveys should be targeted to. For all countries except GB, ISO-3166-2 subdivision code is required (eg. 'US-OH' for Ohio, United States). For GB, NUTS 1 statistical region codes for the United Kingdom is required (eg. 'UK-UKC' for North East England).
-          "mobileAppPanelId": "A String", # Key for predefined panel that causes survey to be sent to a predefined set of Opinion Rewards App users. You must set PopulationSource to ANDROID_APP_PANEL to use this field.
-          "country": "A String", # Required country code that surveys should be targeted to. Accepts standard ISO 3166-1 2 character language codes. For instance, 'US' for the United States, and 'GB' for the United Kingdom.
-          "ages": [ # Optional list of age buckets to target. Supported age buckets are: ['18-24', '25-34', '35-44', '45-54', '55-64', '65+']
-            "A String",
-          ],
-          "populationSource": "A String", # Online population source where the respondents are sampled from.
-          "languages": [ # Language code that surveys should be targeted to. For instance, 'en-US'. Surveys may target bilingual users by specifying a list of language codes (for example, 'de' and 'en-US'). In that case, all languages will be used for targeting users but the survey content (which is displayed) must match the first language listed. Accepts standard BCP47 language codes. See specification.
-            "A String",
-          ],
-          "gender": "A String", # Optional gender to target.
-        },
-        "cost": { # Message defining the cost to run a given survey through API. # Cost to run the survey and collect the necessary number of responses.
-          "nanos": "A String", # Cost of survey in nano units of the given currency. DEPRECATED in favor of cost_per_response_nanos
-          "currencyCode": "A String", # Currency code that the cost is given in.
-          "costPerResponseNanos": "A String", # Cost per survey response in nano units of the given currency. To get the total cost for a survey, multiply this value by wanted_response_count.
-          "maxCostPerResponseNanos": "A String", # Threshold to start a survey automatically if the quoted price is at most this value. When a survey has a Screener (threshold) question, it must go through an incidence pricing test to determine the final cost per response. Typically you will have to make a followup call to start the survey giving the final computed cost per response. If the survey has no threshold_answers, setting this property will return an error. By specifying this property, you indicate the max price per response you are willing to pay in advance of the incidence test. If the price turns out to be lower than the specified value, the survey will begin immediately and you will be charged at the rate determined by the incidence pricing test. If the price turns out to be greater than the specified value the survey will not be started and you will instead be notified what price was determined by the incidence test. At that point, you must raise the value of this property to be greater than or equal to that cost before attempting to start the survey again. This will immediately start the survey as long the incidence test was run within the last 21 days.
-        },
-        "surveyUrlId": "A String", # Unique survey ID, that is viewable in the URL of the Survey Creator UI
-        "questions": [ # List of questions defining the survey.
-          { # Message defining the question specifications.
-            "highValueLabel": "A String", # For rating questions, the text for the higher end of the scale, such as 'Best'. For numeric questions, a string representing a floating-point that is the maximum allowed number for a response.
-            "mustPickSuggestion": True or False, # Option to force the user to pick one of the open text suggestions. This requires that suggestions are provided for this question.
-            "thresholdAnswers": [ # The threshold/screener answer options, which will screen a user into the rest of the survey. These will be a subset of the answer option strings.
-              "A String",
-            ],
-            "sentimentText": "A String", # Used by the Rating Scale with Text question type. This text goes along with the question field that is presented to the respondent, and is the actual text that the respondent is asked to rate.
-            "question": "A String", # Required question text shown to the respondent.
-            "numStars": "A String", # Number of stars to use for ratings questions.
-            "lowValueLabel": "A String", # For rating questions, the text for the lower end of the scale, such as 'Worst'. For numeric questions, a string representing a floating-point that is the minimum allowed number for a response.
-            "videoId": "A String", # The YouTube video ID to be show in video questions.
-            "answers": [ # Required list of answer options for a question.
-              "A String",
-            ],
-            "lastAnswerPositionPinned": True or False, # Currently only support pinning an answer option to the last position.
-            "hasOther": True or False, # Option to allow open-ended text box for Single Answer and Multiple Answer question types. This can be used with SINGLE_ANSWER, SINGLE_ANSWER_WITH_IMAGE, MULTIPLE_ANSWERS, and MULTIPLE_ANSWERS_WITH_IMAGE question types.
-            "unitOfMeasurementLabel": "A String", # Optional unit of measurement for display (for example: hours, people, miles).
-            "images": [
-              { # Container object for image data and alt_text.
-                "url": "A String", # The read-only URL for the hosted images.
-                "altText": "A String", # The alt text property used in image tags is required for all images.
-                "data": "A String", # Inline jpeg, gif, tiff, bmp, or png image raw bytes for an image question types.
-              },
-            ],
-            "singleLineResponse": True or False, # Option to allow multiple line open text responses instead of a single line response. Note that we don't show auto-complete suggestions with multiple line responses.
-            "openTextSuggestions": [ # A list of suggested answers for open text question auto-complete. This is only valid if single_line_response is true.
-              "A String",
-            ],
-            "type": "A String", # Required field defining the question type. For details about configuring different type of questions, consult the question configuration guide.
-            "answerOrder": "A String", # The randomization option for multiple choice and multi-select questions. If not specified, this option defaults to randomize.
-            "openTextPlaceholder": "A String", # Placeholder text for an open text question.
-          },
-        ],
-        "wantedResponseCount": 42, # Number of responses desired for the survey.
-        "rejectionReason": { # Message representing why the survey was rejected from review, if it was. # Reason for the survey being rejected. Only present if the survey state is rejected.
-          "explanation": "A String", # A human-readable explanation of what was wrong with the survey.
-          "type": "A String", # Which category of rejection this was. See the  Google Surveys Help Center for additional details on each category.
-        },
-      },
     "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
   }</pre>
 </div>
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.environments.html b/docs/dyn/tagmanager_v2.accounts.containers.environments.html
new file mode 100644
index 0000000..8663ed7
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.environments.html
@@ -0,0 +1,801 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.environments.html">environments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a GTM Environment.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a GTM Environment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a GTM Environment.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all GTM Environments of a GTM Container.</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>
+<p class="toc_element">
+  <code><a href="#patch">patch(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Environment. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#reauthorize">reauthorize(path, body)</a></code></p>
+<p class="firstline">Re-generates the authorization code for a GTM Environment.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Environment.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a GTM Environment.
+
+Args:
+  parent: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+  "authorizationCode": "A String", # The environment authorization code.
+  "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+  "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+  "url": "A String", # Default preview page url for the environment.
+  "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+  "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+  "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "containerVersionId": "A String", # Represents a link to a container version.
+  "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+  "path": "A String", # GTM Environment's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "type": "A String", # The type of this environment.
+  "containerId": "A String", # GTM Container ID.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+    "authorizationCode": "A String", # The environment authorization code.
+    "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+    "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+    "url": "A String", # Default preview page url for the environment.
+    "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+    "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+    "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # Represents a link to a container version.
+    "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+    "path": "A String", # GTM Environment's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "type": "A String", # The type of this environment.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a GTM Environment.
+
+Args:
+  path: string, GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a GTM Environment.
+
+Args:
+  path: string, GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+    "authorizationCode": "A String", # The environment authorization code.
+    "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+    "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+    "url": "A String", # Default preview page url for the environment.
+    "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+    "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+    "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # Represents a link to a container version.
+    "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+    "path": "A String", # GTM Environment's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "type": "A String", # The type of this environment.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all GTM Environments of a GTM Container.
+
+Args:
+  parent: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List Environments Response.
+    "environment": [ # All Environments of a GTM Container.
+      { # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+        "authorizationCode": "A String", # The environment authorization code.
+        "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+        "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+        "url": "A String", # Default preview page url for the environment.
+        "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+        "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+        "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "containerVersionId": "A String", # Represents a link to a container version.
+        "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+        "path": "A String", # GTM Environment's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # The type of this environment.
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+  }</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>
+
+<div class="method">
+    <code class="details" id="patch">patch(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Environment. This method supports patch semantics.
+
+Args:
+  path: string, GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+  "authorizationCode": "A String", # The environment authorization code.
+  "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+  "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+  "url": "A String", # Default preview page url for the environment.
+  "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+  "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+  "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "containerVersionId": "A String", # Represents a link to a container version.
+  "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+  "path": "A String", # GTM Environment's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "type": "A String", # The type of this environment.
+  "containerId": "A String", # GTM Container ID.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the environment in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+    "authorizationCode": "A String", # The environment authorization code.
+    "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+    "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+    "url": "A String", # Default preview page url for the environment.
+    "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+    "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+    "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # Represents a link to a container version.
+    "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+    "path": "A String", # GTM Environment's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "type": "A String", # The type of this environment.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="reauthorize">reauthorize(path, body)</code>
+  <pre>Re-generates the authorization code for a GTM Environment.
+
+Args:
+  path: string, GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+  "authorizationCode": "A String", # The environment authorization code.
+  "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+  "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+  "url": "A String", # Default preview page url for the environment.
+  "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+  "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+  "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "containerVersionId": "A String", # Represents a link to a container version.
+  "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+  "path": "A String", # GTM Environment's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "type": "A String", # The type of this environment.
+  "containerId": "A String", # GTM Container ID.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+    "authorizationCode": "A String", # The environment authorization code.
+    "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+    "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+    "url": "A String", # Default preview page url for the environment.
+    "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+    "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+    "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # Represents a link to a container version.
+    "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+    "path": "A String", # GTM Environment's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "type": "A String", # The type of this environment.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Environment.
+
+Args:
+  path: string, GTM Environment's API relative path. Example: accounts/{account_id}/containers/{container_id}/environments/{environment_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+  "authorizationCode": "A String", # The environment authorization code.
+  "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+  "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+  "url": "A String", # Default preview page url for the environment.
+  "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+      #
+      # # Examples
+      #
+      # Example 1: Compute Timestamp from POSIX `time()`.
+      #
+      # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+      #
+      # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+      #
+      # struct timeval tv; gettimeofday(&tv, NULL);
+      #
+      # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+      #
+      # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+      #
+      # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+      #
+      # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+      #
+      # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+      #
+      # long millis = System.currentTimeMillis();
+      #
+      # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+      #
+      #
+      #
+      # Example 5: Compute Timestamp from current time in Python.
+      #
+      # timestamp = Timestamp() timestamp.GetCurrentTime()
+      #
+      # # JSON Mapping
+      #
+      # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+      #
+      # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+      #
+      # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+    "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+    "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+  },
+  "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+  "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+  "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "containerVersionId": "A String", # Represents a link to a container version.
+  "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+  "path": "A String", # GTM Environment's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "type": "A String", # The type of this environment.
+  "containerId": "A String", # GTM Container ID.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the environment in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Environment. Note that a user can create, delete and update environments of type USER, but can only update the enable_debug and url fields of environments of other types.
+    "authorizationCode": "A String", # The environment authorization code.
+    "description": "A String", # The environment description. Can be set or changed only on USER type environments.
+    "environmentId": "A String", # GTM Environment ID uniquely identifies the GTM Environment.
+    "url": "A String", # Default preview page url for the environment.
+    "authorizationTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # The last update time-stamp for the authorization code.
+        #
+        # # Examples
+        #
+        # Example 1: Compute Timestamp from POSIX `time()`.
+        #
+        # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+        #
+        # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+        #
+        # struct timeval tv; gettimeofday(&tv, NULL);
+        #
+        # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+        #
+        # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+        #
+        # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+        #
+        # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+        #
+        # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+        #
+        # long millis = System.currentTimeMillis();
+        #
+        # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+        #
+        #
+        #
+        # Example 5: Compute Timestamp from current time in Python.
+        #
+        # timestamp = Timestamp() timestamp.GetCurrentTime()
+        #
+        # # JSON Mapping
+        #
+        # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+        #
+        # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+        #
+        # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+      "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+      "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+    },
+    "name": "A String", # The environment display name. Can be set or changed only on USER type environments.
+    "enableDebug": True or False, # Whether or not to enable debug by default for the environment.
+    "workspaceId": "A String", # Represents a link to a quick preview of a workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # Represents a link to a container version.
+    "fingerprint": "A String", # The fingerprint of the GTM environment as computed at storage time. This value is recomputed whenever the environment is modified.
+    "path": "A String", # GTM Environment's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "type": "A String", # The type of this environment.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.html b/docs/dyn/tagmanager_v2.accounts.containers.html
new file mode 100644
index 0000000..08a2edf
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.html
@@ -0,0 +1,298 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.environments.html">environments()</a></code>
+</p>
+<p class="firstline">Returns the environments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.version_headers.html">version_headers()</a></code>
+</p>
+<p class="firstline">Returns the version_headers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.versions.html">versions()</a></code>
+</p>
+<p class="firstline">Returns the versions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces()</a></code>
+</p>
+<p class="firstline">Returns the workspaces Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a Container.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a Container.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a Container.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all Containers that belongs to a GTM Account.</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>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a Container.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a Container.
+
+Args:
+  parent: string, GTM Account's API relative path. Example: accounts/{account_id}. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.
+    "publicId": "A String", # Container Public ID.
+    "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+    "domainName": [ # List of domain names associated with the Container.
+      "A String",
+    ],
+    "notes": "A String", # Container Notes.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+      "A String",
+    ],
+    "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+    "path": "A String", # GTM Container's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "name": "A String", # Container display name.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.
+      "publicId": "A String", # Container Public ID.
+      "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+      "domainName": [ # List of domain names associated with the Container.
+        "A String",
+      ],
+      "notes": "A String", # Container Notes.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+        "A String",
+      ],
+      "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+      "path": "A String", # GTM Container's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "name": "A String", # Container display name.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a Container.
+
+Args:
+  path: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a Container.
+
+Args:
+  path: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.
+      "publicId": "A String", # Container Public ID.
+      "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+      "domainName": [ # List of domain names associated with the Container.
+        "A String",
+      ],
+      "notes": "A String", # Container Notes.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+        "A String",
+      ],
+      "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+      "path": "A String", # GTM Container's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "name": "A String", # Container display name.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all Containers that belongs to a GTM Account.
+
+Args:
+  parent: string, GTM Accounts's API relative path. Example: accounts/{account_id}. (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List Containers Response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "container": [ # All Containers of a GTM Account.
+      { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.
+          "publicId": "A String", # Container Public ID.
+          "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+          "domainName": [ # List of domain names associated with the Container.
+            "A String",
+          ],
+          "notes": "A String", # Container Notes.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+          "path": "A String", # GTM Container's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Container display name.
+        },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a Container.
+
+Args:
+  path: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.
+    "publicId": "A String", # Container Public ID.
+    "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+    "domainName": [ # List of domain names associated with the Container.
+      "A String",
+    ],
+    "notes": "A String", # Container Notes.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+      "A String",
+    ],
+    "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+    "path": "A String", # GTM Container's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "name": "A String", # Container display name.
+  }
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the container in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions.
+      "publicId": "A String", # Container Public ID.
+      "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+      "domainName": [ # List of domain names associated with the Container.
+        "A String",
+      ],
+      "notes": "A String", # Container Notes.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+        "A String",
+      ],
+      "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+      "path": "A String", # GTM Container's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "name": "A String", # Container display name.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.version_headers.html b/docs/dyn/tagmanager_v2.accounts.containers.version_headers.html
new file mode 100644
index 0000000..3f32fa0
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.version_headers.html
@@ -0,0 +1,158 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.version_headers.html">version_headers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#latest">latest(parent)</a></code></p>
+<p class="firstline">Gets the latest container version header</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, includeDeleted=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists all Container Versions of a GTM Container.</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="latest">latest(parent)</code>
+  <pre>Gets the latest container version header
+
+Args:
+  parent: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Version Header.
+    "name": "A String", # Container version display name.
+    "deleted": True or False, # A value of true indicates this container version has been deleted.
+    "numMacros": "A String", # Number of macros in the container version.
+    "numVariables": "A String", # Number of variables in the container version.
+    "numTags": "A String", # Number of tags in the container version.
+    "numRules": "A String", # Number of rules in the container version.
+    "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+    "path": "A String", # GTM Container Versions's API relative path.
+    "numTriggers": "A String", # Number of triggers in the container version.
+    "accountId": "A String", # GTM Account ID.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, includeDeleted=None, pageToken=None)</code>
+  <pre>Lists all Container Versions of a GTM Container.
+
+Args:
+  parent: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+  includeDeleted: boolean, Also retrieve deleted (archived) versions when true.
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List container versions response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "containerVersionHeader": [ # All container version headers of a GTM Container.
+      { # Represents a Google Tag Manager Container Version Header.
+        "name": "A String", # Container version display name.
+        "deleted": True or False, # A value of true indicates this container version has been deleted.
+        "numMacros": "A String", # Number of macros in the container version.
+        "numVariables": "A String", # Number of variables in the container version.
+        "numTags": "A String", # Number of tags in the container version.
+        "numRules": "A String", # Number of rules in the container version.
+        "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+        "path": "A String", # GTM Container Versions's API relative path.
+        "numTriggers": "A String", # Number of triggers in the container version.
+        "accountId": "A String", # GTM Account ID.
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+  }</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
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.versions.html b/docs/dyn/tagmanager_v2.accounts.containers.versions.html
new file mode 100644
index 0000000..1e2a2b8
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.versions.html
@@ -0,0 +1,3942 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.versions.html">versions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a Container Version.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path, containerVersionId=None)</a></code></p>
+<p class="firstline">Gets a Container Version.</p>
+<p class="toc_element">
+  <code><a href="#live">live(parent)</a></code></p>
+<p class="firstline">Gets the live (i.e. published) container version</p>
+<p class="toc_element">
+  <code><a href="#publish">publish(path, fingerprint=None)</a></code></p>
+<p class="firstline">Publishes a Container Version.</p>
+<p class="toc_element">
+  <code><a href="#set_latest">set_latest(path)</a></code></p>
+<p class="firstline">Sets the latest version used for synchronization of workspaces when detecting conflicts and errors.</p>
+<p class="toc_element">
+  <code><a href="#undelete">undelete(path)</a></code></p>
+<p class="firstline">Undeletes a Container Version.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a Container Version.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a Container Version.
+
+Args:
+  path: string, GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path, containerVersionId=None)</code>
+  <pre>Gets a Container Version.
+
+Args:
+  path: string, GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id} (required)
+  containerVersionId: string, The GTM ContainerVersion ID. Specify published to retrieve the currently published version.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Version.
+    "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+        "publicId": "A String", # Container Public ID.
+        "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+        "domainName": [ # List of domain names associated with the Container.
+          "A String",
+        ],
+        "notes": "A String", # Container Notes.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+          "A String",
+        ],
+        "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+        "path": "A String", # GTM Container's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Container display name.
+      },
+    "containerId": "A String", # GTM Container ID.
+    "deleted": True or False, # A value of true indicates this container version has been deleted.
+    "trigger": [ # The triggers in the container that this version was taken from.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+    "description": "A String", # Container version description.
+    "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+    "name": "A String", # Container version display name.
+    "tag": [ # The tags in the container that this version was taken from.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+    "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+    "path": "A String", # GTM ContainerVersions's API relative path.
+    "folder": [ # The folders in the container that this version was taken from.
+      { # Represents a Google Tag Manager Folder.
+        "containerId": "A String", # GTM Container ID.
+        "notes": "A String", # User notes on how to apply this folder in the container.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+        "path": "A String", # GTM Folder's API relative path.
+        "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Folder display name.
+      },
+    ],
+    "accountId": "A String", # GTM Account ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="live">live(parent)</code>
+  <pre>Gets the live (i.e. published) container version
+
+Args:
+  parent: string, GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Version.
+    "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+        "publicId": "A String", # Container Public ID.
+        "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+        "domainName": [ # List of domain names associated with the Container.
+          "A String",
+        ],
+        "notes": "A String", # Container Notes.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+          "A String",
+        ],
+        "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+        "path": "A String", # GTM Container's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Container display name.
+      },
+    "containerId": "A String", # GTM Container ID.
+    "deleted": True or False, # A value of true indicates this container version has been deleted.
+    "trigger": [ # The triggers in the container that this version was taken from.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+    "description": "A String", # Container version description.
+    "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+    "name": "A String", # Container version display name.
+    "tag": [ # The tags in the container that this version was taken from.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+    "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+    "path": "A String", # GTM ContainerVersions's API relative path.
+    "folder": [ # The folders in the container that this version was taken from.
+      { # Represents a Google Tag Manager Folder.
+        "containerId": "A String", # GTM Container ID.
+        "notes": "A String", # User notes on how to apply this folder in the container.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+        "path": "A String", # GTM Folder's API relative path.
+        "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Folder display name.
+      },
+    ],
+    "accountId": "A String", # GTM Account ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="publish">publish(path, fingerprint=None)</code>
+  <pre>Publishes a Container Version.
+
+Args:
+  path: string, GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id} (required)
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the container version in storage.
+
+Returns:
+  An object of the form:
+
+    { # Publish container version response.
+    "containerVersion": { # Represents a Google Tag Manager Container Version. # The container version created.
+      "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+          "publicId": "A String", # Container Public ID.
+          "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+          "domainName": [ # List of domain names associated with the Container.
+            "A String",
+          ],
+          "notes": "A String", # Container Notes.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+          "path": "A String", # GTM Container's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Container display name.
+        },
+      "containerId": "A String", # GTM Container ID.
+      "deleted": True or False, # A value of true indicates this container version has been deleted.
+      "trigger": [ # The triggers in the container that this version was taken from.
+        { # Represents a Google Tag Manager Trigger
+          "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "containerId": "A String", # GTM Container ID.
+          "accountId": "A String", # GTM Account ID.
+          "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "type": "A String", # Defines the data layer event that causes this trigger.
+          "parentFolderId": "A String", # Parent folder id.
+          "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+          "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "path": "A String", # GTM Trigger's API relative path.
+          "name": "A String", # Trigger display name.
+          "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "notes": "A String", # User notes on how to apply this trigger in the container.
+          "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "filter": [ # The trigger will only fire iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "autoEventFilter": [ # Used in the case of auto event tracking.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        },
+      ],
+      "description": "A String", # Container version description.
+      "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+        { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+          "containerId": "A String", # GTM Container ID.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "path": "A String", # GTM BuiltInVariable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "type": "A String", # Type of built-in variable.
+          "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+        },
+      ],
+      "name": "A String", # Container version display name.
+      "tag": [ # The tags in the container that this version was taken from.
+        { # Represents a Google Tag Manager Tag.
+          "setupTag": [ # The list of setup tags. Currently we only allow one.
+            { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+              "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+              "tagName": "A String", # The name of the setup tag.
+            },
+          ],
+          "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+            "A String",
+          ],
+          "accountId": "A String", # GTM Account ID.
+          "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+            { # Represents a tag that fires after another tag in order to tear down dependencies.
+              "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+              "tagName": "A String", # The name of the teardown tag.
+            },
+          ],
+          "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "type": "A String", # GTM Tag Type.
+          "parentFolderId": "A String", # Parent folder id.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+          "containerId": "A String", # GTM Container ID.
+          "tagFiringOption": "A String", # Option to fire this tag.
+          "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+          "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+            "A String",
+          ],
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+          "path": "A String", # GTM Tag's API relative path.
+          "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+            "A String",
+          ],
+          "name": "A String", # Tag display name.
+          "parameter": [ # The tag's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "notes": "A String", # User notes on how to apply this tag in the container.
+          "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+          "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+            "A String",
+          ],
+        },
+      ],
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+      "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+      "variable": [ # The variables in the container that this version was taken from.
+        { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "path": "A String", # GTM Variable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "parentFolderId": "A String", # Parent folder id.
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+      ],
+      "path": "A String", # GTM ContainerVersions's API relative path.
+      "folder": [ # The folders in the container that this version was taken from.
+        { # Represents a Google Tag Manager Folder.
+          "containerId": "A String", # GTM Container ID.
+          "notes": "A String", # User notes on how to apply this folder in the container.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+          "path": "A String", # GTM Folder's API relative path.
+          "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Folder display name.
+        },
+      ],
+      "accountId": "A String", # GTM Account ID.
+    },
+    "compilerError": True or False, # Compiler errors or not.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="set_latest">set_latest(path)</code>
+  <pre>Sets the latest version used for synchronization of workspaces when detecting conflicts and errors.
+
+Args:
+  path: string, GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Version.
+    "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+        "publicId": "A String", # Container Public ID.
+        "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+        "domainName": [ # List of domain names associated with the Container.
+          "A String",
+        ],
+        "notes": "A String", # Container Notes.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+          "A String",
+        ],
+        "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+        "path": "A String", # GTM Container's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Container display name.
+      },
+    "containerId": "A String", # GTM Container ID.
+    "deleted": True or False, # A value of true indicates this container version has been deleted.
+    "trigger": [ # The triggers in the container that this version was taken from.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+    "description": "A String", # Container version description.
+    "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+    "name": "A String", # Container version display name.
+    "tag": [ # The tags in the container that this version was taken from.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+    "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+    "path": "A String", # GTM ContainerVersions's API relative path.
+    "folder": [ # The folders in the container that this version was taken from.
+      { # Represents a Google Tag Manager Folder.
+        "containerId": "A String", # GTM Container ID.
+        "notes": "A String", # User notes on how to apply this folder in the container.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+        "path": "A String", # GTM Folder's API relative path.
+        "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Folder display name.
+      },
+    ],
+    "accountId": "A String", # GTM Account ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="undelete">undelete(path)</code>
+  <pre>Undeletes a Container Version.
+
+Args:
+  path: string, GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Version.
+    "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+        "publicId": "A String", # Container Public ID.
+        "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+        "domainName": [ # List of domain names associated with the Container.
+          "A String",
+        ],
+        "notes": "A String", # Container Notes.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+          "A String",
+        ],
+        "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+        "path": "A String", # GTM Container's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Container display name.
+      },
+    "containerId": "A String", # GTM Container ID.
+    "deleted": True or False, # A value of true indicates this container version has been deleted.
+    "trigger": [ # The triggers in the container that this version was taken from.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+    "description": "A String", # Container version description.
+    "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+    "name": "A String", # Container version display name.
+    "tag": [ # The tags in the container that this version was taken from.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+    "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+    "path": "A String", # GTM ContainerVersions's API relative path.
+    "folder": [ # The folders in the container that this version was taken from.
+      { # Represents a Google Tag Manager Folder.
+        "containerId": "A String", # GTM Container ID.
+        "notes": "A String", # User notes on how to apply this folder in the container.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+        "path": "A String", # GTM Folder's API relative path.
+        "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Folder display name.
+      },
+    ],
+    "accountId": "A String", # GTM Account ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a Container Version.
+
+Args:
+  path: string, GTM ContainerVersion's API relative path. Example: accounts/{account_id}/containers/{container_id}/versions/{version_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Container Version.
+  "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+      "publicId": "A String", # Container Public ID.
+      "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+      "domainName": [ # List of domain names associated with the Container.
+        "A String",
+      ],
+      "notes": "A String", # Container Notes.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+        "A String",
+      ],
+      "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+      "path": "A String", # GTM Container's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "name": "A String", # Container display name.
+    },
+  "containerId": "A String", # GTM Container ID.
+  "deleted": True or False, # A value of true indicates this container version has been deleted.
+  "trigger": [ # The triggers in the container that this version was taken from.
+    { # Represents a Google Tag Manager Trigger
+      "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "containerId": "A String", # GTM Container ID.
+      "accountId": "A String", # GTM Account ID.
+      "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "workspaceId": "A String", # GTM Workspace ID.
+      "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+        { # Represents a predicate.
+          "type": "A String", # The type of operator for this condition.
+          "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+              # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+              # - At this time, the left operand (arg0) must be a reference to a variable.
+              # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+              # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+        },
+      ],
+      "type": "A String", # Defines the data layer event that causes this trigger.
+      "parentFolderId": "A String", # Parent folder id.
+      "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+      "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "path": "A String", # GTM Trigger's API relative path.
+      "name": "A String", # Trigger display name.
+      "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "notes": "A String", # User notes on how to apply this trigger in the container.
+      "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "filter": [ # The trigger will only fire iff all Conditions are true.
+        { # Represents a predicate.
+          "type": "A String", # The type of operator for this condition.
+          "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+              # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+              # - At this time, the left operand (arg0) must be a reference to a variable.
+              # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+              # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+        },
+      ],
+      "autoEventFilter": [ # Used in the case of auto event tracking.
+        { # Represents a predicate.
+          "type": "A String", # The type of operator for this condition.
+          "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+              # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+              # - At this time, the left operand (arg0) must be a reference to a variable.
+              # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+              # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+        },
+      ],
+      "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    },
+  ],
+  "description": "A String", # Container version description.
+  "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+    { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+      "containerId": "A String", # GTM Container ID.
+      "workspaceId": "A String", # GTM Workspace ID.
+      "path": "A String", # GTM BuiltInVariable's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "type": "A String", # Type of built-in variable.
+      "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+    },
+  ],
+  "name": "A String", # Container version display name.
+  "tag": [ # The tags in the container that this version was taken from.
+    { # Represents a Google Tag Manager Tag.
+      "setupTag": [ # The list of setup tags. Currently we only allow one.
+        { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+          "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+          "tagName": "A String", # The name of the setup tag.
+        },
+      ],
+      "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+        "A String",
+      ],
+      "accountId": "A String", # GTM Account ID.
+      "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+        { # Represents a tag that fires after another tag in order to tear down dependencies.
+          "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+          "tagName": "A String", # The name of the teardown tag.
+        },
+      ],
+      "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "workspaceId": "A String", # GTM Workspace ID.
+      "type": "A String", # GTM Tag Type.
+      "parentFolderId": "A String", # Parent folder id.
+      "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+      "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+      "containerId": "A String", # GTM Container ID.
+      "tagFiringOption": "A String", # Option to fire this tag.
+      "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+      "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+        "A String",
+      ],
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+      "path": "A String", # GTM Tag's API relative path.
+      "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+        "A String",
+      ],
+      "name": "A String", # Tag display name.
+      "parameter": [ # The tag's parameters.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+      "notes": "A String", # User notes on how to apply this tag in the container.
+      "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+      "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+        "A String",
+      ],
+    },
+  ],
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+  "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+  "variable": [ # The variables in the container that this version was taken from.
+    { # Represents a Google Tag Manager Variable.
+      "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+      "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+      "name": "A String", # Variable display name.
+      "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+      "type": "A String", # GTM Variable Type.
+      "notes": "A String", # User notes on how to apply this variable in the container.
+      "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+        "A String",
+      ],
+      "workspaceId": "A String", # GTM Workspace ID.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+      "path": "A String", # GTM Variable's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "parameter": [ # The variable's parameters.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+      "parentFolderId": "A String", # Parent folder id.
+      "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+        "A String",
+      ],
+      "containerId": "A String", # GTM Container ID.
+    },
+  ],
+  "path": "A String", # GTM ContainerVersions's API relative path.
+  "folder": [ # The folders in the container that this version was taken from.
+    { # Represents a Google Tag Manager Folder.
+      "containerId": "A String", # GTM Container ID.
+      "notes": "A String", # User notes on how to apply this folder in the container.
+      "workspaceId": "A String", # GTM Workspace ID.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+      "path": "A String", # GTM Folder's API relative path.
+      "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+      "accountId": "A String", # GTM Account ID.
+      "name": "A String", # Folder display name.
+    },
+  ],
+  "accountId": "A String", # GTM Account ID.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the container version in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Version.
+    "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+        "publicId": "A String", # Container Public ID.
+        "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+        "domainName": [ # List of domain names associated with the Container.
+          "A String",
+        ],
+        "notes": "A String", # Container Notes.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+          "A String",
+        ],
+        "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+        "path": "A String", # GTM Container's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Container display name.
+      },
+    "containerId": "A String", # GTM Container ID.
+    "deleted": True or False, # A value of true indicates this container version has been deleted.
+    "trigger": [ # The triggers in the container that this version was taken from.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+    "description": "A String", # Container version description.
+    "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+    "name": "A String", # Container version display name.
+    "tag": [ # The tags in the container that this version was taken from.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+    "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+    "path": "A String", # GTM ContainerVersions's API relative path.
+    "folder": [ # The folders in the container that this version was taken from.
+      { # Represents a Google Tag Manager Folder.
+        "containerId": "A String", # GTM Container ID.
+        "notes": "A String", # User notes on how to apply this folder in the container.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+        "path": "A String", # GTM Folder's API relative path.
+        "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Folder display name.
+      },
+    ],
+    "accountId": "A String", # GTM Account ID.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html
new file mode 100644
index 0000000..f769aae
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.built_in_variables.html
@@ -0,0 +1,451 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.built_in_variables.html">built_in_variables</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, type=None)</a></code></p>
+<p class="firstline">Creates one or more GTM Built-In Variables.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path, type=None)</a></code></p>
+<p class="firstline">Deletes one or more GTM Built-In Variables.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all the enabled Built-In Variables of a GTM Container.</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>
+<p class="toc_element">
+  <code><a href="#revert">revert(path, type=None)</a></code></p>
+<p class="firstline">Reverts changes to a GTM Built-In Variables in a GTM Workspace.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, type=None)</code>
+  <pre>Creates one or more GTM Built-In Variables.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  type: string, The types of built-in variables to enable. (repeated)
+    Allowed values
+      advertiserId - 
+      advertisingTrackingEnabled - 
+      ampBrowserLanguage - 
+      ampCanonicalHost - 
+      ampCanonicalPath - 
+      ampCanonicalUrl - 
+      ampClientId - 
+      ampClientMaxScrollX - 
+      ampClientMaxScrollY - 
+      ampClientScreenHeight - 
+      ampClientScreenWidth - 
+      ampClientScrollX - 
+      ampClientScrollY - 
+      ampClientTimestamp - 
+      ampClientTimezone - 
+      ampGtmEvent - 
+      ampPageDownloadTime - 
+      ampPageLoadTime - 
+      ampPageViewId - 
+      ampReferrer - 
+      ampTitle - 
+      ampTotalEngagedTime - 
+      appId - 
+      appName - 
+      appVersionCode - 
+      appVersionName - 
+      builtInVariableTypeUnspecified - 
+      clickClasses - 
+      clickElement - 
+      clickId - 
+      clickTarget - 
+      clickText - 
+      clickUrl - 
+      containerId - 
+      containerVersion - 
+      debugMode - 
+      deviceName - 
+      environmentName - 
+      errorLine - 
+      errorMessage - 
+      errorUrl - 
+      event - 
+      eventName - 
+      firebaseEventParameterCampaign - 
+      firebaseEventParameterCampaignAclid - 
+      firebaseEventParameterCampaignAnid - 
+      firebaseEventParameterCampaignClickTimestamp - 
+      firebaseEventParameterCampaignContent - 
+      firebaseEventParameterCampaignCp1 - 
+      firebaseEventParameterCampaignGclid - 
+      firebaseEventParameterCampaignSource - 
+      firebaseEventParameterCampaignTerm - 
+      firebaseEventParameterCurrency - 
+      firebaseEventParameterDynamicLinkAcceptTime - 
+      firebaseEventParameterDynamicLinkLinkid - 
+      firebaseEventParameterNotificationMessageDeviceTime - 
+      firebaseEventParameterNotificationMessageId - 
+      firebaseEventParameterNotificationMessageName - 
+      firebaseEventParameterNotificationMessageTime - 
+      firebaseEventParameterNotificationTopic - 
+      firebaseEventParameterPreviousAppVersion - 
+      firebaseEventParameterPreviousOsVersion - 
+      firebaseEventParameterPrice - 
+      firebaseEventParameterProductId - 
+      firebaseEventParameterQuantity - 
+      firebaseEventParameterValue - 
+      formClasses - 
+      formElement - 
+      formId - 
+      formTarget - 
+      formText - 
+      formUrl - 
+      historySource - 
+      htmlId - 
+      language - 
+      newHistoryFragment - 
+      newHistoryState - 
+      oldHistoryFragment - 
+      oldHistoryState - 
+      osVersion - 
+      pageHostname - 
+      pagePath - 
+      pageUrl - 
+      platform - 
+      randomNumber - 
+      referrer - 
+      resolution - 
+      sdkVersion - 
+
+Returns:
+  An object of the form:
+
+    {
+    "builtInVariable": [ # List of created built-in variables.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path, type=None)</code>
+  <pre>Deletes one or more GTM Built-In Variables.
+
+Args:
+  path: string, GTM BuiltInVariable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables (required)
+  type: string, The types of built-in variables to delete. (repeated)
+    Allowed values
+      advertiserId - 
+      advertisingTrackingEnabled - 
+      ampBrowserLanguage - 
+      ampCanonicalHost - 
+      ampCanonicalPath - 
+      ampCanonicalUrl - 
+      ampClientId - 
+      ampClientMaxScrollX - 
+      ampClientMaxScrollY - 
+      ampClientScreenHeight - 
+      ampClientScreenWidth - 
+      ampClientScrollX - 
+      ampClientScrollY - 
+      ampClientTimestamp - 
+      ampClientTimezone - 
+      ampGtmEvent - 
+      ampPageDownloadTime - 
+      ampPageLoadTime - 
+      ampPageViewId - 
+      ampReferrer - 
+      ampTitle - 
+      ampTotalEngagedTime - 
+      appId - 
+      appName - 
+      appVersionCode - 
+      appVersionName - 
+      builtInVariableTypeUnspecified - 
+      clickClasses - 
+      clickElement - 
+      clickId - 
+      clickTarget - 
+      clickText - 
+      clickUrl - 
+      containerId - 
+      containerVersion - 
+      debugMode - 
+      deviceName - 
+      environmentName - 
+      errorLine - 
+      errorMessage - 
+      errorUrl - 
+      event - 
+      eventName - 
+      firebaseEventParameterCampaign - 
+      firebaseEventParameterCampaignAclid - 
+      firebaseEventParameterCampaignAnid - 
+      firebaseEventParameterCampaignClickTimestamp - 
+      firebaseEventParameterCampaignContent - 
+      firebaseEventParameterCampaignCp1 - 
+      firebaseEventParameterCampaignGclid - 
+      firebaseEventParameterCampaignSource - 
+      firebaseEventParameterCampaignTerm - 
+      firebaseEventParameterCurrency - 
+      firebaseEventParameterDynamicLinkAcceptTime - 
+      firebaseEventParameterDynamicLinkLinkid - 
+      firebaseEventParameterNotificationMessageDeviceTime - 
+      firebaseEventParameterNotificationMessageId - 
+      firebaseEventParameterNotificationMessageName - 
+      firebaseEventParameterNotificationMessageTime - 
+      firebaseEventParameterNotificationTopic - 
+      firebaseEventParameterPreviousAppVersion - 
+      firebaseEventParameterPreviousOsVersion - 
+      firebaseEventParameterPrice - 
+      firebaseEventParameterProductId - 
+      firebaseEventParameterQuantity - 
+      firebaseEventParameterValue - 
+      formClasses - 
+      formElement - 
+      formId - 
+      formTarget - 
+      formText - 
+      formUrl - 
+      historySource - 
+      htmlId - 
+      language - 
+      newHistoryFragment - 
+      newHistoryState - 
+      oldHistoryFragment - 
+      oldHistoryState - 
+      osVersion - 
+      pageHostname - 
+      pagePath - 
+      pageUrl - 
+      platform - 
+      randomNumber - 
+      referrer - 
+      resolution - 
+      sdkVersion - 
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all the enabled Built-In Variables of a GTM Container.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # A list of enabled built-in variables.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "builtInVariable": [ # All GTM BuiltInVariables of a GTM container.
+      { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+        "containerId": "A String", # GTM Container ID.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "path": "A String", # GTM BuiltInVariable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "type": "A String", # Type of built-in variable.
+        "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="revert">revert(path, type=None)</code>
+  <pre>Reverts changes to a GTM Built-In Variables in a GTM Workspace.
+
+Args:
+  path: string, GTM BuiltInVariable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/built_in_variables (required)
+  type: string, The type of built-in variable to revert.
+    Allowed values
+      advertiserId - 
+      advertisingTrackingEnabled - 
+      ampBrowserLanguage - 
+      ampCanonicalHost - 
+      ampCanonicalPath - 
+      ampCanonicalUrl - 
+      ampClientId - 
+      ampClientMaxScrollX - 
+      ampClientMaxScrollY - 
+      ampClientScreenHeight - 
+      ampClientScreenWidth - 
+      ampClientScrollX - 
+      ampClientScrollY - 
+      ampClientTimestamp - 
+      ampClientTimezone - 
+      ampGtmEvent - 
+      ampPageDownloadTime - 
+      ampPageLoadTime - 
+      ampPageViewId - 
+      ampReferrer - 
+      ampTitle - 
+      ampTotalEngagedTime - 
+      appId - 
+      appName - 
+      appVersionCode - 
+      appVersionName - 
+      builtInVariableTypeUnspecified - 
+      clickClasses - 
+      clickElement - 
+      clickId - 
+      clickTarget - 
+      clickText - 
+      clickUrl - 
+      containerId - 
+      containerVersion - 
+      debugMode - 
+      deviceName - 
+      environmentName - 
+      errorLine - 
+      errorMessage - 
+      errorUrl - 
+      event - 
+      eventName - 
+      firebaseEventParameterCampaign - 
+      firebaseEventParameterCampaignAclid - 
+      firebaseEventParameterCampaignAnid - 
+      firebaseEventParameterCampaignClickTimestamp - 
+      firebaseEventParameterCampaignContent - 
+      firebaseEventParameterCampaignCp1 - 
+      firebaseEventParameterCampaignGclid - 
+      firebaseEventParameterCampaignSource - 
+      firebaseEventParameterCampaignTerm - 
+      firebaseEventParameterCurrency - 
+      firebaseEventParameterDynamicLinkAcceptTime - 
+      firebaseEventParameterDynamicLinkLinkid - 
+      firebaseEventParameterNotificationMessageDeviceTime - 
+      firebaseEventParameterNotificationMessageId - 
+      firebaseEventParameterNotificationMessageName - 
+      firebaseEventParameterNotificationMessageTime - 
+      firebaseEventParameterNotificationTopic - 
+      firebaseEventParameterPreviousAppVersion - 
+      firebaseEventParameterPreviousOsVersion - 
+      firebaseEventParameterPrice - 
+      firebaseEventParameterProductId - 
+      firebaseEventParameterQuantity - 
+      firebaseEventParameterValue - 
+      formClasses - 
+      formElement - 
+      formId - 
+      formTarget - 
+      formText - 
+      formUrl - 
+      historySource - 
+      htmlId - 
+      language - 
+      newHistoryFragment - 
+      newHistoryState - 
+      oldHistoryFragment - 
+      oldHistoryState - 
+      osVersion - 
+      pageHostname - 
+      pagePath - 
+      pageUrl - 
+      platform - 
+      randomNumber - 
+      referrer - 
+      resolution - 
+      sdkVersion - 
+
+Returns:
+  An object of the form:
+
+    { # The result of reverting a built-in variable in a workspace.
+    "enabled": True or False, # Whether the built-in variable is enabled after reversion.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.folders.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.folders.html
new file mode 100644
index 0000000..3c2172f
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.folders.html
@@ -0,0 +1,829 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.folders.html">folders</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a GTM Folder.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a GTM Folder.</p>
+<p class="toc_element">
+  <code><a href="#entities">entities(path, pageToken=None)</a></code></p>
+<p class="firstline">List all entities in a GTM Folder.</p>
+<p class="toc_element">
+  <code><a href="#entities_next">entities_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a GTM Folder.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all GTM Folders of a Container.</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>
+<p class="toc_element">
+  <code><a href="#move_entities_to_folder">move_entities_to_folder(path, body, variableId=None, tagId=None, triggerId=None)</a></code></p>
+<p class="firstline">Moves entities to a GTM Folder.</p>
+<p class="toc_element">
+  <code><a href="#revert">revert(path, fingerprint=None)</a></code></p>
+<p class="firstline">Reverts changes to a GTM Folder in a GTM Workspace.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Folder.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a GTM Folder.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Folder.
+  "containerId": "A String", # GTM Container ID.
+  "notes": "A String", # User notes on how to apply this folder in the container.
+  "workspaceId": "A String", # GTM Workspace ID.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+  "path": "A String", # GTM Folder's API relative path.
+  "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+  "accountId": "A String", # GTM Account ID.
+  "name": "A String", # Folder display name.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Folder.
+    "containerId": "A String", # GTM Container ID.
+    "notes": "A String", # User notes on how to apply this folder in the container.
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+    "path": "A String", # GTM Folder's API relative path.
+    "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+    "accountId": "A String", # GTM Account ID.
+    "name": "A String", # Folder display name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a GTM Folder.
+
+Args:
+  path: string, GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="entities">entities(path, pageToken=None)</code>
+  <pre>List all entities in a GTM Folder.
+
+Args:
+  path: string, GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Folder's contents.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "trigger": [ # The list of triggers inside the folder.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+    "tag": [ # The list of tags inside the folder.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+    "variable": [ # The list of variables inside the folder.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="entities_next">entities_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>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a GTM Folder.
+
+Args:
+  path: string, GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Folder.
+    "containerId": "A String", # GTM Container ID.
+    "notes": "A String", # User notes on how to apply this folder in the container.
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+    "path": "A String", # GTM Folder's API relative path.
+    "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+    "accountId": "A String", # GTM Account ID.
+    "name": "A String", # Folder display name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all GTM Folders of a Container.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List Folders Response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "folder": [ # All GTM Folders of a GTM Container.
+      { # Represents a Google Tag Manager Folder.
+        "containerId": "A String", # GTM Container ID.
+        "notes": "A String", # User notes on how to apply this folder in the container.
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+        "path": "A String", # GTM Folder's API relative path.
+        "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+        "accountId": "A String", # GTM Account ID.
+        "name": "A String", # Folder display name.
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="move_entities_to_folder">move_entities_to_folder(path, body, variableId=None, tagId=None, triggerId=None)</code>
+  <pre>Moves entities to a GTM Folder.
+
+Args:
+  path: string, GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Folder.
+  "containerId": "A String", # GTM Container ID.
+  "notes": "A String", # User notes on how to apply this folder in the container.
+  "workspaceId": "A String", # GTM Workspace ID.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+  "path": "A String", # GTM Folder's API relative path.
+  "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+  "accountId": "A String", # GTM Account ID.
+  "name": "A String", # Folder display name.
+}
+
+  variableId: string, The variables to be moved to the folder. (repeated)
+  tagId: string, The tags to be moved to the folder. (repeated)
+  triggerId: string, The triggers to be moved to the folder. (repeated)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="revert">revert(path, fingerprint=None)</code>
+  <pre>Reverts changes to a GTM Folder in a GTM Workspace.
+
+Args:
+  path: string, GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id} (required)
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the tag in storage.
+
+Returns:
+  An object of the form:
+
+    { # The result of reverting folder changes in a workspace.
+    "folder": { # Represents a Google Tag Manager Folder. # Folder as it appears in the latest container version since the last workspace synchronization operation. If no folder is present, that means the folder was deleted in the latest container version.
+      "containerId": "A String", # GTM Container ID.
+      "notes": "A String", # User notes on how to apply this folder in the container.
+      "workspaceId": "A String", # GTM Workspace ID.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+      "path": "A String", # GTM Folder's API relative path.
+      "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+      "accountId": "A String", # GTM Account ID.
+      "name": "A String", # Folder display name.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Folder.
+
+Args:
+  path: string, GTM Folder's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/folders/{folder_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Folder.
+  "containerId": "A String", # GTM Container ID.
+  "notes": "A String", # User notes on how to apply this folder in the container.
+  "workspaceId": "A String", # GTM Workspace ID.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+  "path": "A String", # GTM Folder's API relative path.
+  "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+  "accountId": "A String", # GTM Account ID.
+  "name": "A String", # Folder display name.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the folder in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Folder.
+    "containerId": "A String", # GTM Container ID.
+    "notes": "A String", # User notes on how to apply this folder in the container.
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+    "path": "A String", # GTM Folder's API relative path.
+    "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+    "accountId": "A String", # GTM Account ID.
+    "name": "A String", # Folder display name.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.html
new file mode 100644
index 0000000..8180f97
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.html
@@ -0,0 +1,4623 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.built_in_variables.html">built_in_variables()</a></code>
+</p>
+<p class="firstline">Returns the built_in_variables Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.folders.html">folders()</a></code>
+</p>
+<p class="firstline">Returns the folders Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.proposal.html">proposal()</a></code>
+</p>
+<p class="firstline">Returns the proposal Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.tags.html">tags()</a></code>
+</p>
+<p class="firstline">Returns the tags Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.triggers.html">triggers()</a></code>
+</p>
+<p class="firstline">Returns the triggers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.workspaces.variables.html">variables()</a></code>
+</p>
+<p class="firstline">Returns the variables Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a Workspace.</p>
+<p class="toc_element">
+  <code><a href="#create_version">create_version(path, body)</a></code></p>
+<p class="firstline">Creates a Container Version from the entities present in the workspace, deletes the workspace, and sets the base container version to the newly created version.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a Workspace.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a Workspace.</p>
+<p class="toc_element">
+  <code><a href="#getProposal">getProposal(path)</a></code></p>
+<p class="firstline">Gets a GTM Workspace Proposal.</p>
+<p class="toc_element">
+  <code><a href="#getStatus">getStatus(path)</a></code></p>
+<p class="firstline">Finds conflicting and modified entities in the workspace.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all Workspaces that belong to a GTM Container.</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>
+<p class="toc_element">
+  <code><a href="#quick_preview">quick_preview(path)</a></code></p>
+<p class="firstline">Quick previews a workspace by creating a fake container version from all entities in the provided workspace.</p>
+<p class="toc_element">
+  <code><a href="#resolve_conflict">resolve_conflict(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Resolves a merge conflict for a workspace entity by updating it to the resolved entity passed in the request.</p>
+<p class="toc_element">
+  <code><a href="#sync">sync(path)</a></code></p>
+<p class="firstline">Syncs a workspace to the latest container version by updating all unmodified workspace entities and displaying conflicts for modified entities.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a Workspace.</p>
+<p class="toc_element">
+  <code><a href="#updateProposal">updateProposal(path, body)</a></code></p>
+<p class="firstline">Updates a GTM Workspace Proposal.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a Workspace.
+
+Args:
+  parent: string, GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Container Workspace.
+  "description": "A String", # Workspace description.
+  "name": "A String", # Workspace display name.
+  "workspaceId": "A String", # The Workspace ID uniquely identifies the GTM Workspace.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.
+  "path": "A String", # GTM Workspace's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "containerId": "A String", # GTM Container ID.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Workspace.
+    "description": "A String", # Workspace description.
+    "name": "A String", # Workspace display name.
+    "workspaceId": "A String", # The Workspace ID uniquely identifies the GTM Workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.
+    "path": "A String", # GTM Workspace's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create_version">create_version(path, body)</code>
+  <pre>Creates a Container Version from the entities present in the workspace, deletes the workspace, and sets the base container version to the newly created version.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Options for new container versions.
+    "notes": "A String", # The notes of the container version to be created.
+    "name": "A String", # The name of the container version to be created.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Create container versions response.
+    "newWorkspacePath": "A String", # Auto generated workspace path created as a result of version creation. This field should only be populated if the created version was not a quick preview.
+    "containerVersion": { # Represents a Google Tag Manager Container Version. # The container version created.
+      "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+          "publicId": "A String", # Container Public ID.
+          "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+          "domainName": [ # List of domain names associated with the Container.
+            "A String",
+          ],
+          "notes": "A String", # Container Notes.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+          "path": "A String", # GTM Container's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Container display name.
+        },
+      "containerId": "A String", # GTM Container ID.
+      "deleted": True or False, # A value of true indicates this container version has been deleted.
+      "trigger": [ # The triggers in the container that this version was taken from.
+        { # Represents a Google Tag Manager Trigger
+          "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "containerId": "A String", # GTM Container ID.
+          "accountId": "A String", # GTM Account ID.
+          "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "type": "A String", # Defines the data layer event that causes this trigger.
+          "parentFolderId": "A String", # Parent folder id.
+          "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+          "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "path": "A String", # GTM Trigger's API relative path.
+          "name": "A String", # Trigger display name.
+          "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "notes": "A String", # User notes on how to apply this trigger in the container.
+          "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "filter": [ # The trigger will only fire iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "autoEventFilter": [ # Used in the case of auto event tracking.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        },
+      ],
+      "description": "A String", # Container version description.
+      "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+        { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+          "containerId": "A String", # GTM Container ID.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "path": "A String", # GTM BuiltInVariable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "type": "A String", # Type of built-in variable.
+          "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+        },
+      ],
+      "name": "A String", # Container version display name.
+      "tag": [ # The tags in the container that this version was taken from.
+        { # Represents a Google Tag Manager Tag.
+          "setupTag": [ # The list of setup tags. Currently we only allow one.
+            { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+              "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+              "tagName": "A String", # The name of the setup tag.
+            },
+          ],
+          "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+            "A String",
+          ],
+          "accountId": "A String", # GTM Account ID.
+          "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+            { # Represents a tag that fires after another tag in order to tear down dependencies.
+              "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+              "tagName": "A String", # The name of the teardown tag.
+            },
+          ],
+          "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "type": "A String", # GTM Tag Type.
+          "parentFolderId": "A String", # Parent folder id.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+          "containerId": "A String", # GTM Container ID.
+          "tagFiringOption": "A String", # Option to fire this tag.
+          "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+          "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+            "A String",
+          ],
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+          "path": "A String", # GTM Tag's API relative path.
+          "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+            "A String",
+          ],
+          "name": "A String", # Tag display name.
+          "parameter": [ # The tag's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "notes": "A String", # User notes on how to apply this tag in the container.
+          "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+          "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+            "A String",
+          ],
+        },
+      ],
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+      "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+      "variable": [ # The variables in the container that this version was taken from.
+        { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "path": "A String", # GTM Variable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "parentFolderId": "A String", # Parent folder id.
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+      ],
+      "path": "A String", # GTM ContainerVersions's API relative path.
+      "folder": [ # The folders in the container that this version was taken from.
+        { # Represents a Google Tag Manager Folder.
+          "containerId": "A String", # GTM Container ID.
+          "notes": "A String", # User notes on how to apply this folder in the container.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+          "path": "A String", # GTM Folder's API relative path.
+          "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Folder display name.
+        },
+      ],
+      "accountId": "A String", # GTM Account ID.
+    },
+    "syncStatus": { # The status of a workspace after synchronization. # Whether version creation failed when syncing the workspace to the latest container version.
+      "syncError": True or False, # An error occurred during the synchronization operation.
+      "mergeConflict": True or False, # Synchornization operation detected a merge conflict.
+    },
+    "compilerError": True or False, # Compiler errors or not.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a Workspace.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a Workspace.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Workspace.
+    "description": "A String", # Workspace description.
+    "name": "A String", # Workspace display name.
+    "workspaceId": "A String", # The Workspace ID uniquely identifies the GTM Workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.
+    "path": "A String", # GTM Workspace's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getProposal">getProposal(path)</code>
+  <pre>Gets a GTM Workspace Proposal.
+
+Args:
+  path: string, GTM workspace proposal's relative path: Example: accounts/{aid}/containers/{cid}/workspace/{wid}/workspace_proposal (required)
+
+Returns:
+  An object of the form:
+
+    { # A workspace proposal represents an ongoing review of workspace changes in an effort to gain approval for container version creation.
+    "status": "A String", # The status of the workspace proposal as it goes through review.
+    "reviewers": [ # Lists of reviewers for the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "authors": [ # List of authors for the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "fingerprint": "A String", # The fingerprint of the GTM workspace proposal as computed at storage time. This value is recomputed whenever the proposal is modified.
+    "path": "A String", # GTM workspace proposal's relative path.
+    "history": [ # Records the history of comments and status changes.
+      { # A history event that represents a comment or status change in the proposal.
+        "comment": { # A comment from the reviewer or author. # A user or reviewer comment.
+          "content": "A String", # The contents of the reviewer or author comment.
+        },
+        "createdTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # When this history event was added to the workspace proposal.
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "type": "A String", # The history type distinguishing between comments and status changes.
+        "statusChange": { # A change in the proposal's status. # A change in the proposal's status.
+          "newStatus": "A String", # The new proposal status after that status change.
+          "oldStatus": "A String", # The old proposal status before the status change.
+        },
+        "createdBy": { # Represents an external user or internal Google Tag Manager system. # The party responsible for the change in history.
+          "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+          "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getStatus">getStatus(path)</code>
+  <pre>Finds conflicting and modified entities in the workspace.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # The changes that have occurred in the workspace since the base container version.
+    "workspaceChange": [ # Entities that have been changed in the workspace.
+      { # A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace.
+        "variable": { # Represents a Google Tag Manager Variable. # The variable being represented by the entity.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "path": "A String", # GTM Variable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "parentFolderId": "A String", # Parent folder id.
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+        "trigger": { # Represents a Google Tag Manager Trigger # The trigger being represented by the entity.
+          "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "containerId": "A String", # GTM Container ID.
+          "accountId": "A String", # GTM Account ID.
+          "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "type": "A String", # Defines the data layer event that causes this trigger.
+          "parentFolderId": "A String", # Parent folder id.
+          "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+          "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "path": "A String", # GTM Trigger's API relative path.
+          "name": "A String", # Trigger display name.
+          "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "notes": "A String", # User notes on how to apply this trigger in the container.
+          "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "filter": [ # The trigger will only fire iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "autoEventFilter": [ # Used in the case of auto event tracking.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        },
+        "changeStatus": "A String", # Represents how the entity has been changed in the workspace.
+        "tag": { # Represents a Google Tag Manager Tag. # The tag being represented by the entity.
+          "setupTag": [ # The list of setup tags. Currently we only allow one.
+            { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+              "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+              "tagName": "A String", # The name of the setup tag.
+            },
+          ],
+          "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+            "A String",
+          ],
+          "accountId": "A String", # GTM Account ID.
+          "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+            { # Represents a tag that fires after another tag in order to tear down dependencies.
+              "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+              "tagName": "A String", # The name of the teardown tag.
+            },
+          ],
+          "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "type": "A String", # GTM Tag Type.
+          "parentFolderId": "A String", # Parent folder id.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+          "containerId": "A String", # GTM Container ID.
+          "tagFiringOption": "A String", # Option to fire this tag.
+          "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+          "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+            "A String",
+          ],
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+          "path": "A String", # GTM Tag's API relative path.
+          "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+            "A String",
+          ],
+          "name": "A String", # Tag display name.
+          "parameter": [ # The tag's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "notes": "A String", # User notes on how to apply this tag in the container.
+          "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+          "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+            "A String",
+          ],
+        },
+        "folder": { # Represents a Google Tag Manager Folder. # The Folder being represented by the entity.
+          "containerId": "A String", # GTM Container ID.
+          "notes": "A String", # User notes on how to apply this folder in the container.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+          "path": "A String", # GTM Folder's API relative path.
+          "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Folder display name.
+        },
+      },
+    ],
+    "mergeConflict": [ # The merge conflict after sync.
+      { # Represents a merge conflict.
+        "entityInWorkspace": { # A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace. # The workspace entity that has conflicting changes compared to the base version. If an entity is deleted in a workspace, it will still appear with a deleted change status.
+          "variable": { # Represents a Google Tag Manager Variable. # The variable being represented by the entity.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+            "name": "A String", # Variable display name.
+            "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+            "type": "A String", # GTM Variable Type.
+            "notes": "A String", # User notes on how to apply this variable in the container.
+            "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+              "A String",
+            ],
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+            "path": "A String", # GTM Variable's API relative path.
+            "accountId": "A String", # GTM Account ID.
+            "parameter": [ # The variable's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "parentFolderId": "A String", # Parent folder id.
+            "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+              "A String",
+            ],
+            "containerId": "A String", # GTM Container ID.
+          },
+          "trigger": { # Represents a Google Tag Manager Trigger # The trigger being represented by the entity.
+            "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "containerId": "A String", # GTM Container ID.
+            "accountId": "A String", # GTM Account ID.
+            "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "type": "A String", # Defines the data layer event that causes this trigger.
+            "parentFolderId": "A String", # Parent folder id.
+            "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+            "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "path": "A String", # GTM Trigger's API relative path.
+            "name": "A String", # Trigger display name.
+            "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "notes": "A String", # User notes on how to apply this trigger in the container.
+            "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "filter": [ # The trigger will only fire iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "autoEventFilter": [ # Used in the case of auto event tracking.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          },
+          "changeStatus": "A String", # Represents how the entity has been changed in the workspace.
+          "tag": { # Represents a Google Tag Manager Tag. # The tag being represented by the entity.
+            "setupTag": [ # The list of setup tags. Currently we only allow one.
+              { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+                "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+                "tagName": "A String", # The name of the setup tag.
+              },
+            ],
+            "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+              "A String",
+            ],
+            "accountId": "A String", # GTM Account ID.
+            "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+              { # Represents a tag that fires after another tag in order to tear down dependencies.
+                "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+                "tagName": "A String", # The name of the teardown tag.
+              },
+            ],
+            "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "type": "A String", # GTM Tag Type.
+            "parentFolderId": "A String", # Parent folder id.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+            "containerId": "A String", # GTM Container ID.
+            "tagFiringOption": "A String", # Option to fire this tag.
+            "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+            "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+              "A String",
+            ],
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+            "path": "A String", # GTM Tag's API relative path.
+            "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+              "A String",
+            ],
+            "name": "A String", # Tag display name.
+            "parameter": [ # The tag's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "notes": "A String", # User notes on how to apply this tag in the container.
+            "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+            "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+              "A String",
+            ],
+          },
+          "folder": { # Represents a Google Tag Manager Folder. # The Folder being represented by the entity.
+            "containerId": "A String", # GTM Container ID.
+            "notes": "A String", # User notes on how to apply this folder in the container.
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+            "path": "A String", # GTM Folder's API relative path.
+            "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+            "accountId": "A String", # GTM Account ID.
+            "name": "A String", # Folder display name.
+          },
+        },
+        "entityInBaseVersion": { # A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace. # The base version entity (since the latest sync operation) that has conflicting changes compared to the workspace. If this field is missing, it means the workspace entity is deleted from the base version.
+          "variable": { # Represents a Google Tag Manager Variable. # The variable being represented by the entity.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+            "name": "A String", # Variable display name.
+            "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+            "type": "A String", # GTM Variable Type.
+            "notes": "A String", # User notes on how to apply this variable in the container.
+            "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+              "A String",
+            ],
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+            "path": "A String", # GTM Variable's API relative path.
+            "accountId": "A String", # GTM Account ID.
+            "parameter": [ # The variable's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "parentFolderId": "A String", # Parent folder id.
+            "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+              "A String",
+            ],
+            "containerId": "A String", # GTM Container ID.
+          },
+          "trigger": { # Represents a Google Tag Manager Trigger # The trigger being represented by the entity.
+            "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "containerId": "A String", # GTM Container ID.
+            "accountId": "A String", # GTM Account ID.
+            "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "type": "A String", # Defines the data layer event that causes this trigger.
+            "parentFolderId": "A String", # Parent folder id.
+            "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+            "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "path": "A String", # GTM Trigger's API relative path.
+            "name": "A String", # Trigger display name.
+            "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "notes": "A String", # User notes on how to apply this trigger in the container.
+            "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "filter": [ # The trigger will only fire iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "autoEventFilter": [ # Used in the case of auto event tracking.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          },
+          "changeStatus": "A String", # Represents how the entity has been changed in the workspace.
+          "tag": { # Represents a Google Tag Manager Tag. # The tag being represented by the entity.
+            "setupTag": [ # The list of setup tags. Currently we only allow one.
+              { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+                "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+                "tagName": "A String", # The name of the setup tag.
+              },
+            ],
+            "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+              "A String",
+            ],
+            "accountId": "A String", # GTM Account ID.
+            "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+              { # Represents a tag that fires after another tag in order to tear down dependencies.
+                "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+                "tagName": "A String", # The name of the teardown tag.
+              },
+            ],
+            "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "type": "A String", # GTM Tag Type.
+            "parentFolderId": "A String", # Parent folder id.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+            "containerId": "A String", # GTM Container ID.
+            "tagFiringOption": "A String", # Option to fire this tag.
+            "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+            "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+              "A String",
+            ],
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+            "path": "A String", # GTM Tag's API relative path.
+            "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+              "A String",
+            ],
+            "name": "A String", # Tag display name.
+            "parameter": [ # The tag's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "notes": "A String", # User notes on how to apply this tag in the container.
+            "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+            "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+              "A String",
+            ],
+          },
+          "folder": { # Represents a Google Tag Manager Folder. # The Folder being represented by the entity.
+            "containerId": "A String", # GTM Container ID.
+            "notes": "A String", # User notes on how to apply this folder in the container.
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+            "path": "A String", # GTM Folder's API relative path.
+            "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+            "accountId": "A String", # GTM Account ID.
+            "name": "A String", # Folder display name.
+          },
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all Workspaces that belong to a GTM Container.
+
+Args:
+  parent: string, GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # A list of workspaces in a container.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "workspace": [ # All Workspaces of a GTM Container.
+      { # Represents a Google Tag Manager Container Workspace.
+        "description": "A String", # Workspace description.
+        "name": "A String", # Workspace display name.
+        "workspaceId": "A String", # The Workspace ID uniquely identifies the GTM Workspace.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.
+        "path": "A String", # GTM Workspace's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="quick_preview">quick_preview(path)</code>
+  <pre>Quick previews a workspace by creating a fake container version from all entities in the provided workspace.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Response to quick previewing a workspace.
+    "containerVersion": { # Represents a Google Tag Manager Container Version. # The quick previewed container version.
+      "container": { # Represents a Google Tag Manager Container, which specifies the platform tags will run on, manages workspaces, and retains container versions. # The container that this version was taken from.
+          "publicId": "A String", # Container Public ID.
+          "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
+          "domainName": [ # List of domain names associated with the Container.
+            "A String",
+          ],
+          "notes": "A String", # Container Notes.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "usageContext": [ # List of Usage Contexts for the Container. Valid values include: web, android, or ios.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.
+          "path": "A String", # GTM Container's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Container display name.
+        },
+      "containerId": "A String", # GTM Container ID.
+      "deleted": True or False, # A value of true indicates this container version has been deleted.
+      "trigger": [ # The triggers in the container that this version was taken from.
+        { # Represents a Google Tag Manager Trigger
+          "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "containerId": "A String", # GTM Container ID.
+          "accountId": "A String", # GTM Account ID.
+          "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "type": "A String", # Defines the data layer event that causes this trigger.
+          "parentFolderId": "A String", # Parent folder id.
+          "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+          "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "path": "A String", # GTM Trigger's API relative path.
+          "name": "A String", # Trigger display name.
+          "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "notes": "A String", # User notes on how to apply this trigger in the container.
+          "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "filter": [ # The trigger will only fire iff all Conditions are true.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "autoEventFilter": [ # Used in the case of auto event tracking.
+            { # Represents a predicate.
+              "type": "A String", # The type of operator for this condition.
+              "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                  # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                  # - At this time, the left operand (arg0) must be a reference to a variable.
+                  # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                  # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                },
+              ],
+            },
+          ],
+          "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        },
+      ],
+      "description": "A String", # Container version description.
+      "builtInVariable": [ # The built-in variables in the container that this version was taken from.
+        { # Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.
+          "containerId": "A String", # GTM Container ID.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "path": "A String", # GTM BuiltInVariable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "type": "A String", # Type of built-in variable.
+          "name": "A String", # Name of the built-in variable to be used to refer to the built-in variable.
+        },
+      ],
+      "name": "A String", # Container version display name.
+      "tag": [ # The tags in the container that this version was taken from.
+        { # Represents a Google Tag Manager Tag.
+          "setupTag": [ # The list of setup tags. Currently we only allow one.
+            { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+              "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+              "tagName": "A String", # The name of the setup tag.
+            },
+          ],
+          "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+            "A String",
+          ],
+          "accountId": "A String", # GTM Account ID.
+          "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+            { # Represents a tag that fires after another tag in order to tear down dependencies.
+              "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+              "tagName": "A String", # The name of the teardown tag.
+            },
+          ],
+          "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+          "workspaceId": "A String", # GTM Workspace ID.
+          "type": "A String", # GTM Tag Type.
+          "parentFolderId": "A String", # Parent folder id.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+          "containerId": "A String", # GTM Container ID.
+          "tagFiringOption": "A String", # Option to fire this tag.
+          "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+          "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+            "A String",
+          ],
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+          "path": "A String", # GTM Tag's API relative path.
+          "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+            "A String",
+          ],
+          "name": "A String", # Tag display name.
+          "parameter": [ # The tag's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "notes": "A String", # User notes on how to apply this tag in the container.
+          "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+          "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+            "A String",
+          ],
+        },
+      ],
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
+      "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+      "variable": [ # The variables in the container that this version was taken from.
+        { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "path": "A String", # GTM Variable's API relative path.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+          "parentFolderId": "A String", # Parent folder id.
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+      ],
+      "path": "A String", # GTM ContainerVersions's API relative path.
+      "folder": [ # The folders in the container that this version was taken from.
+        { # Represents a Google Tag Manager Folder.
+          "containerId": "A String", # GTM Container ID.
+          "notes": "A String", # User notes on how to apply this folder in the container.
+          "workspaceId": "A String", # GTM Workspace ID.
+          "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+          "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+          "path": "A String", # GTM Folder's API relative path.
+          "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+          "accountId": "A String", # GTM Account ID.
+          "name": "A String", # Folder display name.
+        },
+      ],
+      "accountId": "A String", # GTM Account ID.
+    },
+    "syncStatus": { # The status of a workspace after synchronization. # Whether quick previewing failed when syncing the workspace to the latest container version.
+      "syncError": True or False, # An error occurred during the synchronization operation.
+      "mergeConflict": True or False, # Synchornization operation detected a merge conflict.
+    },
+    "compilerError": True or False, # Were there compiler errors or not.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resolve_conflict">resolve_conflict(path, body, fingerprint=None)</code>
+  <pre>Resolves a merge conflict for a workspace entity by updating it to the resolved entity passed in the request.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace.
+  "variable": { # Represents a Google Tag Manager Variable. # The variable being represented by the entity.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+    "name": "A String", # Variable display name.
+    "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+    "type": "A String", # GTM Variable Type.
+    "notes": "A String", # User notes on how to apply this variable in the container.
+    "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+      "A String",
+    ],
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+    "path": "A String", # GTM Variable's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "parameter": [ # The variable's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "parentFolderId": "A String", # Parent folder id.
+    "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+      "A String",
+    ],
+    "containerId": "A String", # GTM Container ID.
+  },
+  "trigger": { # Represents a Google Tag Manager Trigger # The trigger being represented by the entity.
+    "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "containerId": "A String", # GTM Container ID.
+    "accountId": "A String", # GTM Account ID.
+    "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "type": "A String", # Defines the data layer event that causes this trigger.
+    "parentFolderId": "A String", # Parent folder id.
+    "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+    "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "path": "A String", # GTM Trigger's API relative path.
+    "name": "A String", # Trigger display name.
+    "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "notes": "A String", # User notes on how to apply this trigger in the container.
+    "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "filter": [ # The trigger will only fire iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "autoEventFilter": [ # Used in the case of auto event tracking.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  },
+  "changeStatus": "A String", # Represents how the entity has been changed in the workspace.
+  "tag": { # Represents a Google Tag Manager Tag. # The tag being represented by the entity.
+    "setupTag": [ # The list of setup tags. Currently we only allow one.
+      { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+        "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+        "tagName": "A String", # The name of the setup tag.
+      },
+    ],
+    "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+      "A String",
+    ],
+    "accountId": "A String", # GTM Account ID.
+    "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+      { # Represents a tag that fires after another tag in order to tear down dependencies.
+        "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+        "tagName": "A String", # The name of the teardown tag.
+      },
+    ],
+    "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "type": "A String", # GTM Tag Type.
+    "parentFolderId": "A String", # Parent folder id.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+    "containerId": "A String", # GTM Container ID.
+    "tagFiringOption": "A String", # Option to fire this tag.
+    "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+    "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+      "A String",
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+    "path": "A String", # GTM Tag's API relative path.
+    "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+      "A String",
+    ],
+    "name": "A String", # Tag display name.
+    "parameter": [ # The tag's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "notes": "A String", # User notes on how to apply this tag in the container.
+    "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+    "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+      "A String",
+    ],
+  },
+  "folder": { # Represents a Google Tag Manager Folder. # The Folder being represented by the entity.
+    "containerId": "A String", # GTM Container ID.
+    "notes": "A String", # User notes on how to apply this folder in the container.
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+    "path": "A String", # GTM Folder's API relative path.
+    "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+    "accountId": "A String", # GTM Account ID.
+    "name": "A String", # Folder display name.
+  },
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the entity_in_workspace in the merge conflict.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sync">sync(path)</code>
+  <pre>Syncs a workspace to the latest container version by updating all unmodified workspace entities and displaying conflicts for modified entities.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # A response after synchronizing the workspace to the latest container version.
+    "syncStatus": { # The status of a workspace after synchronization. # Indicates whether synchronization caused a merge conflict or sync error.
+      "syncError": True or False, # An error occurred during the synchronization operation.
+      "mergeConflict": True or False, # Synchornization operation detected a merge conflict.
+    },
+    "mergeConflict": [ # The merge conflict after sync. If this field is not empty, the sync is still treated as successful. But a version cannot be created until all conflicts are resolved.
+      { # Represents a merge conflict.
+        "entityInWorkspace": { # A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace. # The workspace entity that has conflicting changes compared to the base version. If an entity is deleted in a workspace, it will still appear with a deleted change status.
+          "variable": { # Represents a Google Tag Manager Variable. # The variable being represented by the entity.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+            "name": "A String", # Variable display name.
+            "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+            "type": "A String", # GTM Variable Type.
+            "notes": "A String", # User notes on how to apply this variable in the container.
+            "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+              "A String",
+            ],
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+            "path": "A String", # GTM Variable's API relative path.
+            "accountId": "A String", # GTM Account ID.
+            "parameter": [ # The variable's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "parentFolderId": "A String", # Parent folder id.
+            "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+              "A String",
+            ],
+            "containerId": "A String", # GTM Container ID.
+          },
+          "trigger": { # Represents a Google Tag Manager Trigger # The trigger being represented by the entity.
+            "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "containerId": "A String", # GTM Container ID.
+            "accountId": "A String", # GTM Account ID.
+            "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "type": "A String", # Defines the data layer event that causes this trigger.
+            "parentFolderId": "A String", # Parent folder id.
+            "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+            "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "path": "A String", # GTM Trigger's API relative path.
+            "name": "A String", # Trigger display name.
+            "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "notes": "A String", # User notes on how to apply this trigger in the container.
+            "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "filter": [ # The trigger will only fire iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "autoEventFilter": [ # Used in the case of auto event tracking.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          },
+          "changeStatus": "A String", # Represents how the entity has been changed in the workspace.
+          "tag": { # Represents a Google Tag Manager Tag. # The tag being represented by the entity.
+            "setupTag": [ # The list of setup tags. Currently we only allow one.
+              { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+                "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+                "tagName": "A String", # The name of the setup tag.
+              },
+            ],
+            "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+              "A String",
+            ],
+            "accountId": "A String", # GTM Account ID.
+            "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+              { # Represents a tag that fires after another tag in order to tear down dependencies.
+                "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+                "tagName": "A String", # The name of the teardown tag.
+              },
+            ],
+            "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "type": "A String", # GTM Tag Type.
+            "parentFolderId": "A String", # Parent folder id.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+            "containerId": "A String", # GTM Container ID.
+            "tagFiringOption": "A String", # Option to fire this tag.
+            "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+            "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+              "A String",
+            ],
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+            "path": "A String", # GTM Tag's API relative path.
+            "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+              "A String",
+            ],
+            "name": "A String", # Tag display name.
+            "parameter": [ # The tag's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "notes": "A String", # User notes on how to apply this tag in the container.
+            "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+            "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+              "A String",
+            ],
+          },
+          "folder": { # Represents a Google Tag Manager Folder. # The Folder being represented by the entity.
+            "containerId": "A String", # GTM Container ID.
+            "notes": "A String", # User notes on how to apply this folder in the container.
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+            "path": "A String", # GTM Folder's API relative path.
+            "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+            "accountId": "A String", # GTM Account ID.
+            "name": "A String", # Folder display name.
+          },
+        },
+        "entityInBaseVersion": { # A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace. # The base version entity (since the latest sync operation) that has conflicting changes compared to the workspace. If this field is missing, it means the workspace entity is deleted from the base version.
+          "variable": { # Represents a Google Tag Manager Variable. # The variable being represented by the entity.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+            "name": "A String", # Variable display name.
+            "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+            "type": "A String", # GTM Variable Type.
+            "notes": "A String", # User notes on how to apply this variable in the container.
+            "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+              "A String",
+            ],
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+            "path": "A String", # GTM Variable's API relative path.
+            "accountId": "A String", # GTM Account ID.
+            "parameter": [ # The variable's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "parentFolderId": "A String", # Parent folder id.
+            "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+              "A String",
+            ],
+            "containerId": "A String", # GTM Container ID.
+          },
+          "trigger": { # Represents a Google Tag Manager Trigger # The trigger being represented by the entity.
+            "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "containerId": "A String", # GTM Container ID.
+            "accountId": "A String", # GTM Account ID.
+            "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "type": "A String", # Defines the data layer event that causes this trigger.
+            "parentFolderId": "A String", # Parent folder id.
+            "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+            "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "path": "A String", # GTM Trigger's API relative path.
+            "name": "A String", # Trigger display name.
+            "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "notes": "A String", # User notes on how to apply this trigger in the container.
+            "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "filter": [ # The trigger will only fire iff all Conditions are true.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "autoEventFilter": [ # Used in the case of auto event tracking.
+              { # Represents a predicate.
+                "type": "A String", # The type of operator for this condition.
+                "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                    # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                    # - At this time, the left operand (arg0) must be a reference to a variable.
+                    # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                    # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+                  { # Represents a Google Tag Manager Parameter.
+                    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                      # Object with schema name: Parameter
+                    ],
+                    "list": [ # This list parameter's parameters (keys will be ignored).
+                      # Object with schema name: Parameter
+                    ],
+                    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                    "type": "A String", # The parameter type. Valid values are:
+                        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                        # - integer: The value represents a 64-bit signed integer value, in base 10
+                        # - list: A list of parameters should be specified
+                        # - map: A map of parameters should be specified
+                        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+                  },
+                ],
+              },
+            ],
+            "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          },
+          "changeStatus": "A String", # Represents how the entity has been changed in the workspace.
+          "tag": { # Represents a Google Tag Manager Tag. # The tag being represented by the entity.
+            "setupTag": [ # The list of setup tags. Currently we only allow one.
+              { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+                "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+                "tagName": "A String", # The name of the setup tag.
+              },
+            ],
+            "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+              "A String",
+            ],
+            "accountId": "A String", # GTM Account ID.
+            "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+              { # Represents a tag that fires after another tag in order to tear down dependencies.
+                "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+                "tagName": "A String", # The name of the teardown tag.
+              },
+            ],
+            "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+            "workspaceId": "A String", # GTM Workspace ID.
+            "type": "A String", # GTM Tag Type.
+            "parentFolderId": "A String", # Parent folder id.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+            "containerId": "A String", # GTM Container ID.
+            "tagFiringOption": "A String", # Option to fire this tag.
+            "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+            "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+              "A String",
+            ],
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+            "path": "A String", # GTM Tag's API relative path.
+            "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+              "A String",
+            ],
+            "name": "A String", # Tag display name.
+            "parameter": [ # The tag's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+            "notes": "A String", # User notes on how to apply this tag in the container.
+            "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+            "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+              "A String",
+            ],
+          },
+          "folder": { # Represents a Google Tag Manager Folder. # The Folder being represented by the entity.
+            "containerId": "A String", # GTM Container ID.
+            "notes": "A String", # User notes on how to apply this folder in the container.
+            "workspaceId": "A String", # GTM Workspace ID.
+            "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+            "fingerprint": "A String", # The fingerprint of the GTM Folder as computed at storage time. This value is recomputed whenever the folder is modified.
+            "path": "A String", # GTM Folder's API relative path.
+            "folderId": "A String", # The Folder ID uniquely identifies the GTM Folder.
+            "accountId": "A String", # GTM Account ID.
+            "name": "A String", # Folder display name.
+          },
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a Workspace.
+
+Args:
+  path: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Container Workspace.
+  "description": "A String", # Workspace description.
+  "name": "A String", # Workspace display name.
+  "workspaceId": "A String", # The Workspace ID uniquely identifies the GTM Workspace.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.
+  "path": "A String", # GTM Workspace's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "containerId": "A String", # GTM Container ID.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the workspace in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Container Workspace.
+    "description": "A String", # Workspace description.
+    "name": "A String", # Workspace display name.
+    "workspaceId": "A String", # The Workspace ID uniquely identifies the GTM Workspace.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Workspace as computed at storage time. This value is recomputed whenever the workspace is modified.
+    "path": "A String", # GTM Workspace's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateProposal">updateProposal(path, body)</code>
+  <pre>Updates a GTM Workspace Proposal.
+
+Args:
+  path: string, GTM workspace proposal's relative path: Example: accounts/{aid}/containers/{cid}/workspace/{wid}/workspace_proposal (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Updates a workspace proposal with patch-like semantics.
+    "status": "A String", # If present, the status of the workspace proposal is updated.
+    "reviewers": [ # If present, the list of reviewers of the workspace proposal is updated.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "newComment": { # A comment from the reviewer or author. # If present, a new comment is added to the workspace proposal history.
+      "content": "A String", # The contents of the reviewer or author comment.
+    },
+    "fingerprint": "A String", # When provided, this fingerprint must match the fingerprint of the proposal in storage.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A workspace proposal represents an ongoing review of workspace changes in an effort to gain approval for container version creation.
+    "status": "A String", # The status of the workspace proposal as it goes through review.
+    "reviewers": [ # Lists of reviewers for the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "authors": [ # List of authors for the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "fingerprint": "A String", # The fingerprint of the GTM workspace proposal as computed at storage time. This value is recomputed whenever the proposal is modified.
+    "path": "A String", # GTM workspace proposal's relative path.
+    "history": [ # Records the history of comments and status changes.
+      { # A history event that represents a comment or status change in the proposal.
+        "comment": { # A comment from the reviewer or author. # A user or reviewer comment.
+          "content": "A String", # The contents of the reviewer or author comment.
+        },
+        "createdTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # When this history event was added to the workspace proposal.
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "type": "A String", # The history type distinguishing between comments and status changes.
+        "statusChange": { # A change in the proposal's status. # A change in the proposal's status.
+          "newStatus": "A String", # The new proposal status after that status change.
+          "oldStatus": "A String", # The old proposal status before the status change.
+        },
+        "createdBy": { # Represents an external user or internal Google Tag Manager system. # The party responsible for the change in history.
+          "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+          "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.proposal.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.proposal.html
new file mode 100644
index 0000000..c53dc99
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.proposal.html
@@ -0,0 +1,195 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.proposal.html">proposal</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a GTM Workspace Proposal.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a GTM Workspace Proposal.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a GTM Workspace Proposal.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{aid}/containers/{cid}/workspace/{wid} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Creates a workspace proposal to start a review of a workspace.
+    "reviewers": [ # List of users to review the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "initialComment": { # A comment from the reviewer or author. # If present, an initial comment to associate with the workspace proposal.
+      "content": "A String", # The contents of the reviewer or author comment.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A workspace proposal represents an ongoing review of workspace changes in an effort to gain approval for container version creation.
+    "status": "A String", # The status of the workspace proposal as it goes through review.
+    "reviewers": [ # Lists of reviewers for the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "authors": [ # List of authors for the workspace proposal.
+      { # Represents an external user or internal Google Tag Manager system.
+        "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+        "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+      },
+    ],
+    "fingerprint": "A String", # The fingerprint of the GTM workspace proposal as computed at storage time. This value is recomputed whenever the proposal is modified.
+    "path": "A String", # GTM workspace proposal's relative path.
+    "history": [ # Records the history of comments and status changes.
+      { # A history event that represents a comment or status change in the proposal.
+        "comment": { # A comment from the reviewer or author. # A user or reviewer comment.
+          "content": "A String", # The contents of the reviewer or author comment.
+        },
+        "createdTimestamp": { # A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). # When this history event was added to the workspace proposal.
+            #
+            # # Examples
+            #
+            # Example 1: Compute Timestamp from POSIX `time()`.
+            #
+            # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
+            #
+            # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+            #
+            # struct timeval tv; gettimeofday(&tv, NULL);
+            #
+            # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);
+            #
+            # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+            #
+            # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+            #
+            # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+            #
+            # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+            #
+            # long millis = System.currentTimeMillis();
+            #
+            # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();
+            #
+            #
+            #
+            # Example 5: Compute Timestamp from current time in Python.
+            #
+            # timestamp = Timestamp() timestamp.GetCurrentTime()
+            #
+            # # JSON Mapping
+            #
+            # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.
+            #
+            # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.
+            #
+            # In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard `datetime.datetime` object can be converted to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a formatter capable of generating timestamps in this format.
+          "nanos": 42, # Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.
+          "seconds": "A String", # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
+        },
+        "type": "A String", # The history type distinguishing between comments and status changes.
+        "statusChange": { # A change in the proposal's status. # A change in the proposal's status.
+          "newStatus": "A String", # The new proposal status after that status change.
+          "oldStatus": "A String", # The old proposal status before the status change.
+        },
+        "createdBy": { # Represents an external user or internal Google Tag Manager system. # The party responsible for the change in history.
+          "gaiaId": "A String", # Gaia id associated with a user, absent for the Google Tag Manager system.
+          "type": "A String", # User type distinguishes between a user and the Google Tag Manager system.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a GTM Workspace Proposal.
+
+Args:
+  path: string, GTM workspace proposal's relative path: Example: accounts/{aid}/containers/{cid}/workspace/{wid}/workspace_proposal (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.tags.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.tags.html
new file mode 100644
index 0000000..da53fcd
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.tags.html
@@ -0,0 +1,725 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.tags.html">tags</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a GTM Tag.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a GTM Tag.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a GTM Tag.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all GTM Tags of a Container.</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>
+<p class="toc_element">
+  <code><a href="#revert">revert(path, fingerprint=None)</a></code></p>
+<p class="firstline">Reverts changes to a GTM Tag in a GTM Workspace.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Tag.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a GTM Tag.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Tag.
+  "setupTag": [ # The list of setup tags. Currently we only allow one.
+    { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+      "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+      "tagName": "A String", # The name of the setup tag.
+    },
+  ],
+  "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+    "A String",
+  ],
+  "accountId": "A String", # GTM Account ID.
+  "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+    { # Represents a tag that fires after another tag in order to tear down dependencies.
+      "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+      "tagName": "A String", # The name of the teardown tag.
+    },
+  ],
+  "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "workspaceId": "A String", # GTM Workspace ID.
+  "type": "A String", # GTM Tag Type.
+  "parentFolderId": "A String", # Parent folder id.
+  "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+  "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+  "containerId": "A String", # GTM Container ID.
+  "tagFiringOption": "A String", # Option to fire this tag.
+  "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+  "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+    "A String",
+  ],
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+  "path": "A String", # GTM Tag's API relative path.
+  "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+    "A String",
+  ],
+  "name": "A String", # Tag display name.
+  "parameter": [ # The tag's parameters.
+    { # Represents a Google Tag Manager Parameter.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  ],
+  "notes": "A String", # User notes on how to apply this tag in the container.
+  "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+  "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+    "A String",
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Tag.
+    "setupTag": [ # The list of setup tags. Currently we only allow one.
+      { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+        "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+        "tagName": "A String", # The name of the setup tag.
+      },
+    ],
+    "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+      "A String",
+    ],
+    "accountId": "A String", # GTM Account ID.
+    "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+      { # Represents a tag that fires after another tag in order to tear down dependencies.
+        "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+        "tagName": "A String", # The name of the teardown tag.
+      },
+    ],
+    "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "type": "A String", # GTM Tag Type.
+    "parentFolderId": "A String", # Parent folder id.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+    "containerId": "A String", # GTM Container ID.
+    "tagFiringOption": "A String", # Option to fire this tag.
+    "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+    "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+      "A String",
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+    "path": "A String", # GTM Tag's API relative path.
+    "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+      "A String",
+    ],
+    "name": "A String", # Tag display name.
+    "parameter": [ # The tag's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "notes": "A String", # User notes on how to apply this tag in the container.
+    "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+    "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a GTM Tag.
+
+Args:
+  path: string, GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a GTM Tag.
+
+Args:
+  path: string, GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Tag.
+    "setupTag": [ # The list of setup tags. Currently we only allow one.
+      { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+        "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+        "tagName": "A String", # The name of the setup tag.
+      },
+    ],
+    "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+      "A String",
+    ],
+    "accountId": "A String", # GTM Account ID.
+    "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+      { # Represents a tag that fires after another tag in order to tear down dependencies.
+        "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+        "tagName": "A String", # The name of the teardown tag.
+      },
+    ],
+    "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "type": "A String", # GTM Tag Type.
+    "parentFolderId": "A String", # Parent folder id.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+    "containerId": "A String", # GTM Container ID.
+    "tagFiringOption": "A String", # Option to fire this tag.
+    "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+    "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+      "A String",
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+    "path": "A String", # GTM Tag's API relative path.
+    "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+      "A String",
+    ],
+    "name": "A String", # Tag display name.
+    "parameter": [ # The tag's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "notes": "A String", # User notes on how to apply this tag in the container.
+    "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+    "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all GTM Tags of a Container.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List Tags Response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "tag": [ # All GTM Tags of a GTM Container.
+      { # Represents a Google Tag Manager Tag.
+        "setupTag": [ # The list of setup tags. Currently we only allow one.
+          { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+            "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+            "tagName": "A String", # The name of the setup tag.
+          },
+        ],
+        "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+          "A String",
+        ],
+        "accountId": "A String", # GTM Account ID.
+        "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+          { # Represents a tag that fires after another tag in order to tear down dependencies.
+            "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+            "tagName": "A String", # The name of the teardown tag.
+          },
+        ],
+        "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "type": "A String", # GTM Tag Type.
+        "parentFolderId": "A String", # Parent folder id.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+        "containerId": "A String", # GTM Container ID.
+        "tagFiringOption": "A String", # Option to fire this tag.
+        "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+        "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+          "A String",
+        ],
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+        "path": "A String", # GTM Tag's API relative path.
+        "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+          "A String",
+        ],
+        "name": "A String", # Tag display name.
+        "parameter": [ # The tag's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "notes": "A String", # User notes on how to apply this tag in the container.
+        "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+        "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+          "A String",
+        ],
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="revert">revert(path, fingerprint=None)</code>
+  <pre>Reverts changes to a GTM Tag in a GTM Workspace.
+
+Args:
+  path: string, GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id} (required)
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of thetag in storage.
+
+Returns:
+  An object of the form:
+
+    { # The result of reverting a tag in a workspace.
+    "tag": { # Represents a Google Tag Manager Tag. # Tag as it appears in the latest container version since the last workspace synchronization operation. If no tag is present, that means the tag was deleted in the latest container version.
+      "setupTag": [ # The list of setup tags. Currently we only allow one.
+        { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+          "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+          "tagName": "A String", # The name of the setup tag.
+        },
+      ],
+      "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+        "A String",
+      ],
+      "accountId": "A String", # GTM Account ID.
+      "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+        { # Represents a tag that fires after another tag in order to tear down dependencies.
+          "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+          "tagName": "A String", # The name of the teardown tag.
+        },
+      ],
+      "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "workspaceId": "A String", # GTM Workspace ID.
+      "type": "A String", # GTM Tag Type.
+      "parentFolderId": "A String", # Parent folder id.
+      "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+      "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+      "containerId": "A String", # GTM Container ID.
+      "tagFiringOption": "A String", # Option to fire this tag.
+      "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+      "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+        "A String",
+      ],
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+      "path": "A String", # GTM Tag's API relative path.
+      "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+        "A String",
+      ],
+      "name": "A String", # Tag display name.
+      "parameter": [ # The tag's parameters.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+      "notes": "A String", # User notes on how to apply this tag in the container.
+      "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+      "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+        "A String",
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Tag.
+
+Args:
+  path: string, GTM Tag's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/tags/{tag_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Tag.
+  "setupTag": [ # The list of setup tags. Currently we only allow one.
+    { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+      "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+      "tagName": "A String", # The name of the setup tag.
+    },
+  ],
+  "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+    "A String",
+  ],
+  "accountId": "A String", # GTM Account ID.
+  "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+    { # Represents a tag that fires after another tag in order to tear down dependencies.
+      "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+      "tagName": "A String", # The name of the teardown tag.
+    },
+  ],
+  "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "workspaceId": "A String", # GTM Workspace ID.
+  "type": "A String", # GTM Tag Type.
+  "parentFolderId": "A String", # Parent folder id.
+  "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+  "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+  "containerId": "A String", # GTM Container ID.
+  "tagFiringOption": "A String", # Option to fire this tag.
+  "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+  "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+    "A String",
+  ],
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+  "path": "A String", # GTM Tag's API relative path.
+  "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+    "A String",
+  ],
+  "name": "A String", # Tag display name.
+  "parameter": [ # The tag's parameters.
+    { # Represents a Google Tag Manager Parameter.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  ],
+  "notes": "A String", # User notes on how to apply this tag in the container.
+  "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+  "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+    "A String",
+  ],
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the tag in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Tag.
+    "setupTag": [ # The list of setup tags. Currently we only allow one.
+      { # Represents a reference to atag that fires before another tag in order to set up dependencies.
+        "stopOnSetupFailure": True or False, # If true, fire the main tag if and only if the setup tag fires successfully. If false, fire the main tag regardless of setup tag firing status.
+        "tagName": "A String", # The name of the setup tag.
+      },
+    ],
+    "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
+      "A String",
+    ],
+    "accountId": "A String", # GTM Account ID.
+    "teardownTag": [ # The list of teardown tags. Currently we only allow one.
+      { # Represents a tag that fires after another tag in order to tear down dependencies.
+        "stopTeardownOnFailure": True or False, # If true, fire the teardown tag if and only if the main tag fires successfully. If false, fire the teardown tag regardless of main tag firing status.
+        "tagName": "A String", # The name of the teardown tag.
+      },
+    ],
+    "priority": { # Represents a Google Tag Manager Parameter. # User defined numeric priority of the tag. Tags are fired asynchronously in order of priority. Tags with higher numeric value fire first. A tag's priority can be a positive or negative value. The default value is 0.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "type": "A String", # GTM Tag Type.
+    "parentFolderId": "A String", # Parent folder id.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a tag.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a tag.
+    "containerId": "A String", # GTM Container ID.
+    "tagFiringOption": "A String", # Option to fire this tag.
+    "tagId": "A String", # The Tag ID uniquely identifies the GTM Tag.
+    "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
+      "A String",
+    ],
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
+    "path": "A String", # GTM Tag's API relative path.
+    "firingTriggerId": [ # Firing trigger IDs. A tag will fire when any of the listed triggers are true and all of its blockingTriggerIds (if any specified) are false.
+      "A String",
+    ],
+    "name": "A String", # Tag display name.
+    "parameter": [ # The tag's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "notes": "A String", # User notes on how to apply this tag in the container.
+    "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
+    "blockingTriggerId": [ # Blocking trigger IDs. If any of the listed triggers evaluate to true, the tag will not fire.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.triggers.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.triggers.html
new file mode 100644
index 0000000..a06e7be
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.triggers.html
@@ -0,0 +1,2762 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.triggers.html">triggers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a GTM Trigger.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a GTM Trigger.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a GTM Trigger.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all GTM Triggers of a Container.</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>
+<p class="toc_element">
+  <code><a href="#revert">revert(path, fingerprint=None)</a></code></p>
+<p class="firstline">Reverts changes to a GTM Trigger in a GTM Workspace.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Trigger.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a GTM Trigger.
+
+Args:
+  parent: string, GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Trigger
+  "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "containerId": "A String", # GTM Container ID.
+  "accountId": "A String", # GTM Account ID.
+  "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "workspaceId": "A String", # GTM Workspace ID.
+  "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+    { # Represents a predicate.
+      "type": "A String", # The type of operator for this condition.
+      "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+          # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+          # - At this time, the left operand (arg0) must be a reference to a variable.
+          # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+          # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+    },
+  ],
+  "type": "A String", # Defines the data layer event that causes this trigger.
+  "parentFolderId": "A String", # Parent folder id.
+  "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+  "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "path": "A String", # GTM Trigger's API relative path.
+  "name": "A String", # Trigger display name.
+  "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "notes": "A String", # User notes on how to apply this trigger in the container.
+  "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "filter": [ # The trigger will only fire iff all Conditions are true.
+    { # Represents a predicate.
+      "type": "A String", # The type of operator for this condition.
+      "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+          # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+          # - At this time, the left operand (arg0) must be a reference to a variable.
+          # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+          # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+    },
+  ],
+  "autoEventFilter": [ # Used in the case of auto event tracking.
+    { # Represents a predicate.
+      "type": "A String", # The type of operator for this condition.
+      "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+          # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+          # - At this time, the left operand (arg0) must be a reference to a variable.
+          # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+          # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+    },
+  ],
+  "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Trigger
+    "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "containerId": "A String", # GTM Container ID.
+    "accountId": "A String", # GTM Account ID.
+    "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "type": "A String", # Defines the data layer event that causes this trigger.
+    "parentFolderId": "A String", # Parent folder id.
+    "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+    "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "path": "A String", # GTM Trigger's API relative path.
+    "name": "A String", # Trigger display name.
+    "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "notes": "A String", # User notes on how to apply this trigger in the container.
+    "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "filter": [ # The trigger will only fire iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "autoEventFilter": [ # Used in the case of auto event tracking.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a GTM Trigger.
+
+Args:
+  path: string, GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a GTM Trigger.
+
+Args:
+  path: string, GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Trigger
+    "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "containerId": "A String", # GTM Container ID.
+    "accountId": "A String", # GTM Account ID.
+    "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "type": "A String", # Defines the data layer event that causes this trigger.
+    "parentFolderId": "A String", # Parent folder id.
+    "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+    "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "path": "A String", # GTM Trigger's API relative path.
+    "name": "A String", # Trigger display name.
+    "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "notes": "A String", # User notes on how to apply this trigger in the container.
+    "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "filter": [ # The trigger will only fire iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "autoEventFilter": [ # Used in the case of auto event tracking.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all GTM Triggers of a Container.
+
+Args:
+  parent: string, GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List triggers response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "trigger": [ # All GTM Triggers of a GTM Container.
+      { # Represents a Google Tag Manager Trigger
+        "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "containerId": "A String", # GTM Container ID.
+        "accountId": "A String", # GTM Account ID.
+        "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "workspaceId": "A String", # GTM Workspace ID.
+        "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "type": "A String", # Defines the data layer event that causes this trigger.
+        "parentFolderId": "A String", # Parent folder id.
+        "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+        "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "path": "A String", # GTM Trigger's API relative path.
+        "name": "A String", # Trigger display name.
+        "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "notes": "A String", # User notes on how to apply this trigger in the container.
+        "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "filter": [ # The trigger will only fire iff all Conditions are true.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "autoEventFilter": [ # Used in the case of auto event tracking.
+          { # Represents a predicate.
+            "type": "A String", # The type of operator for this condition.
+            "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+                # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+                # - At this time, the left operand (arg0) must be a reference to a variable.
+                # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+                # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+              },
+            ],
+          },
+        ],
+        "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+        "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="revert">revert(path, fingerprint=None)</code>
+  <pre>Reverts changes to a GTM Trigger in a GTM Workspace.
+
+Args:
+  path: string, GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id} (required)
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the trigger in storage.
+
+Returns:
+  An object of the form:
+
+    { # The result of reverting a trigger in a workspace.
+    "trigger": { # Represents a Google Tag Manager Trigger # Trigger as it appears in the latest container version since the last workspace synchronization operation. If no trigger is present, that means the trigger was deleted in the latest container version.
+      "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "containerId": "A String", # GTM Container ID.
+      "accountId": "A String", # GTM Account ID.
+      "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "workspaceId": "A String", # GTM Workspace ID.
+      "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+        { # Represents a predicate.
+          "type": "A String", # The type of operator for this condition.
+          "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+              # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+              # - At this time, the left operand (arg0) must be a reference to a variable.
+              # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+              # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+        },
+      ],
+      "type": "A String", # Defines the data layer event that causes this trigger.
+      "parentFolderId": "A String", # Parent folder id.
+      "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+      "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "path": "A String", # GTM Trigger's API relative path.
+      "name": "A String", # Trigger display name.
+      "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "notes": "A String", # User notes on how to apply this trigger in the container.
+      "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "filter": [ # The trigger will only fire iff all Conditions are true.
+        { # Represents a predicate.
+          "type": "A String", # The type of operator for this condition.
+          "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+              # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+              # - At this time, the left operand (arg0) must be a reference to a variable.
+              # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+              # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+        },
+      ],
+      "autoEventFilter": [ # Used in the case of auto event tracking.
+        { # Represents a predicate.
+          "type": "A String", # The type of operator for this condition.
+          "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+              # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+              # - At this time, the left operand (arg0) must be a reference to a variable.
+              # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+              # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+            },
+          ],
+        },
+      ],
+      "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+      "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Trigger.
+
+Args:
+  path: string, GTM Trigger's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/triggers/{trigger_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Trigger
+  "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "containerId": "A String", # GTM Container ID.
+  "accountId": "A String", # GTM Account ID.
+  "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "workspaceId": "A String", # GTM Workspace ID.
+  "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+    { # Represents a predicate.
+      "type": "A String", # The type of operator for this condition.
+      "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+          # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+          # - At this time, the left operand (arg0) must be a reference to a variable.
+          # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+          # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+    },
+  ],
+  "type": "A String", # Defines the data layer event that causes this trigger.
+  "parentFolderId": "A String", # Parent folder id.
+  "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+  "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "path": "A String", # GTM Trigger's API relative path.
+  "name": "A String", # Trigger display name.
+  "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "notes": "A String", # User notes on how to apply this trigger in the container.
+  "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "filter": [ # The trigger will only fire iff all Conditions are true.
+    { # Represents a predicate.
+      "type": "A String", # The type of operator for this condition.
+      "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+          # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+          # - At this time, the left operand (arg0) must be a reference to a variable.
+          # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+          # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+    },
+  ],
+  "autoEventFilter": [ # Used in the case of auto event tracking.
+    { # Represents a predicate.
+      "type": "A String", # The type of operator for this condition.
+      "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+          # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+          # - At this time, the left operand (arg0) must be a reference to a variable.
+          # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+          # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+    },
+  ],
+  "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+  "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+    "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+      # Object with schema name: Parameter
+    ],
+    "list": [ # This list parameter's parameters (keys will be ignored).
+      # Object with schema name: Parameter
+    ],
+    "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+    "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+    "type": "A String", # The parameter type. Valid values are:
+        # - boolean: The value represents a boolean, represented as 'true' or 'false'
+        # - integer: The value represents a 64-bit signed integer value, in base 10
+        # - list: A list of parameters should be specified
+        # - map: A map of parameters should be specified
+        # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+  },
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the trigger in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Trigger
+    "maxTimerLengthSeconds": { # Represents a Google Tag Manager Parameter. # Max time to fire Timer Events (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "totalTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum total visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "verticalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled vertically. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "horizontalScrollPercentageList": { # Represents a Google Tag Manager Parameter. # List of integer percentage values for scroll triggers. The trigger will fire when each percentage is reached when the view is scrolled horizontally. Only valid for AMP scroll triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "containerId": "A String", # GTM Container ID.
+    "accountId": "A String", # GTM Account ID.
+    "waitForTags": { # Represents a Google Tag Manager Parameter. # Whether or not we should delay the form submissions or link opening until all of the tags have fired (by preventing the default action and later simulating the default action). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "intervalSeconds": { # Represents a Google Tag Manager Parameter. # Time between Timer Events to fire (in seconds). Only valid for AMP Timer trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "eventName": { # Represents a Google Tag Manager Parameter. # Name of the GTM event that is fired. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "visibilitySelector": { # Represents a Google Tag Manager Parameter. # A visibility trigger CSS selector (i.e. "#id"). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "workspaceId": "A String", # GTM Workspace ID.
+    "customEventFilter": [ # Used in the case of custom event, which is fired iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "type": "A String", # Defines the data layer event that causes this trigger.
+    "parentFolderId": "A String", # Parent folder id.
+    "continuousTimeMinMilliseconds": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum continuous visible time (in milliseconds). Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "selector": { # Represents a Google Tag Manager Parameter. # A click trigger CSS selector (i.e. "a", "button" etc.). Only valid for AMP Click trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "triggerId": "A String", # The Trigger ID uniquely identifies the GTM Trigger.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Trigger as computed at storage time. This value is recomputed whenever the trigger is modified.
+    "visiblePercentageMax": { # Represents a Google Tag Manager Parameter. # A visibility trigger maximum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "path": "A String", # GTM Trigger's API relative path.
+    "name": "A String", # Trigger display name.
+    "visiblePercentageMin": { # Represents a Google Tag Manager Parameter. # A visibility trigger minimum percent visibility. Only valid for AMP Visibility trigger.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "waitForTagsTimeout": { # Represents a Google Tag Manager Parameter. # How long to wait (in milliseconds) for tags to fire when 'waits_for_tags' above evaluates to true. Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "notes": "A String", # User notes on how to apply this trigger in the container.
+    "interval": { # Represents a Google Tag Manager Parameter. # Time between triggering recurring Timer Events (in milliseconds). Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "filter": [ # The trigger will only fire iff all Conditions are true.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "autoEventFilter": [ # Used in the case of auto event tracking.
+      { # Represents a predicate.
+        "type": "A String", # The type of operator for this condition.
+        "parameter": [ # A list of named parameters (key/value), depending on the condition's type. Notes:
+            # - For binary operators, include parameters named arg0 and arg1 for specifying the left and right operands, respectively.
+            # - At this time, the left operand (arg0) must be a reference to a variable.
+            # - For case-insensitive Regex matching, include a boolean parameter named ignore_case that is set to true. If not specified or set to any other value, the matching will be case sensitive.
+            # - To negate an operator, include a boolean parameter named negate boolean parameter that is set to true.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+      },
+    ],
+    "limit": { # Represents a Google Tag Manager Parameter. # Limit of the number of GTM events this Timer Trigger will fire. If no limit is set, we will continue to fire GTM events until the user leaves the page. Only valid for Timer triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+    "checkValidation": { # Represents a Google Tag Manager Parameter. # Whether or not we should only fire tags if the form submit or link click event is not cancelled by some other event handler (e.g. because of validation). Only valid for Form Submission and Link Click triggers.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.containers.workspaces.variables.html b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.variables.html
new file mode 100644
index 0000000..8d97915
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.containers.workspaces.variables.html
@@ -0,0 +1,473 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.containers.html">containers</a> . <a href="tagmanager_v2.accounts.containers.workspaces.html">workspaces</a> . <a href="tagmanager_v2.accounts.containers.workspaces.variables.html">variables</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a GTM Variable.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Deletes a GTM Variable.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a GTM Variable.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">Lists all GTM Variables of a Container.</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>
+<p class="toc_element">
+  <code><a href="#revert">revert(path, fingerprint=None)</a></code></p>
+<p class="firstline">Reverts changes to a GTM Variable in a GTM Workspace.</p>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Variable.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a GTM Variable.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Variable.
+  "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+  "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+  "name": "A String", # Variable display name.
+  "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+  "type": "A String", # GTM Variable Type.
+  "notes": "A String", # User notes on how to apply this variable in the container.
+  "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+    "A String",
+  ],
+  "workspaceId": "A String", # GTM Workspace ID.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+  "path": "A String", # GTM Variable's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "parameter": [ # The variable's parameters.
+    { # Represents a Google Tag Manager Parameter.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  ],
+  "parentFolderId": "A String", # Parent folder id.
+  "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+    "A String",
+  ],
+  "containerId": "A String", # GTM Container ID.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Variable.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+    "name": "A String", # Variable display name.
+    "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+    "type": "A String", # GTM Variable Type.
+    "notes": "A String", # User notes on how to apply this variable in the container.
+    "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+      "A String",
+    ],
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+    "path": "A String", # GTM Variable's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "parameter": [ # The variable's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "parentFolderId": "A String", # Parent folder id.
+    "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+      "A String",
+    ],
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Deletes a GTM Variable.
+
+Args:
+  path: string, GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a GTM Variable.
+
+Args:
+  path: string, GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Variable.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+    "name": "A String", # Variable display name.
+    "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+    "type": "A String", # GTM Variable Type.
+    "notes": "A String", # User notes on how to apply this variable in the container.
+    "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+      "A String",
+    ],
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+    "path": "A String", # GTM Variable's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "parameter": [ # The variable's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "parentFolderId": "A String", # Parent folder id.
+    "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+      "A String",
+    ],
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>Lists all GTM Variables of a Container.
+
+Args:
+  parent: string, GTM Workspace's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List Variables Response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "variable": [ # All GTM Variables of a GTM Container.
+      { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "workspaceId": "A String", # GTM Workspace ID.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "path": "A String", # GTM Variable's API relative path.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+          },
+        ],
+        "parentFolderId": "A String", # Parent folder id.
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="revert">revert(path, fingerprint=None)</code>
+  <pre>Reverts changes to a GTM Variable in a GTM Workspace.
+
+Args:
+  path: string, GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id} (required)
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the variable in storage.
+
+Returns:
+  An object of the form:
+
+    { # The result of reverting a variable in a workspace.
+    "variable": { # Represents a Google Tag Manager Variable. # Variable as it appears in the latest container version since the last workspace synchronization operation. If no variable is present, that means the variable was deleted in the latest container version.
+      "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+      "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+      "name": "A String", # Variable display name.
+      "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+      "type": "A String", # GTM Variable Type.
+      "notes": "A String", # User notes on how to apply this variable in the container.
+      "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+        "A String",
+      ],
+      "workspaceId": "A String", # GTM Workspace ID.
+      "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+      "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+      "path": "A String", # GTM Variable's API relative path.
+      "accountId": "A String", # GTM Account ID.
+      "parameter": [ # The variable's parameters.
+        { # Represents a Google Tag Manager Parameter.
+          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+            # Object with schema name: Parameter
+          ],
+          "list": [ # This list parameter's parameters (keys will be ignored).
+            # Object with schema name: Parameter
+          ],
+          "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+          "type": "A String", # The parameter type. Valid values are:
+              # - boolean: The value represents a boolean, represented as 'true' or 'false'
+              # - integer: The value represents a 64-bit signed integer value, in base 10
+              # - list: A list of parameters should be specified
+              # - map: A map of parameters should be specified
+              # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+        },
+      ],
+      "parentFolderId": "A String", # Parent folder id.
+      "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+        "A String",
+      ],
+      "containerId": "A String", # GTM Container ID.
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Variable.
+
+Args:
+  path: string, GTM Variable's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/variables/{variable_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Variable.
+  "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+  "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+  "name": "A String", # Variable display name.
+  "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+  "type": "A String", # GTM Variable Type.
+  "notes": "A String", # User notes on how to apply this variable in the container.
+  "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+    "A String",
+  ],
+  "workspaceId": "A String", # GTM Workspace ID.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+  "path": "A String", # GTM Variable's API relative path.
+  "accountId": "A String", # GTM Account ID.
+  "parameter": [ # The variable's parameters.
+    { # Represents a Google Tag Manager Parameter.
+      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+        # Object with schema name: Parameter
+      ],
+      "list": [ # This list parameter's parameters (keys will be ignored).
+        # Object with schema name: Parameter
+      ],
+      "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+      "type": "A String", # The parameter type. Valid values are:
+          # - boolean: The value represents a boolean, represented as 'true' or 'false'
+          # - integer: The value represents a 64-bit signed integer value, in base 10
+          # - list: A list of parameters should be specified
+          # - map: A map of parameters should be specified
+          # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+    },
+  ],
+  "parentFolderId": "A String", # Parent folder id.
+  "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+    "A String",
+  ],
+  "containerId": "A String", # GTM Container ID.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the variable in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Variable.
+    "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+    "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+    "name": "A String", # Variable display name.
+    "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+    "type": "A String", # GTM Variable Type.
+    "notes": "A String", # User notes on how to apply this variable in the container.
+    "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+      "A String",
+    ],
+    "workspaceId": "A String", # GTM Workspace ID.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+    "path": "A String", # GTM Variable's API relative path.
+    "accountId": "A String", # GTM Account ID.
+    "parameter": [ # The variable's parameters.
+      { # Represents a Google Tag Manager Parameter.
+        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+          # Object with schema name: Parameter
+        ],
+        "list": [ # This list parameter's parameters (keys will be ignored).
+          # Object with schema name: Parameter
+        ],
+        "value": "A String", # A parameter's value (may contain variable references such as "{{myVariable}}") as appropriate to the specified type.
+        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+        "type": "A String", # The parameter type. Valid values are:
+            # - boolean: The value represents a boolean, represented as 'true' or 'false'
+            # - integer: The value represents a 64-bit signed integer value, in base 10
+            # - list: A list of parameters should be specified
+            # - map: A map of parameters should be specified
+            # - template: The value represents any text; this can include variable references (even variable references that might return non-string types)
+      },
+    ],
+    "parentFolderId": "A String", # Parent folder id.
+    "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+      "A String",
+    ],
+    "containerId": "A String", # GTM Container ID.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.html b/docs/dyn/tagmanager_v2.accounts.html
new file mode 100644
index 0000000..1483369
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.html
@@ -0,0 +1,192 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.containers.html">containers()</a></code>
+</p>
+<p class="firstline">Returns the containers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="tagmanager_v2.accounts.user_permissions.html">user_permissions()</a></code>
+</p>
+<p class="firstline">Returns the user_permissions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a GTM Account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None)</a></code></p>
+<p class="firstline">Lists all GTM Accounts that a user has access to.</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>
+<p class="toc_element">
+  <code><a href="#update">update(path, body, fingerprint=None)</a></code></p>
+<p class="firstline">Updates a GTM Account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a GTM Account.
+
+Args:
+  path: string, GTM Accounts's API relative path. Example: accounts/{account_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Account.
+    "name": "A String", # Account display name.
+    "shareData": True or False, # Whether the account shares data anonymously with Google and others. This flag enables benchmarking by sharing your data in an anonymous form. Google will remove all identifiable information about your website, combine the data with hundreds of other anonymous sites and report aggregate trends in the benchmarking service.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.
+    "path": "A String", # GTM Account's API relative path.
+    "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None)</code>
+  <pre>Lists all GTM Accounts that a user has access to.
+
+Args:
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List Accounts Response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "account": [ # List of GTM Accounts that a user has access to.
+      { # Represents a Google Tag Manager Account.
+        "name": "A String", # Account display name.
+        "shareData": True or False, # Whether the account shares data anonymously with Google and others. This flag enables benchmarking by sharing your data in an anonymous form. Google will remove all identifiable information about your website, combine the data with hundreds of other anonymous sites and report aggregate trends in the benchmarking service.
+        "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+        "fingerprint": "A String", # The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.
+        "path": "A String", # GTM Account's API relative path.
+        "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+      },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="update">update(path, body, fingerprint=None)</code>
+  <pre>Updates a GTM Account.
+
+Args:
+  path: string, GTM Accounts's API relative path. Example: accounts/{account_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Google Tag Manager Account.
+  "name": "A String", # Account display name.
+  "shareData": True or False, # Whether the account shares data anonymously with Google and others. This flag enables benchmarking by sharing your data in an anonymous form. Google will remove all identifiable information about your website, combine the data with hundreds of other anonymous sites and report aggregate trends in the benchmarking service.
+  "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+  "fingerprint": "A String", # The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.
+  "path": "A String", # GTM Account's API relative path.
+  "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+}
+
+  fingerprint: string, When provided, this fingerprint must match the fingerprint of the account in storage.
+
+Returns:
+  An object of the form:
+
+    { # Represents a Google Tag Manager Account.
+    "name": "A String", # Account display name.
+    "shareData": True or False, # Whether the account shares data anonymously with Google and others. This flag enables benchmarking by sharing your data in an anonymous form. Google will remove all identifiable information about your website, combine the data with hundreds of other anonymous sites and report aggregate trends in the benchmarking service.
+    "tagManagerUrl": "A String", # Auto generated link to the tag manager UI
+    "fingerprint": "A String", # The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.
+    "path": "A String", # GTM Account's API relative path.
+    "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tagmanager_v2.accounts.user_permissions.html b/docs/dyn/tagmanager_v2.accounts.user_permissions.html
new file mode 100644
index 0000000..31fb55d
--- /dev/null
+++ b/docs/dyn/tagmanager_v2.accounts.user_permissions.html
@@ -0,0 +1,265 @@
+<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="tagmanager_v2.html">Tag Manager API</a> . <a href="tagmanager_v2.accounts.html">accounts</a> . <a href="tagmanager_v2.accounts.user_permissions.html">user_permissions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body)</a></code></p>
+<p class="firstline">Creates a user's Account & Container access.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(path)</a></code></p>
+<p class="firstline">Removes a user from the account, revoking access to it and all of its containers.</p>
+<p class="toc_element">
+  <code><a href="#get">get(path)</a></code></p>
+<p class="firstline">Gets a user's Account & Container access.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageToken=None)</a></code></p>
+<p class="firstline">List all users that have access to the account along with Account and Container user access granted to each of them.</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>
+<p class="toc_element">
+  <code><a href="#update">update(path, body)</a></code></p>
+<p class="firstline">Updates a user's Account & Container access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body)</code>
+  <pre>Creates a user's Account & Container access.
+
+Args:
+  parent: string, GTM Account's API relative path. Example: accounts/{account_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a user's permissions to an account and its container.
+    "containerAccess": [ # GTM Container access permissions.
+      { # Defines the Google Tag Manager Container access permissions.
+        "containerId": "A String", # GTM Container ID.
+        "permission": "A String", # List of Container permissions.
+      },
+    ],
+    "path": "A String", # GTM UserPermission's API relative path.
+    "accountAccess": { # Defines the Google Tag Manager Account access permissions. # GTM Account access permissions.
+      "permission": "A String", # Whether the user has no access, user access, or admin access to an account.
+    },
+    "emailAddress": "A String", # User's email address.
+    "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a user's permissions to an account and its container.
+      "containerAccess": [ # GTM Container access permissions.
+        { # Defines the Google Tag Manager Container access permissions.
+          "containerId": "A String", # GTM Container ID.
+          "permission": "A String", # List of Container permissions.
+        },
+      ],
+      "path": "A String", # GTM UserPermission's API relative path.
+      "accountAccess": { # Defines the Google Tag Manager Account access permissions. # GTM Account access permissions.
+        "permission": "A String", # Whether the user has no access, user access, or admin access to an account.
+      },
+      "emailAddress": "A String", # User's email address.
+      "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(path)</code>
+  <pre>Removes a user from the account, revoking access to it and all of its containers.
+
+Args:
+  path: string, GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id} (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(path)</code>
+  <pre>Gets a user's Account & Container access.
+
+Args:
+  path: string, GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id} (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a user's permissions to an account and its container.
+      "containerAccess": [ # GTM Container access permissions.
+        { # Defines the Google Tag Manager Container access permissions.
+          "containerId": "A String", # GTM Container ID.
+          "permission": "A String", # List of Container permissions.
+        },
+      ],
+      "path": "A String", # GTM UserPermission's API relative path.
+      "accountAccess": { # Defines the Google Tag Manager Account access permissions. # GTM Account access permissions.
+        "permission": "A String", # Whether the user has no access, user access, or admin access to an account.
+      },
+      "emailAddress": "A String", # User's email address.
+      "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageToken=None)</code>
+  <pre>List all users that have access to the account along with Account and Container user access granted to each of them.
+
+Args:
+  parent: string, GTM Accounts's API relative path. Example: accounts/{account_id} (required)
+  pageToken: string, Continuation token for fetching the next page of results.
+
+Returns:
+  An object of the form:
+
+    { # List user permissions response.
+    "nextPageToken": "A String", # Continuation token for fetching the next page of results.
+    "userPermission": [ # All GTM UserPermissions of a GTM Account.
+      { # Represents a user's permissions to an account and its container.
+          "containerAccess": [ # GTM Container access permissions.
+            { # Defines the Google Tag Manager Container access permissions.
+              "containerId": "A String", # GTM Container ID.
+              "permission": "A String", # List of Container permissions.
+            },
+          ],
+          "path": "A String", # GTM UserPermission's API relative path.
+          "accountAccess": { # Defines the Google Tag Manager Account access permissions. # GTM Account access permissions.
+            "permission": "A String", # Whether the user has no access, user access, or admin access to an account.
+          },
+          "emailAddress": "A String", # User's email address.
+          "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+        },
+    ],
+  }</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>
+
+<div class="method">
+    <code class="details" id="update">update(path, body)</code>
+  <pre>Updates a user's Account & Container access.
+
+Args:
+  path: string, GTM UserPermission's API relative path. Example: accounts/{account_id}/user_permissions/{user_permission_id} (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a user's permissions to an account and its container.
+    "containerAccess": [ # GTM Container access permissions.
+      { # Defines the Google Tag Manager Container access permissions.
+        "containerId": "A String", # GTM Container ID.
+        "permission": "A String", # List of Container permissions.
+      },
+    ],
+    "path": "A String", # GTM UserPermission's API relative path.
+    "accountAccess": { # Defines the Google Tag Manager Account access permissions. # GTM Account access permissions.
+      "permission": "A String", # Whether the user has no access, user access, or admin access to an account.
+    },
+    "emailAddress": "A String", # User's email address.
+    "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a user's permissions to an account and its container.
+      "containerAccess": [ # GTM Container access permissions.
+        { # Defines the Google Tag Manager Container access permissions.
+          "containerId": "A String", # GTM Container ID.
+          "permission": "A String", # List of Container permissions.
+        },
+      ],
+      "path": "A String", # GTM UserPermission's API relative path.
+      "accountAccess": { # Defines the Google Tag Manager Account access permissions. # GTM Account access permissions.
+        "permission": "A String", # Whether the user has no access, user access, or admin access to an account.
+      },
+      "emailAddress": "A String", # User's email address.
+      "accountId": "A String", # The Account ID uniquely identifies the GTM Account.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tracing_v1.html b/docs/dyn/tagmanager_v2.html
similarity index 91%
copy from docs/dyn/tracing_v1.html
copy to docs/dyn/tagmanager_v2.html
index 295b2bb..a0b0bf7 100644
--- a/docs/dyn/tracing_v1.html
+++ b/docs/dyn/tagmanager_v2.html
@@ -72,12 +72,12 @@
 
 </style>
 
-<h1><a href="tracing_v1.html">Google Tracing API</a></h1>
+<h1><a href="tagmanager_v2.html">Tag Manager API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="tracing_v1.projects.html">projects()</a></code>
+  <code><a href="tagmanager_v2.accounts.html">accounts()</a></code>
 </p>
-<p class="firstline">Returns the projects Resource.</p>
+<p class="firstline">Returns the accounts Resource.</p>
 
 <p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
diff --git a/docs/dyn/tasks_v1.tasklists.html b/docs/dyn/tasks_v1.tasklists.html
index 3e70ee3..6267117 100644
--- a/docs/dyn/tasks_v1.tasklists.html
+++ b/docs/dyn/tasks_v1.tasklists.html
@@ -117,11 +117,10 @@
 
     {
       "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-      "title": "A String", # Title of the task list.
-      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
       "etag": "A String", # ETag of the resource.
       "id": "A String", # Task list identifier.
       "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+      "title": "A String", # Title of the task list.
     }</pre>
 </div>
 
@@ -135,11 +134,10 @@
 
 {
     "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-    "title": "A String", # Title of the task list.
-    "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
     "etag": "A String", # ETag of the resource.
     "id": "A String", # Task list identifier.
     "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    "title": "A String", # Title of the task list.
   }
 
 
@@ -148,11 +146,10 @@
 
     {
       "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-      "title": "A String", # Title of the task list.
-      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
       "etag": "A String", # ETag of the resource.
       "id": "A String", # Task list identifier.
       "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+      "title": "A String", # Title of the task list.
     }</pre>
 </div>
 
@@ -162,7 +159,7 @@
 
 Args:
   pageToken: string, Token specifying the result page to return. Optional.
-  maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.
+  maxResults: integer, Maximum number of task lists returned on one page. Optional. The default is 100.
 
 Returns:
   An object of the form:
@@ -172,11 +169,10 @@
     "items": [ # Collection of task lists.
       {
           "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-          "title": "A String", # Title of the task list.
-          "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
           "etag": "A String", # ETag of the resource.
           "id": "A String", # Task list identifier.
           "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+          "title": "A String", # Title of the task list.
         },
     ],
     "kind": "tasks#taskLists", # Type of the resource. This is always "tasks#taskLists".
@@ -209,11 +205,10 @@
 
 {
     "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-    "title": "A String", # Title of the task list.
-    "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
     "etag": "A String", # ETag of the resource.
     "id": "A String", # Task list identifier.
     "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    "title": "A String", # Title of the task list.
   }
 
 
@@ -222,11 +217,10 @@
 
     {
       "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-      "title": "A String", # Title of the task list.
-      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
       "etag": "A String", # ETag of the resource.
       "id": "A String", # Task list identifier.
       "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+      "title": "A String", # Title of the task list.
     }</pre>
 </div>
 
@@ -241,11 +235,10 @@
 
 {
     "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-    "title": "A String", # Title of the task list.
-    "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
     "etag": "A String", # ETag of the resource.
     "id": "A String", # Task list identifier.
     "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+    "title": "A String", # Title of the task list.
   }
 
 
@@ -254,11 +247,10 @@
 
     {
       "kind": "tasks#taskList", # Type of the resource. This is always "tasks#taskList".
-      "title": "A String", # Title of the task list.
-      "updated": "A String", # Last modification time of the task list (as a RFC 3339 timestamp).
       "etag": "A String", # ETag of the resource.
       "id": "A String", # Task list identifier.
       "selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.
+      "title": "A String", # Title of the task list.
     }</pre>
 </div>
 
diff --git a/docs/dyn/tasks_v1.tasks.html b/docs/dyn/tasks_v1.tasks.html
index d580833..6f2117e 100644
--- a/docs/dyn/tasks_v1.tasks.html
+++ b/docs/dyn/tasks_v1.tasks.html
@@ -87,7 +87,7 @@
   <code><a href="#insert">insert(tasklist, body, parent=None, previous=None)</a></code></p>
 <p class="firstline">Creates a new task on the specified task list.</p>
 <p class="toc_element">
-  <code><a href="#list">list(tasklist, showCompleted=None, dueMin=None, dueMax=None, pageToken=None, updatedMin=None, showDeleted=None, completedMax=None, maxResults=None, completedMin=None, showHidden=None)</a></code></p>
+  <code><a href="#list">list(tasklist, dueMax=None, pageToken=None, updatedMin=None, maxResults=None, completedMin=None, showDeleted=None, completedMax=None, showHidden=None, showCompleted=None, dueMin=None)</a></code></p>
 <p class="firstline">Returns all tasks in the specified task list.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -137,13 +137,6 @@
       "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
       "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
       "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-      "links": [ # Collection of links. This collection is read-only.
-        {
-          "type": "A String", # Type of the link, e.g. "email".
-          "link": "A String", # The URL.
-          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-        },
-      ],
       "title": "A String", # Title of the task.
       "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
       "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -171,13 +164,6 @@
     "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
     "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
     "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-    "links": [ # Collection of links. This collection is read-only.
-      {
-        "type": "A String", # Type of the link, e.g. "email".
-        "link": "A String", # The URL.
-        "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-      },
-    ],
     "title": "A String", # Title of the task.
     "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
     "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -201,13 +187,6 @@
       "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
       "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
       "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-      "links": [ # Collection of links. This collection is read-only.
-        {
-          "type": "A String", # Type of the link, e.g. "email".
-          "link": "A String", # The URL.
-          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-        },
-      ],
       "title": "A String", # Title of the task.
       "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
       "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -222,21 +201,21 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(tasklist, showCompleted=None, dueMin=None, dueMax=None, pageToken=None, updatedMin=None, showDeleted=None, completedMax=None, maxResults=None, completedMin=None, showHidden=None)</code>
+    <code class="details" id="list">list(tasklist, dueMax=None, pageToken=None, updatedMin=None, maxResults=None, completedMin=None, showDeleted=None, completedMax=None, showHidden=None, showCompleted=None, dueMin=None)</code>
   <pre>Returns all tasks in the specified task list.
 
 Args:
   tasklist: string, Task list identifier. (required)
-  showCompleted: boolean, Flag indicating whether completed tasks are returned in the result. Optional. The default is True.
-  dueMin: string, Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
   dueMax: string, Upper bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
   pageToken: string, Token specifying the result page to return. Optional.
   updatedMin: string, Lower bound for a task's last modification time (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by last modification time.
+  maxResults: integer, Maximum number of task lists returned on one page. Optional. The default is 100.
+  completedMin: string, Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
   showDeleted: boolean, Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.
   completedMax: string, Upper bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
-  maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.
-  completedMin: string, Lower bound for a task's completion date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by completion date.
   showHidden: boolean, Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.
+  showCompleted: boolean, Flag indicating whether completed tasks are returned in the result. Optional. The default is True.
+  dueMin: string, Lower bound for a task's due date (as a RFC 3339 timestamp) to filter by. Optional. The default is not to filter by due date.
 
 Returns:
   An object of the form:
@@ -249,13 +228,6 @@
           "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
           "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
           "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-          "links": [ # Collection of links. This collection is read-only.
-            {
-              "type": "A String", # Type of the link, e.g. "email".
-              "link": "A String", # The URL.
-              "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-            },
-          ],
           "title": "A String", # Title of the task.
           "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
           "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -305,13 +277,6 @@
       "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
       "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
       "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-      "links": [ # Collection of links. This collection is read-only.
-        {
-          "type": "A String", # Type of the link, e.g. "email".
-          "link": "A String", # The URL.
-          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-        },
-      ],
       "title": "A String", # Title of the task.
       "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
       "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -340,13 +305,6 @@
     "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
     "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
     "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-    "links": [ # Collection of links. This collection is read-only.
-      {
-        "type": "A String", # Type of the link, e.g. "email".
-        "link": "A String", # The URL.
-        "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-      },
-    ],
     "title": "A String", # Title of the task.
     "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
     "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -368,13 +326,6 @@
       "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
       "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
       "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-      "links": [ # Collection of links. This collection is read-only.
-        {
-          "type": "A String", # Type of the link, e.g. "email".
-          "link": "A String", # The URL.
-          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-        },
-      ],
       "title": "A String", # Title of the task.
       "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
       "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -403,13 +354,6 @@
     "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
     "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
     "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-    "links": [ # Collection of links. This collection is read-only.
-      {
-        "type": "A String", # Type of the link, e.g. "email".
-        "link": "A String", # The URL.
-        "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-      },
-    ],
     "title": "A String", # Title of the task.
     "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
     "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
@@ -431,13 +375,6 @@
       "kind": "tasks#task", # Type of the resource. This is always "tasks#task".
       "updated": "A String", # Last modification time of the task (as a RFC 3339 timestamp).
       "parent": "A String", # Parent task identifier. This field is omitted if it is a top-level task. This field is read-only. Use the "move" method to move the task under a different parent or to the top level.
-      "links": [ # Collection of links. This collection is read-only.
-        {
-          "type": "A String", # Type of the link, e.g. "email".
-          "link": "A String", # The URL.
-          "description": "A String", # The description. In HTML speak: Everything between <a> and </a>.
-        },
-      ],
       "title": "A String", # Title of the task.
       "deleted": True or False, # Flag indicating whether the task has been deleted. The default if False.
       "completed": "A String", # Completion date of the task (as a RFC 3339 timestamp). This field is omitted if the task has not been completed.
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html
index 87556b1..226daee 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.perfSampleSeries.html
@@ -180,6 +180,7 @@
   filter: string, Specify one or more PerfMetricType values such as CPU to filter the result (repeated)
     Allowed values
       cpu - 
+      graphics - 
       memory - 
       network - 
       perfMetricTypeUnspecified - 
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
index 57001b0..27000e6 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
@@ -217,7 +217,7 @@
             #
             # # Overview
             #
-            # The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions.
+            # The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -231,7 +231,7 @@
             #
             # - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors.
             #
-            # - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose.
+            # - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response.
             #
@@ -257,6 +257,10 @@
                 #
                 # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
                 #
+                # Example 4: Pack and unpack a message in Go
+                #
+                # foo := &pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... }
+                #
                 # The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".
                 #
                 #
diff --git a/docs/dyn/toolresults_v1beta3.projects.html b/docs/dyn/toolresults_v1beta3.projects.html
index 72d4fef..f45a7cd 100644
--- a/docs/dyn/toolresults_v1beta3.projects.html
+++ b/docs/dyn/toolresults_v1beta3.projects.html
@@ -120,11 +120,11 @@
     <code class="details" id="initializeSettings">initializeSettings(projectId)</code>
   <pre>Creates resources for settings which have not yet been set.
 
-Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in the name of the user calling. Except in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days.
+Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in an FTL-own storage project. Except for in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days.
 
-The bucket is created with the project-private ACL: All project team members are given permissions to the bucket and objects created within it according to their roles. Project owners have owners rights, and so on. The default ACL on objects created in the bucket is project-private as well. See Google Cloud Storage documentation for more details.
+The bucket is created with the following permissions: - Owner access for owners of central storage project (FTL-owned) - Writer access for owners/editors of customer project - Reader access for viewers of customer project The default ACL on objects created in the bucket is: - Owner access for owners of central storage project - Reader access for owners/editors/viewers of customer project See Google Cloud Storage documentation for more details.
 
-If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deteleted, a new bucket will be created.
+If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deleted, a new bucket will be created.
 
 May return any canonical error codes, including the following:
 
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html
index db77d6e..5a148a1 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.perfSampleSeries.html
@@ -180,6 +180,7 @@
   filter: string, Specify one or more PerfMetricType values such as CPU to filter the result (repeated)
     Allowed values
       cpu - 
+      graphics - 
       memory - 
       network - 
       perfMetricTypeUnspecified - 
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
index 61d1637..e7c19b9 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
@@ -217,7 +217,7 @@
             #
             # # Overview
             #
-            # The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` which can be used for common error conditions.
+            # The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of [google.rpc.Code][], but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` that can be used for common error conditions.
             #
             # # Language mapping
             #
@@ -231,7 +231,7 @@
             #
             # - Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors.
             #
-            # - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting purpose.
+            # - Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting.
             #
             # - Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response.
             #
@@ -257,6 +257,10 @@
                 #
                 # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
                 #
+                # Example 4: Pack and unpack a message in Go
+                #
+                # foo := &pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... }
+                #
                 # The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".
                 #
                 #
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.html b/docs/dyn/toolresults_v1beta3firstparty.projects.html
index 7a076f2..1dbc6c2 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.html
@@ -120,11 +120,11 @@
     <code class="details" id="initializeSettings">initializeSettings(projectId)</code>
   <pre>Creates resources for settings which have not yet been set.
 
-Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in the name of the user calling. Except in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days.
+Currently, this creates a single resource: a Google Cloud Storage bucket, to be used as the default bucket for this project. The bucket is created in an FTL-own storage project. Except for in rare cases, calling this method in parallel from multiple clients will only create a single bucket. In order to avoid unnecessary storage charges, the bucket is configured to automatically delete objects older than 90 days.
 
-The bucket is created with the project-private ACL: All project team members are given permissions to the bucket and objects created within it according to their roles. Project owners have owners rights, and so on. The default ACL on objects created in the bucket is project-private as well. See Google Cloud Storage documentation for more details.
+The bucket is created with the following permissions: - Owner access for owners of central storage project (FTL-owned) - Writer access for owners/editors of customer project - Reader access for viewers of customer project The default ACL on objects created in the bucket is: - Owner access for owners of central storage project - Reader access for owners/editors/viewers of customer project See Google Cloud Storage documentation for more details.
 
-If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deteleted, a new bucket will be created.
+If there is already a default bucket set and the project can access the bucket, this call does nothing. However, if the project doesn't have the permission to access the bucket or the bucket is deleted, a new bucket will be created.
 
 May return any canonical error codes, including the following:
 
diff --git a/docs/dyn/tracing_v1.projects.traces.html b/docs/dyn/tracing_v1.projects.traces.html
deleted file mode 100644
index f4d3c0e..0000000
--- a/docs/dyn/tracing_v1.projects.traces.html
+++ /dev/null
@@ -1,633 +0,0 @@
-<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="tracing_v1.html">Google Tracing API</a> . <a href="tracing_v1.projects.html">projects</a> . <a href="tracing_v1.projects.traces.html">traces</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#batchUpdate">batchUpdate(parent, body, x__xgafv=None)</a></code></p>
-<p class="firstline">Sends new spans to Stackdriver Trace or updates existing spans. If the</p>
-<p class="toc_element">
-  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a specific trace.</p>
-<p class="toc_element">
-  <code><a href="#list">list(parent, orderBy=None, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, filter=None, endTime=None)</a></code></p>
-<p class="firstline">Returns of a list of traces that match the specified filter conditions.</p>
-<p class="toc_element">
-  <code><a href="#listSpans">listSpans(name, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns a list of spans within a trace.</p>
-<p class="toc_element">
-  <code><a href="#listSpans_next">listSpans_next(previous_request, previous_response)</a></code></p>
-<p class="firstline">Retrieves the next page of results.</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="batchUpdate">batchUpdate(parent, body, x__xgafv=None)</code>
-  <pre>Sends new spans to Stackdriver Trace or updates existing spans. If the
-name of a trace that you send matches that of an existing trace, any fields
-in the existing trace and its spans are overwritten by the provided values,
-and any new fields provided are merged with the existing trace data. If the
-name does not match, a new trace is created with given set of spans.
-
-Args:
-  parent: string, ID of the Cloud project where the trace data is stored. (required)
-  body: object, The request body. (required)
-    The object takes the form of:
-
-{ # The request message for the `BatchUpdateSpans` method.
-    "spanUpdates": { # A map from trace name to spans to be stored or updated.
-      "a_key": { # Collection of spans to update.
-        "spans": [ # A collection of spans.
-          { # A span represents a single operation within a trace. Spans can be nested
-              # to form a trace tree. Often, a trace contains a root span that
-              # describes the end-to-end latency and, optionally, one or more subspans for
-              # its sub-operations. (A trace could alternatively contain multiple root spans,
-              # or none at all.) Spans do not need to be contiguous. There may be gaps
-              # and/or overlaps between spans in a trace.
-            "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
-                # programming environments, including REST APIs and RPC APIs. It is used by
-                # [gRPC](https://github.com/grpc). The error model is designed to be:
-                #
-                # - Simple to use and understand for most users
-                # - Flexible enough to meet unexpected needs
-                #
-                # # Overview
-                #
-                # The `Status` message contains three pieces of data: error code, error message,
-                # and error details. The error code should be an enum value of
-                # google.rpc.Code, but it may accept additional error codes if needed.  The
-                # error message should be a developer-facing English message that helps
-                # developers *understand* and *resolve* the error. If a localized user-facing
-                # error message is needed, put the localized message in the error details or
-                # localize it in the client. The optional error details may contain arbitrary
-                # information about the error. There is a predefined set of error detail types
-                # in the package `google.rpc` which can be used for common error conditions.
-                #
-                # # Language mapping
-                #
-                # The `Status` message is the logical representation of the error model, but it
-                # is not necessarily the actual wire format. When the `Status` message is
-                # exposed in different client libraries and different wire protocols, it can be
-                # mapped differently. For example, it will likely be mapped to some exceptions
-                # in Java, but more likely mapped to some error codes in C.
-                #
-                # # Other uses
-                #
-                # The error model and the `Status` message can be used in a variety of
-                # environments, either with or without APIs, to provide a
-                # consistent developer experience across different environments.
-                #
-                # Example uses of this error model include:
-                #
-                # - Partial errors. If a service needs to return partial errors to the client,
-                #     it may embed the `Status` in the normal response to indicate the partial
-                #     errors.
-                #
-                # - Workflow errors. A typical workflow has multiple steps. Each step may
-                #     have a `Status` message for error reporting purpose.
-                #
-                # - Batch operations. If a client uses batch request and batch response, the
-                #     `Status` message should be used directly inside batch response, one for
-                #     each error sub-response.
-                #
-                # - Asynchronous operations. If an API call embeds asynchronous operation
-                #     results in its response, the status of those operations should be
-                #     represented directly using the `Status` message.
-                #
-                # - Logging. If some API errors are stored in logs, the message `Status` could
-                #     be used directly after any stripping needed for security/privacy reasons.
-              "message": "A String", # A developer-facing error message, which should be in English. Any
-                  # user-facing error message should be localized and sent in the
-                  # google.rpc.Status.details field, or localized by the client.
-              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-              "details": [ # A list of messages that carry the error details.  There will be a
-                  # common set of message types for APIs to use.
-                {
-                  "a_key": "", # Properties of the object. Contains field @type with type URL.
-                },
-              ],
-            },
-            "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span.
-              "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
-                  # stack traces within a single trace.
-                  #
-                  # Often multiple spans will have identical stack traces.
-                  # The first occurance of a stack trace should contain both the
-                  # `stackFrame` content and a value in `stackTraceHashId`.
-                  #
-                  # Subsequent spans within the same request can refer
-                  # to that stack trace by only setting `stackTraceHashId`.
-              "stackFrame": [ # Stack frames of this stack trace.
-                { # Represents a single stack frame in a stack trace.
-                  "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
-                      # May not be available in some languages.
-                  "functionName": "A String", # The fully-qualified name that uniquely identifies this function or
-                      # method.
-                  "fileName": "A String", # The filename of the file containing this frame.
-                  "originalFunctionName": "A String", # Used when the function name is
-                      # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
-                      # fully-qualified.
-                  "loadModule": { # Binary module. # Binary module the code is loaded from.
-                    "buildId": "A String", # Build_id is a unique identifier for the module,
-                        # usually a hash of its contents
-                    "module": "A String", # E.g. main binary, kernel modules, and dynamic libraries
-                        # such as libc.so, sharedlib.so
-                  },
-                  "lineNumber": "A String", # Line number of the frame.
-                  "sourceVersion": "A String", # The version of the deployed source code.
-                },
-              ],
-            },
-            "name": "A String", # Name of the span. The span name is sanitized and displayed in the
-                # Stackdriver Trace tool in the {% dynamic print site_values.console_name %}.
-                # The name may be a method name or some other per-call site name.
-                # For the same executable and the same call point, a best practice is
-                # to use a consistent name, which makes it easier to correlate
-                # cross-trace spans.
-            "links": [ # A collection of links, which are references from this span to another span
-                # in a different trace.
-              { # A pointer from this span to another span in a different `Trace`. Used
-                  # (for example) in batching operations, where a single batch handler
-                  # processes multiple requests from different traces.
-                "spanId": "A String", # The `id` of the linked span.
-                "traceId": "A String", # The ID of the parent trace of the linked span.
-                "type": "A String", # The relationship of the current span relative to the linked span.
-              },
-            ],
-            "localEndTime": "A String", # End time of the span.
-                # On the client side, this is the local machine clock time at which the span
-                # execution was ended; on the server
-                # side, this is the time at which the server application handler stopped
-                # running.
-            "parentId": "A String", # ID of the parent span. If this is a root span, the value must be `0` or
-                # empty.
-            "attributes": { # Properties of a span in key:value format. The maximum length for the
-                # key is 128 characters. The value can be a string (up to 2000 characters),
-                # int, or boolean.
-                #
-                # Some common pair examples:
-                #
-                #     "/instance_id": "my-instance"
-                #     "/zone": "us-central1-a"
-                #     "/grpc/peer_address": "ip:port" (dns, etc.)
-                #     "/grpc/deadline": "Duration"
-                #     "/http/user_agent"
-                #     "/http/request_bytes": 300
-                #     "/http/response_bytes": 1200
-                #     "/http/url": google.com/apis
-                #     "abc.com/myattribute": true
-              "a_key": { # The allowed types for the value side of an attribute key:value pair.
-                "stringValue": "A String", # A string value.
-                "intValue": "A String", # An integer value.
-                "boolValue": True or False, # A boolean value.
-              },
-            },
-            "timeEvents": [ # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation
-                # on the span, consisting of either user-supplied key:value pairs, or
-                # details of an RPC message sent/received on the network.
-              { # A time-stamped annotation in the Span.
-                "networkEvent": { # An event describing an RPC message sent/received on the network. # An event describing an RPC message sent/received on the network.
-                  "messageSize": "A String", # The number of bytes sent or received.
-                  "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
-                      # received.
-                  "kernelTime": "A String", # If available, this is the kernel time:
-                      #
-                      # *  For sent messages, this is the time at which the first bit was sent.
-                      # *  For received messages, this is the time at which the last bit was
-                      #    received.
-                  "messageId": "A String", # An identifier for the message, which must be unique in this span.
-                },
-                "annotation": { # Text annotation with a set of attributes. # One or more key:value pairs.
-                  "attributes": { # A set of attributes on the annotation.
-                    "a_key": { # The allowed types for the value side of an attribute key:value pair.
-                      "stringValue": "A String", # A string value.
-                      "intValue": "A String", # An integer value.
-                      "boolValue": True or False, # A boolean value.
-                    },
-                  },
-                  "description": "A String", # A user-supplied message describing the event.
-                },
-                "localTime": "A String", # The timestamp indicating the time the event occurred.
-              },
-            ],
-            "id": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
-                # unique within a trace.
-            "localStartTime": "A String", # Start time of the span.
-                # On the client side, this is the local machine clock time at which the span
-                # execution was started; on the server
-                # side, this is the time at which the server application handler started
-                # running.
-            "hasRemoteParent": True or False, # True if this span has a remote parent (is an RPC server span).
-          },
-        ],
-      },
-    },
-  }
-
-  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, x__xgafv=None)</code>
-  <pre>Returns a specific trace.
-
-Args:
-  name: string, ID of the trace. Format is `projects/PROJECT_ID/traces/TRACE_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 trace describes how long it takes for an application to perform some
-      # operations. It consists of a set of spans, each representing
-      # an operation and including time information and operation details.
-    "name": "A String", # A globally unique identifier for the trace in the format
-        # `projects/PROJECT_NUMBER/traces/TRACE_ID`. `TRACE_ID` is a base16-encoded
-        # string of a 128-bit number and is required to be 32 char long.
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(parent, orderBy=None, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, filter=None, endTime=None)</code>
-  <pre>Returns of a list of traces that match the specified filter conditions.
-
-Args:
-  parent: string, ID of the Cloud project where the trace data is stored. (required)
-  orderBy: string, Field used to sort the returned traces. Optional.
-Can be one of the following:
-
-*   `trace_id`
-*   `name` (`name` field of root span in the trace)
-*   `duration` (difference between `end_time` and `start_time` fields of
-     the root span)
-*   `start` (`start_time` field of the root span)
-
-Descending order can be specified by appending `desc` to the sort field
-(for example, `name desc`).
-
-Only one sort field is permitted.
-  startTime: string, Start of the time interval (inclusive) during which the trace data was
-collected from the application.
-  pageSize: integer, Maximum number of traces to return. If not specified or <= 0, the
-implementation selects a reasonable value. The implementation may
-return fewer traces than the requested page size. Optional.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-  pageToken: string, Token identifying the page of results to return. If provided, use the
-value of the `next_page_token` field from a previous request. Optional.
-  filter: string, An optional filter for the request.
-Example:
-`version_label_key:a some_label:some_label_key`
-returns traces from version `a` and has `some_label` with `some_label_key`.
-  endTime: string, End of the time interval (inclusive) during which the trace data was
-collected from the application.
-
-Returns:
-  An object of the form:
-
-    { # The response message for the `ListTraces` method.
-    "nextPageToken": "A String", # If defined, indicates that there are more traces that match the request
-        # and that this value should be passed to the next request to continue
-        # retrieving additional traces.
-    "traces": [ # List of trace records returned.
-      { # A trace describes how long it takes for an application to perform some
-          # operations. It consists of a set of spans, each representing
-          # an operation and including time information and operation details.
-        "name": "A String", # A globally unique identifier for the trace in the format
-            # `projects/PROJECT_NUMBER/traces/TRACE_ID`. `TRACE_ID` is a base16-encoded
-            # string of a 128-bit number and is required to be 32 char long.
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="listSpans">listSpans(name, pageToken=None, x__xgafv=None)</code>
-  <pre>Returns a list of spans within a trace.
-
-Args:
-  name: string, ID of the trace for which to list child spans. Format is
-`projects/PROJECT_ID/traces/TRACE_ID`. (required)
-  pageToken: string, Token identifying the page of results to return. If provided, use the
-value of the `nextPageToken` field from a previous request. Optional.
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # The response message for the `ListSpans` method.
-    "nextPageToken": "A String", # If defined, indicates that there are more spans that match the request.
-        # Pass this as the value of `pageToken` in a subsequent request to retrieve
-        # additional spans.
-    "spans": [ # The requested spans if there are any in the specified trace.
-      { # A span represents a single operation within a trace. Spans can be nested
-          # to form a trace tree. Often, a trace contains a root span that
-          # describes the end-to-end latency and, optionally, one or more subspans for
-          # its sub-operations. (A trace could alternatively contain multiple root spans,
-          # or none at all.) Spans do not need to be contiguous. There may be gaps
-          # and/or overlaps between spans in a trace.
-        "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
-            # programming environments, including REST APIs and RPC APIs. It is used by
-            # [gRPC](https://github.com/grpc). The error model is designed to be:
-            #
-            # - Simple to use and understand for most users
-            # - Flexible enough to meet unexpected needs
-            #
-            # # Overview
-            #
-            # The `Status` message contains three pieces of data: error code, error message,
-            # and error details. The error code should be an enum value of
-            # google.rpc.Code, but it may accept additional error codes if needed.  The
-            # error message should be a developer-facing English message that helps
-            # developers *understand* and *resolve* the error. If a localized user-facing
-            # error message is needed, put the localized message in the error details or
-            # localize it in the client. The optional error details may contain arbitrary
-            # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
-            #
-            # # Language mapping
-            #
-            # The `Status` message is the logical representation of the error model, but it
-            # is not necessarily the actual wire format. When the `Status` message is
-            # exposed in different client libraries and different wire protocols, it can be
-            # mapped differently. For example, it will likely be mapped to some exceptions
-            # in Java, but more likely mapped to some error codes in C.
-            #
-            # # Other uses
-            #
-            # The error model and the `Status` message can be used in a variety of
-            # environments, either with or without APIs, to provide a
-            # consistent developer experience across different environments.
-            #
-            # Example uses of this error model include:
-            #
-            # - Partial errors. If a service needs to return partial errors to the client,
-            #     it may embed the `Status` in the normal response to indicate the partial
-            #     errors.
-            #
-            # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
-            #
-            # - Batch operations. If a client uses batch request and batch response, the
-            #     `Status` message should be used directly inside batch response, one for
-            #     each error sub-response.
-            #
-            # - Asynchronous operations. If an API call embeds asynchronous operation
-            #     results in its response, the status of those operations should be
-            #     represented directly using the `Status` message.
-            #
-            # - Logging. If some API errors are stored in logs, the message `Status` could
-            #     be used directly after any stripping needed for security/privacy reasons.
-          "message": "A String", # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details.  There will be a
-              # common set of message types for APIs to use.
-            {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
-            },
-          ],
-        },
-        "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span.
-          "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
-              # stack traces within a single trace.
-              #
-              # Often multiple spans will have identical stack traces.
-              # The first occurance of a stack trace should contain both the
-              # `stackFrame` content and a value in `stackTraceHashId`.
-              #
-              # Subsequent spans within the same request can refer
-              # to that stack trace by only setting `stackTraceHashId`.
-          "stackFrame": [ # Stack frames of this stack trace.
-            { # Represents a single stack frame in a stack trace.
-              "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
-                  # May not be available in some languages.
-              "functionName": "A String", # The fully-qualified name that uniquely identifies this function or
-                  # method.
-              "fileName": "A String", # The filename of the file containing this frame.
-              "originalFunctionName": "A String", # Used when the function name is
-                  # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
-                  # fully-qualified.
-              "loadModule": { # Binary module. # Binary module the code is loaded from.
-                "buildId": "A String", # Build_id is a unique identifier for the module,
-                    # usually a hash of its contents
-                "module": "A String", # E.g. main binary, kernel modules, and dynamic libraries
-                    # such as libc.so, sharedlib.so
-              },
-              "lineNumber": "A String", # Line number of the frame.
-              "sourceVersion": "A String", # The version of the deployed source code.
-            },
-          ],
-        },
-        "name": "A String", # Name of the span. The span name is sanitized and displayed in the
-            # Stackdriver Trace tool in the {% dynamic print site_values.console_name %}.
-            # The name may be a method name or some other per-call site name.
-            # For the same executable and the same call point, a best practice is
-            # to use a consistent name, which makes it easier to correlate
-            # cross-trace spans.
-        "links": [ # A collection of links, which are references from this span to another span
-            # in a different trace.
-          { # A pointer from this span to another span in a different `Trace`. Used
-              # (for example) in batching operations, where a single batch handler
-              # processes multiple requests from different traces.
-            "spanId": "A String", # The `id` of the linked span.
-            "traceId": "A String", # The ID of the parent trace of the linked span.
-            "type": "A String", # The relationship of the current span relative to the linked span.
-          },
-        ],
-        "localEndTime": "A String", # End time of the span.
-            # On the client side, this is the local machine clock time at which the span
-            # execution was ended; on the server
-            # side, this is the time at which the server application handler stopped
-            # running.
-        "parentId": "A String", # ID of the parent span. If this is a root span, the value must be `0` or
-            # empty.
-        "attributes": { # Properties of a span in key:value format. The maximum length for the
-            # key is 128 characters. The value can be a string (up to 2000 characters),
-            # int, or boolean.
-            #
-            # Some common pair examples:
-            #
-            #     "/instance_id": "my-instance"
-            #     "/zone": "us-central1-a"
-            #     "/grpc/peer_address": "ip:port" (dns, etc.)
-            #     "/grpc/deadline": "Duration"
-            #     "/http/user_agent"
-            #     "/http/request_bytes": 300
-            #     "/http/response_bytes": 1200
-            #     "/http/url": google.com/apis
-            #     "abc.com/myattribute": true
-          "a_key": { # The allowed types for the value side of an attribute key:value pair.
-            "stringValue": "A String", # A string value.
-            "intValue": "A String", # An integer value.
-            "boolValue": True or False, # A boolean value.
-          },
-        },
-        "timeEvents": [ # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation
-            # on the span, consisting of either user-supplied key:value pairs, or
-            # details of an RPC message sent/received on the network.
-          { # A time-stamped annotation in the Span.
-            "networkEvent": { # An event describing an RPC message sent/received on the network. # An event describing an RPC message sent/received on the network.
-              "messageSize": "A String", # The number of bytes sent or received.
-              "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
-                  # received.
-              "kernelTime": "A String", # If available, this is the kernel time:
-                  #
-                  # *  For sent messages, this is the time at which the first bit was sent.
-                  # *  For received messages, this is the time at which the last bit was
-                  #    received.
-              "messageId": "A String", # An identifier for the message, which must be unique in this span.
-            },
-            "annotation": { # Text annotation with a set of attributes. # One or more key:value pairs.
-              "attributes": { # A set of attributes on the annotation.
-                "a_key": { # The allowed types for the value side of an attribute key:value pair.
-                  "stringValue": "A String", # A string value.
-                  "intValue": "A String", # An integer value.
-                  "boolValue": True or False, # A boolean value.
-                },
-              },
-              "description": "A String", # A user-supplied message describing the event.
-            },
-            "localTime": "A String", # The timestamp indicating the time the event occurred.
-          },
-        ],
-        "id": "A String", # Identifier for the span. Must be a 64-bit integer other than 0 and
-            # unique within a trace.
-        "localStartTime": "A String", # Start time of the span.
-            # On the client side, this is the local machine clock time at which the span
-            # execution was started; on the server
-            # side, this is the time at which the server application handler started
-            # running.
-        "hasRemoteParent": True or False, # True if this span has a remote parent (is an RPC server span).
-      },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="listSpans_next">listSpans_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>
-
-<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
diff --git a/docs/dyn/tracing_v1.html b/docs/dyn/tracing_v2.html
similarity index 93%
rename from docs/dyn/tracing_v1.html
rename to docs/dyn/tracing_v2.html
index 295b2bb..2a05019 100644
--- a/docs/dyn/tracing_v1.html
+++ b/docs/dyn/tracing_v2.html
@@ -72,10 +72,10 @@
 
 </style>
 
-<h1><a href="tracing_v1.html">Google Tracing API</a></h1>
+<h1><a href="tracing_v2.html">Google Tracing API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="tracing_v1.projects.html">projects()</a></code>
+  <code><a href="tracing_v2.projects.html">projects()</a></code>
 </p>
 <p class="firstline">Returns the projects Resource.</p>
 
diff --git a/docs/dyn/tracing_v1.projects.html b/docs/dyn/tracing_v2.projects.html
similarity index 86%
rename from docs/dyn/tracing_v1.projects.html
rename to docs/dyn/tracing_v2.projects.html
index 4282596..9719b2f 100644
--- a/docs/dyn/tracing_v1.projects.html
+++ b/docs/dyn/tracing_v2.projects.html
@@ -72,10 +72,10 @@
 
 </style>
 
-<h1><a href="tracing_v1.html">Google Tracing API</a> . <a href="tracing_v1.projects.html">projects</a></h1>
+<h1><a href="tracing_v2.html">Google Tracing API</a> . <a href="tracing_v2.projects.html">projects</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="tracing_v1.projects.traces.html">traces()</a></code>
+  <code><a href="tracing_v2.projects.traces.html">traces()</a></code>
 </p>
 <p class="firstline">Returns the traces Resource.</p>
 
diff --git a/docs/dyn/tracing_v2.projects.traces.html b/docs/dyn/tracing_v2.projects.traces.html
new file mode 100644
index 0000000..690992d
--- /dev/null
+++ b/docs/dyn/tracing_v2.projects.traces.html
@@ -0,0 +1,819 @@
+<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="tracing_v2.html">Google Tracing API</a> . <a href="tracing_v2.projects.html">projects</a> . <a href="tracing_v2.projects.traces.html">traces</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="tracing_v2.projects.traces.spans.html">spans()</a></code>
+</p>
+<p class="firstline">Returns the spans Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#batchWrite">batchWrite(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Sends new spans to Stackdriver Trace or updates existing traces. If the</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, orderBy=None, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, filter=None, endTime=None)</a></code></p>
+<p class="firstline">Returns of a list of traces that match the specified filter conditions.</p>
+<p class="toc_element">
+  <code><a href="#listSpans">listSpans(parent, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a list of spans within a trace.</p>
+<p class="toc_element">
+  <code><a href="#listSpans_next">listSpans_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</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="batchWrite">batchWrite(name, body, x__xgafv=None)</code>
+  <pre>Sends new spans to Stackdriver Trace or updates existing traces. If the
+name of a trace that you send matches that of an existing trace, new spans
+are added to the existing trace. Attempt to update existing spans results
+undefined behavior. If the name does not match, a new trace is created
+with given set of spans.
+
+Args:
+  name: string, Name of the project where the spans belong to. Format is
+`projects/PROJECT_ID`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for the `BatchWriteSpans` method.
+    "spans": [ # A collection of spans.
+      { # A span represents a single operation within a trace. Spans can be nested
+          # to form a trace tree. Often, a trace contains a root span that
+          # describes the end-to-end latency and, optionally, one or more subspans for
+          # its sub-operations. (A trace could alternatively contain multiple root spans,
+          # or none at all.) Spans do not need to be contiguous. There may be gaps
+          # and/or overlaps between spans in a trace.
+        "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` that can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span.
+          "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
+              # stack traces within a single trace.
+              #
+              # Often multiple spans will have identical stack traces.
+              # The first occurrence of a stack trace should contain both the
+              # `stackFrame` content and a value in `stackTraceHashId`.
+              #
+              # Subsequent spans within the same request can refer
+              # to that stack trace by only setting `stackTraceHashId`.
+          "stackFrames": { # Represents collection of StackFrames that can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
+            "frame": [ # Stack frames in this stack trace.
+              { # Represents a single stack frame in a stack trace.
+                "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
+                    # May not be available in some languages.
+                "functionName": { # Represents a string value that might be truncated. # The fully-qualified name that uniquely identifies this function or
+                    # method (up to 1024 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "fileName": { # Represents a string value that might be truncated. # The filename of the file containing this frame (up to 256 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "originalFunctionName": { # Represents a string value that might be truncated. # Used when the function name is
+                    # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
+                    # fully-qualified (up to 1024 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "loadModule": { # Binary module. # Binary module the code is loaded from.
+                  "buildId": { # Represents a string value that might be truncated. # Build_id is a unique identifier for the module, usually a hash of its
+                      # contents (up to 128 characters).
+                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                        # means that the string value was not truncated.
+                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                        # 256 bytes.
+                  },
+                  "module": { # Represents a string value that might be truncated. # E.g. main binary, kernel modules, and dynamic libraries
+                      # such as libc.so, sharedlib.so (up to 256 characters).
+                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                        # means that the string value was not truncated.
+                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                        # 256 bytes.
+                  },
+                },
+                "lineNumber": "A String", # Line number of the frame.
+                "sourceVersion": { # Represents a string value that might be truncated. # The version of the deployed source code (up to 128 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+              },
+            ],
+            "droppedFramesCount": 42, # The number of dropped stack frames after the maximum size was enforced.
+                # If 0 then no frames were dropped.
+          },
+        },
+        "displayName": { # Represents a string value that might be truncated. # Description of the operation in the span. It is sanitized and displayed in
+            # the Stackdriver Trace tool in the
+            # {% dynamic print site_values.console_name %}.
+            # The display_name may be a method name or some other per-call site
+            # name. For the same executable and the same call point, a best practice is
+            # to use a consistent operation name, which makes it easier to correlate
+            # cross-trace spans.
+            # The maximum length for the display_name is 128 bytes.
+          "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+              # means that the string value was not truncated.
+          "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+              # 256 bytes.
+        },
+        "name": "A String", # The resource name of Span in the format
+            # `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
+            # `TRACE_ID` is a unique identifier for a trace within a project and is a
+            # base16-encoded, case-insensitive string and is required to be 32 char long.
+            # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+            # base 16-encoded, case-insensitive string of a 8-bytes array and is required
+            # to be 16 char long.
+        "links": { # A collection of links, which are references from this span to a span # A maximum of 128 links are allowed per Span.
+            # in the same or different trace.
+          "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
+              # 0 then no links were dropped.
+          "link": [ # A collection of links.
+            { # A pointer from this span to another span in a different `Trace` within
+                # the same service project or within a different service project. Used
+                # (for example) in batching operations, where a single batch handler
+                # processes multiple requests from different traces or when receives a
+                # request from a different service project.
+              "spanId": "A String", # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+                  # base16-encoded, case-insensitive string of a 8-bytes array and is
+                  # required to be 16 char long.
+              "traceId": "A String", # `TRACE_ID` is a unique identifier for a trace within a project. It is
+                  # a base16-encoded, case-insensitive string of a 16-bytes array and is
+                  # required to be 32 char long.
+              "type": "A String", # The relationship of the current span relative to the linked span.
+            },
+          ],
+        },
+        "parentSpanId": "A String", # ID of parent span which is a base 16-encoded, case-insensitive string of
+            # a 8-bytes array and is required to be 16 char long. If this is a root span,
+            # the value must be empty.
+        "startTime": "A String", # Start time of the span.
+            # On the client side, this is the local machine clock time at which the span
+            # execution was started; on the server
+            # side, this is the time at which the server application handler started
+            # running.
+        "spanId": "A String", # Unique identifier for a span within a trace. It is a base 16-encoded,
+            # case-insensitive string of a 8-bytes array and is required.
+        "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the span. A maximum of 32 attributes are allowed per
+            # Span.
+          "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+              # 0 then no attributes were dropped.
+          "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+              # key size is larger than the maximum allowed). The value can be a string
+              # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+              # examples:
+              #
+              #     "/instance_id": "my-instance"
+              #     "/zone": "us-central1-a"
+              #     "/grpc/peer_address": "ip:port" (dns, etc.)
+              #     "/grpc/deadline": "Duration"
+              #     "/http/user_agent"
+              #     "/http/request_bytes": 300
+              #     "/http/response_bytes": 1200
+              #     "/http/url": google.com/apis
+              #     "abc.com/myattribute": true
+            "a_key": { # The allowed types for the value side of an attribute key:value pair.
+              "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                    # means that the string value was not truncated.
+                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                    # 256 bytes.
+              },
+              "intValue": "A String", # An integer value.
+              "boolValue": True or False, # A boolean value.
+            },
+          },
+        },
+        "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A maximum of 32 annotations and 128 network events are allowed per Span.
+            # on the span, consisting of either user-supplied key:value pairs, or
+            # details of an RPC message sent/received on the network.
+          "timeEvent": [ # A collection of `TimeEvent`s.
+            { # A time-stamped annotation in the Span.
+              "networkEvent": { # An event describing an RPC message sent/received on the network. A # An event describing an RPC message sent/received on the network.
+                  # maximum of 128 network events are allowed per Span.
+                "messageSize": "A String", # The number of bytes sent or received.
+                "messageId": "A String", # An identifier for the message, which must be unique in this span.
+                "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
+                    # received.
+                "time": "A String", # If available, this is the kernel time:
+                    #
+                    # *  For sent messages, this is the time at which the first bit was sent.
+                    # *  For received messages, this is the time at which the last bit was
+                    #    received.
+              },
+              "annotation": { # Text annotation with a set of attributes. A maximum of 32 annotations are # One or more key:value pairs.
+                  # allowed per Span.
+                "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the annotation. A maximum of 4 attributes are
+                    # allowed per Annotation.
+                  "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+                      # 0 then no attributes were dropped.
+                  "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+                      # key size is larger than the maximum allowed). The value can be a string
+                      # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+                      # examples:
+                      #
+                      #     "/instance_id": "my-instance"
+                      #     "/zone": "us-central1-a"
+                      #     "/grpc/peer_address": "ip:port" (dns, etc.)
+                      #     "/grpc/deadline": "Duration"
+                      #     "/http/user_agent"
+                      #     "/http/request_bytes": 300
+                      #     "/http/response_bytes": 1200
+                      #     "/http/url": google.com/apis
+                      #     "abc.com/myattribute": true
+                    "a_key": { # The allowed types for the value side of an attribute key:value pair.
+                      "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+                        "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                            # means that the string value was not truncated.
+                        "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                            # 256 bytes.
+                      },
+                      "intValue": "A String", # An integer value.
+                      "boolValue": True or False, # A boolean value.
+                    },
+                  },
+                },
+                "description": { # Represents a string value that might be truncated. # A user-supplied message describing the event. The maximum length for
+                    # the description is 256 bytes.
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+              },
+              "time": "A String", # The timestamp indicating the time the event occurred.
+            },
+          ],
+          "droppedNetworkEventsCount": 42, # The number of dropped network events after the maximum size was enforced.
+              # If 0 then no annotations were dropped.
+          "droppedAnnotationsCount": 42, # The number of dropped annotations after the maximum size was enforced. If
+              # 0 then no annotations were dropped.
+        },
+        "endTime": "A String", # End time of the span.
+            # On the client side, this is the local machine clock time at which the span
+            # execution was ended; on the server
+            # side, this is the time at which the server application handler stopped
+            # running.
+      },
+    ],
+  }
+
+  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="list">list(parent, orderBy=None, startTime=None, pageSize=None, x__xgafv=None, pageToken=None, filter=None, endTime=None)</code>
+  <pre>Returns of a list of traces that match the specified filter conditions.
+
+Args:
+  parent: string, ID of the Cloud project where the trace data is stored which is
+`projects/PROJECT_ID`. (required)
+  orderBy: string, Field used to sort the returned traces. Optional.
+Can be one of the following:
+
+*   `trace_id`
+*   `name` (`name` field of root span in the trace)
+*   `duration` (difference between `end_time` and `start_time` fields of
+     the root span)
+*   `start` (`start_time` field of the root span)
+
+Descending order can be specified by appending `desc` to the sort field
+(for example, `name desc`).
+
+Only one sort field is permitted.
+  startTime: string, Start of the time interval (inclusive) during which the trace data was
+collected from the application.
+  pageSize: integer, Maximum number of traces to return. If not specified or <= 0, the
+implementation selects a reasonable value. The implementation may
+return fewer traces than the requested page size. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  pageToken: string, Token identifying the page of results to return. If provided, use the
+value of the `next_page_token` field from a previous request. Optional.
+  filter: string, An optional filter for the request.
+Example:
+`version_label_key:a some_label:some_label_key`
+returns traces from version `a` and has `some_label` with `some_label_key`.
+  endTime: string, End of the time interval (inclusive) during which the trace data was
+collected from the application.
+
+Returns:
+  An object of the form:
+
+    { # The response message for the `ListTraces` method.
+    "nextPageToken": "A String", # If defined, indicates that there are more traces that match the request
+        # and that this value should be passed to the next request to continue
+        # retrieving additional traces.
+    "traces": [ # List of trace records returned.
+      { # A trace describes how long it takes for an application to perform some
+          # operations. It consists of a set of spans, each representing
+          # an operation and including time information and operation details.
+        "name": "A String", # The resource name of Trace in the format
+            # `projects/PROJECT_ID/traces/TRACE_ID`. `TRACE_ID` is a unique identifier
+            # for a trace within a project and is a base16-encoded, case-insensitive
+            # string and is required to be 32 char long.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listSpans">listSpans(parent, pageToken=None, x__xgafv=None)</code>
+  <pre>Returns a list of spans within a trace.
+
+Args:
+  parent: string, ID of the trace for which to list child spans. Format is
+`projects/PROJECT_ID/traces/TRACE_ID`. (required)
+  pageToken: string, Token identifying the page of results to return. If provided, use the
+value of the `nextPageToken` field from a previous request. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for the `ListSpans` method.
+    "nextPageToken": "A String", # If defined, indicates that there are more spans that match the request.
+        # Pass this as the value of `pageToken` in a subsequent request to retrieve
+        # additional spans.
+    "spans": [ # The requested spans if there are any in the specified trace.
+      { # A span represents a single operation within a trace. Spans can be nested
+          # to form a trace tree. Often, a trace contains a root span that
+          # describes the end-to-end latency and, optionally, one or more subspans for
+          # its sub-operations. (A trace could alternatively contain multiple root spans,
+          # or none at all.) Spans do not need to be contiguous. There may be gaps
+          # and/or overlaps between spans in a trace.
+        "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` that can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+        },
+        "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span.
+          "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
+              # stack traces within a single trace.
+              #
+              # Often multiple spans will have identical stack traces.
+              # The first occurrence of a stack trace should contain both the
+              # `stackFrame` content and a value in `stackTraceHashId`.
+              #
+              # Subsequent spans within the same request can refer
+              # to that stack trace by only setting `stackTraceHashId`.
+          "stackFrames": { # Represents collection of StackFrames that can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
+            "frame": [ # Stack frames in this stack trace.
+              { # Represents a single stack frame in a stack trace.
+                "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
+                    # May not be available in some languages.
+                "functionName": { # Represents a string value that might be truncated. # The fully-qualified name that uniquely identifies this function or
+                    # method (up to 1024 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "fileName": { # Represents a string value that might be truncated. # The filename of the file containing this frame (up to 256 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "originalFunctionName": { # Represents a string value that might be truncated. # Used when the function name is
+                    # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
+                    # fully-qualified (up to 1024 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "loadModule": { # Binary module. # Binary module the code is loaded from.
+                  "buildId": { # Represents a string value that might be truncated. # Build_id is a unique identifier for the module, usually a hash of its
+                      # contents (up to 128 characters).
+                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                        # means that the string value was not truncated.
+                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                        # 256 bytes.
+                  },
+                  "module": { # Represents a string value that might be truncated. # E.g. main binary, kernel modules, and dynamic libraries
+                      # such as libc.so, sharedlib.so (up to 256 characters).
+                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                        # means that the string value was not truncated.
+                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                        # 256 bytes.
+                  },
+                },
+                "lineNumber": "A String", # Line number of the frame.
+                "sourceVersion": { # Represents a string value that might be truncated. # The version of the deployed source code (up to 128 characters).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+              },
+            ],
+            "droppedFramesCount": 42, # The number of dropped stack frames after the maximum size was enforced.
+                # If 0 then no frames were dropped.
+          },
+        },
+        "displayName": { # Represents a string value that might be truncated. # Description of the operation in the span. It is sanitized and displayed in
+            # the Stackdriver Trace tool in the
+            # {% dynamic print site_values.console_name %}.
+            # The display_name may be a method name or some other per-call site
+            # name. For the same executable and the same call point, a best practice is
+            # to use a consistent operation name, which makes it easier to correlate
+            # cross-trace spans.
+            # The maximum length for the display_name is 128 bytes.
+          "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+              # means that the string value was not truncated.
+          "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+              # 256 bytes.
+        },
+        "name": "A String", # The resource name of Span in the format
+            # `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
+            # `TRACE_ID` is a unique identifier for a trace within a project and is a
+            # base16-encoded, case-insensitive string and is required to be 32 char long.
+            # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+            # base 16-encoded, case-insensitive string of a 8-bytes array and is required
+            # to be 16 char long.
+        "links": { # A collection of links, which are references from this span to a span # A maximum of 128 links are allowed per Span.
+            # in the same or different trace.
+          "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
+              # 0 then no links were dropped.
+          "link": [ # A collection of links.
+            { # A pointer from this span to another span in a different `Trace` within
+                # the same service project or within a different service project. Used
+                # (for example) in batching operations, where a single batch handler
+                # processes multiple requests from different traces or when receives a
+                # request from a different service project.
+              "spanId": "A String", # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+                  # base16-encoded, case-insensitive string of a 8-bytes array and is
+                  # required to be 16 char long.
+              "traceId": "A String", # `TRACE_ID` is a unique identifier for a trace within a project. It is
+                  # a base16-encoded, case-insensitive string of a 16-bytes array and is
+                  # required to be 32 char long.
+              "type": "A String", # The relationship of the current span relative to the linked span.
+            },
+          ],
+        },
+        "parentSpanId": "A String", # ID of parent span which is a base 16-encoded, case-insensitive string of
+            # a 8-bytes array and is required to be 16 char long. If this is a root span,
+            # the value must be empty.
+        "startTime": "A String", # Start time of the span.
+            # On the client side, this is the local machine clock time at which the span
+            # execution was started; on the server
+            # side, this is the time at which the server application handler started
+            # running.
+        "spanId": "A String", # Unique identifier for a span within a trace. It is a base 16-encoded,
+            # case-insensitive string of a 8-bytes array and is required.
+        "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the span. A maximum of 32 attributes are allowed per
+            # Span.
+          "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+              # 0 then no attributes were dropped.
+          "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+              # key size is larger than the maximum allowed). The value can be a string
+              # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+              # examples:
+              #
+              #     "/instance_id": "my-instance"
+              #     "/zone": "us-central1-a"
+              #     "/grpc/peer_address": "ip:port" (dns, etc.)
+              #     "/grpc/deadline": "Duration"
+              #     "/http/user_agent"
+              #     "/http/request_bytes": 300
+              #     "/http/response_bytes": 1200
+              #     "/http/url": google.com/apis
+              #     "abc.com/myattribute": true
+            "a_key": { # The allowed types for the value side of an attribute key:value pair.
+              "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                    # means that the string value was not truncated.
+                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                    # 256 bytes.
+              },
+              "intValue": "A String", # An integer value.
+              "boolValue": True or False, # A boolean value.
+            },
+          },
+        },
+        "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A maximum of 32 annotations and 128 network events are allowed per Span.
+            # on the span, consisting of either user-supplied key:value pairs, or
+            # details of an RPC message sent/received on the network.
+          "timeEvent": [ # A collection of `TimeEvent`s.
+            { # A time-stamped annotation in the Span.
+              "networkEvent": { # An event describing an RPC message sent/received on the network. A # An event describing an RPC message sent/received on the network.
+                  # maximum of 128 network events are allowed per Span.
+                "messageSize": "A String", # The number of bytes sent or received.
+                "messageId": "A String", # An identifier for the message, which must be unique in this span.
+                "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
+                    # received.
+                "time": "A String", # If available, this is the kernel time:
+                    #
+                    # *  For sent messages, this is the time at which the first bit was sent.
+                    # *  For received messages, this is the time at which the last bit was
+                    #    received.
+              },
+              "annotation": { # Text annotation with a set of attributes. A maximum of 32 annotations are # One or more key:value pairs.
+                  # allowed per Span.
+                "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the annotation. A maximum of 4 attributes are
+                    # allowed per Annotation.
+                  "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+                      # 0 then no attributes were dropped.
+                  "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+                      # key size is larger than the maximum allowed). The value can be a string
+                      # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+                      # examples:
+                      #
+                      #     "/instance_id": "my-instance"
+                      #     "/zone": "us-central1-a"
+                      #     "/grpc/peer_address": "ip:port" (dns, etc.)
+                      #     "/grpc/deadline": "Duration"
+                      #     "/http/user_agent"
+                      #     "/http/request_bytes": 300
+                      #     "/http/response_bytes": 1200
+                      #     "/http/url": google.com/apis
+                      #     "abc.com/myattribute": true
+                    "a_key": { # The allowed types for the value side of an attribute key:value pair.
+                      "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+                        "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                            # means that the string value was not truncated.
+                        "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                            # 256 bytes.
+                      },
+                      "intValue": "A String", # An integer value.
+                      "boolValue": True or False, # A boolean value.
+                    },
+                  },
+                },
+                "description": { # Represents a string value that might be truncated. # A user-supplied message describing the event. The maximum length for
+                    # the description is 256 bytes.
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+              },
+              "time": "A String", # The timestamp indicating the time the event occurred.
+            },
+          ],
+          "droppedNetworkEventsCount": 42, # The number of dropped network events after the maximum size was enforced.
+              # If 0 then no annotations were dropped.
+          "droppedAnnotationsCount": 42, # The number of dropped annotations after the maximum size was enforced. If
+              # 0 then no annotations were dropped.
+        },
+        "endTime": "A String", # End time of the span.
+            # On the client side, this is the local machine clock time at which the span
+            # execution was ended; on the server
+            # side, this is the time at which the server application handler stopped
+            # running.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listSpans_next">listSpans_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>
+
+<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
diff --git a/docs/dyn/tracing_v2.projects.traces.spans.html b/docs/dyn/tracing_v2.projects.traces.spans.html
new file mode 100644
index 0000000..fa182a8
--- /dev/null
+++ b/docs/dyn/tracing_v2.projects.traces.spans.html
@@ -0,0 +1,677 @@
+<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="tracing_v2.html">Google Tracing API</a> . <a href="tracing_v2.projects.html">projects</a> . <a href="tracing_v2.projects.traces.html">traces</a> . <a href="tracing_v2.projects.traces.spans.html">spans</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Span.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
+  <pre>Creates a new Span.
+
+Args:
+  name: string, The resource name of Span in the format
+`projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
+`TRACE_ID` is a unique identifier for a trace within a project and is a
+base16-encoded, case-insensitive string and is required to be 32 char long.
+`SPAN_ID` is a unique identifier for a span within a trace. It is a
+base 16-encoded, case-insensitive string of a 8-bytes array and is required
+to be 16 char long. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A span represents a single operation within a trace. Spans can be nested
+    # to form a trace tree. Often, a trace contains a root span that
+    # describes the end-to-end latency and, optionally, one or more subspans for
+    # its sub-operations. (A trace could alternatively contain multiple root spans,
+    # or none at all.) Spans do not need to be contiguous. There may be gaps
+    # and/or overlaps between spans in a trace.
+  "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
+      # programming environments, including REST APIs and RPC APIs. It is used by
+      # [gRPC](https://github.com/grpc). The error model is designed to be:
+      #
+      # - Simple to use and understand for most users
+      # - Flexible enough to meet unexpected needs
+      #
+      # # Overview
+      #
+      # The `Status` message contains three pieces of data: error code, error message,
+      # and error details. The error code should be an enum value of
+      # google.rpc.Code, but it may accept additional error codes if needed.  The
+      # error message should be a developer-facing English message that helps
+      # developers *understand* and *resolve* the error. If a localized user-facing
+      # error message is needed, put the localized message in the error details or
+      # localize it in the client. The optional error details may contain arbitrary
+      # information about the error. There is a predefined set of error detail types
+      # in the package `google.rpc` that can be used for common error conditions.
+      #
+      # # Language mapping
+      #
+      # The `Status` message is the logical representation of the error model, but it
+      # is not necessarily the actual wire format. When the `Status` message is
+      # exposed in different client libraries and different wire protocols, it can be
+      # mapped differently. For example, it will likely be mapped to some exceptions
+      # in Java, but more likely mapped to some error codes in C.
+      #
+      # # Other uses
+      #
+      # The error model and the `Status` message can be used in a variety of
+      # environments, either with or without APIs, to provide a
+      # consistent developer experience across different environments.
+      #
+      # Example uses of this error model include:
+      #
+      # - Partial errors. If a service needs to return partial errors to the client,
+      #     it may embed the `Status` in the normal response to indicate the partial
+      #     errors.
+      #
+      # - Workflow errors. A typical workflow has multiple steps. Each step may
+      #     have a `Status` message for error reporting.
+      #
+      # - Batch operations. If a client uses batch request and batch response, the
+      #     `Status` message should be used directly inside batch response, one for
+      #     each error sub-response.
+      #
+      # - Asynchronous operations. If an API call embeds asynchronous operation
+      #     results in its response, the status of those operations should be
+      #     represented directly using the `Status` message.
+      #
+      # - Logging. If some API errors are stored in logs, the message `Status` could
+      #     be used directly after any stripping needed for security/privacy reasons.
+    "message": "A String", # A developer-facing error message, which should be in English. Any
+        # user-facing error message should be localized and sent in the
+        # google.rpc.Status.details field, or localized by the client.
+    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+    "details": [ # A list of messages that carry the error details.  There will be a
+        # common set of message types for APIs to use.
+      {
+        "a_key": "", # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+  },
+  "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span.
+    "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
+        # stack traces within a single trace.
+        #
+        # Often multiple spans will have identical stack traces.
+        # The first occurrence of a stack trace should contain both the
+        # `stackFrame` content and a value in `stackTraceHashId`.
+        #
+        # Subsequent spans within the same request can refer
+        # to that stack trace by only setting `stackTraceHashId`.
+    "stackFrames": { # Represents collection of StackFrames that can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
+      "frame": [ # Stack frames in this stack trace.
+        { # Represents a single stack frame in a stack trace.
+          "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
+              # May not be available in some languages.
+          "functionName": { # Represents a string value that might be truncated. # The fully-qualified name that uniquely identifies this function or
+              # method (up to 1024 characters).
+            "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                # means that the string value was not truncated.
+            "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                # 256 bytes.
+          },
+          "fileName": { # Represents a string value that might be truncated. # The filename of the file containing this frame (up to 256 characters).
+            "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                # means that the string value was not truncated.
+            "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                # 256 bytes.
+          },
+          "originalFunctionName": { # Represents a string value that might be truncated. # Used when the function name is
+              # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
+              # fully-qualified (up to 1024 characters).
+            "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                # means that the string value was not truncated.
+            "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                # 256 bytes.
+          },
+          "loadModule": { # Binary module. # Binary module the code is loaded from.
+            "buildId": { # Represents a string value that might be truncated. # Build_id is a unique identifier for the module, usually a hash of its
+                # contents (up to 128 characters).
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+            "module": { # Represents a string value that might be truncated. # E.g. main binary, kernel modules, and dynamic libraries
+                # such as libc.so, sharedlib.so (up to 256 characters).
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+          },
+          "lineNumber": "A String", # Line number of the frame.
+          "sourceVersion": { # Represents a string value that might be truncated. # The version of the deployed source code (up to 128 characters).
+            "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                # means that the string value was not truncated.
+            "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                # 256 bytes.
+          },
+        },
+      ],
+      "droppedFramesCount": 42, # The number of dropped stack frames after the maximum size was enforced.
+          # If 0 then no frames were dropped.
+    },
+  },
+  "displayName": { # Represents a string value that might be truncated. # Description of the operation in the span. It is sanitized and displayed in
+      # the Stackdriver Trace tool in the
+      # {% dynamic print site_values.console_name %}.
+      # The display_name may be a method name or some other per-call site
+      # name. For the same executable and the same call point, a best practice is
+      # to use a consistent operation name, which makes it easier to correlate
+      # cross-trace spans.
+      # The maximum length for the display_name is 128 bytes.
+    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+        # means that the string value was not truncated.
+    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+        # 256 bytes.
+  },
+  "name": "A String", # The resource name of Span in the format
+      # `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
+      # `TRACE_ID` is a unique identifier for a trace within a project and is a
+      # base16-encoded, case-insensitive string and is required to be 32 char long.
+      # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+      # base 16-encoded, case-insensitive string of a 8-bytes array and is required
+      # to be 16 char long.
+  "links": { # A collection of links, which are references from this span to a span # A maximum of 128 links are allowed per Span.
+      # in the same or different trace.
+    "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
+        # 0 then no links were dropped.
+    "link": [ # A collection of links.
+      { # A pointer from this span to another span in a different `Trace` within
+          # the same service project or within a different service project. Used
+          # (for example) in batching operations, where a single batch handler
+          # processes multiple requests from different traces or when receives a
+          # request from a different service project.
+        "spanId": "A String", # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+            # base16-encoded, case-insensitive string of a 8-bytes array and is
+            # required to be 16 char long.
+        "traceId": "A String", # `TRACE_ID` is a unique identifier for a trace within a project. It is
+            # a base16-encoded, case-insensitive string of a 16-bytes array and is
+            # required to be 32 char long.
+        "type": "A String", # The relationship of the current span relative to the linked span.
+      },
+    ],
+  },
+  "parentSpanId": "A String", # ID of parent span which is a base 16-encoded, case-insensitive string of
+      # a 8-bytes array and is required to be 16 char long. If this is a root span,
+      # the value must be empty.
+  "startTime": "A String", # Start time of the span.
+      # On the client side, this is the local machine clock time at which the span
+      # execution was started; on the server
+      # side, this is the time at which the server application handler started
+      # running.
+  "spanId": "A String", # Unique identifier for a span within a trace. It is a base 16-encoded,
+      # case-insensitive string of a 8-bytes array and is required.
+  "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the span. A maximum of 32 attributes are allowed per
+      # Span.
+    "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+        # 0 then no attributes were dropped.
+    "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+        # key size is larger than the maximum allowed). The value can be a string
+        # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+        # examples:
+        #
+        #     "/instance_id": "my-instance"
+        #     "/zone": "us-central1-a"
+        #     "/grpc/peer_address": "ip:port" (dns, etc.)
+        #     "/grpc/deadline": "Duration"
+        #     "/http/user_agent"
+        #     "/http/request_bytes": 300
+        #     "/http/response_bytes": 1200
+        #     "/http/url": google.com/apis
+        #     "abc.com/myattribute": true
+      "a_key": { # The allowed types for the value side of an attribute key:value pair.
+        "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+          "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+              # means that the string value was not truncated.
+          "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+              # 256 bytes.
+        },
+        "intValue": "A String", # An integer value.
+        "boolValue": True or False, # A boolean value.
+      },
+    },
+  },
+  "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A maximum of 32 annotations and 128 network events are allowed per Span.
+      # on the span, consisting of either user-supplied key:value pairs, or
+      # details of an RPC message sent/received on the network.
+    "timeEvent": [ # A collection of `TimeEvent`s.
+      { # A time-stamped annotation in the Span.
+        "networkEvent": { # An event describing an RPC message sent/received on the network. A # An event describing an RPC message sent/received on the network.
+            # maximum of 128 network events are allowed per Span.
+          "messageSize": "A String", # The number of bytes sent or received.
+          "messageId": "A String", # An identifier for the message, which must be unique in this span.
+          "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
+              # received.
+          "time": "A String", # If available, this is the kernel time:
+              #
+              # *  For sent messages, this is the time at which the first bit was sent.
+              # *  For received messages, this is the time at which the last bit was
+              #    received.
+        },
+        "annotation": { # Text annotation with a set of attributes. A maximum of 32 annotations are # One or more key:value pairs.
+            # allowed per Span.
+          "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the annotation. A maximum of 4 attributes are
+              # allowed per Annotation.
+            "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+                # 0 then no attributes were dropped.
+            "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+                # key size is larger than the maximum allowed). The value can be a string
+                # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+                # examples:
+                #
+                #     "/instance_id": "my-instance"
+                #     "/zone": "us-central1-a"
+                #     "/grpc/peer_address": "ip:port" (dns, etc.)
+                #     "/grpc/deadline": "Duration"
+                #     "/http/user_agent"
+                #     "/http/request_bytes": 300
+                #     "/http/response_bytes": 1200
+                #     "/http/url": google.com/apis
+                #     "abc.com/myattribute": true
+              "a_key": { # The allowed types for the value side of an attribute key:value pair.
+                "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                      # means that the string value was not truncated.
+                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                      # 256 bytes.
+                },
+                "intValue": "A String", # An integer value.
+                "boolValue": True or False, # A boolean value.
+              },
+            },
+          },
+          "description": { # Represents a string value that might be truncated. # A user-supplied message describing the event. The maximum length for
+              # the description is 256 bytes.
+            "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                # means that the string value was not truncated.
+            "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                # 256 bytes.
+          },
+        },
+        "time": "A String", # The timestamp indicating the time the event occurred.
+      },
+    ],
+    "droppedNetworkEventsCount": 42, # The number of dropped network events after the maximum size was enforced.
+        # If 0 then no annotations were dropped.
+    "droppedAnnotationsCount": 42, # The number of dropped annotations after the maximum size was enforced. If
+        # 0 then no annotations were dropped.
+  },
+  "endTime": "A String", # End time of the span.
+      # On the client side, this is the local machine clock time at which the span
+      # execution was ended; on the server
+      # side, this is the time at which the server application handler stopped
+      # running.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A span represents a single operation within a trace. Spans can be nested
+      # to form a trace tree. Often, a trace contains a root span that
+      # describes the end-to-end latency and, optionally, one or more subspans for
+      # its sub-operations. (A trace could alternatively contain multiple root spans,
+      # or none at all.) Spans do not need to be contiguous. There may be gaps
+      # and/or overlaps between spans in a trace.
+    "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "stackTrace": { # StackTrace collected in a trace. # Stack trace captured at the start of the span.
+      "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
+          # stack traces within a single trace.
+          #
+          # Often multiple spans will have identical stack traces.
+          # The first occurrence of a stack trace should contain both the
+          # `stackFrame` content and a value in `stackTraceHashId`.
+          #
+          # Subsequent spans within the same request can refer
+          # to that stack trace by only setting `stackTraceHashId`.
+      "stackFrames": { # Represents collection of StackFrames that can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
+        "frame": [ # Stack frames in this stack trace.
+          { # Represents a single stack frame in a stack trace.
+            "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
+                # May not be available in some languages.
+            "functionName": { # Represents a string value that might be truncated. # The fully-qualified name that uniquely identifies this function or
+                # method (up to 1024 characters).
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+            "fileName": { # Represents a string value that might be truncated. # The filename of the file containing this frame (up to 256 characters).
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+            "originalFunctionName": { # Represents a string value that might be truncated. # Used when the function name is
+                # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
+                # fully-qualified (up to 1024 characters).
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+            "loadModule": { # Binary module. # Binary module the code is loaded from.
+              "buildId": { # Represents a string value that might be truncated. # Build_id is a unique identifier for the module, usually a hash of its
+                  # contents (up to 128 characters).
+                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                    # means that the string value was not truncated.
+                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                    # 256 bytes.
+              },
+              "module": { # Represents a string value that might be truncated. # E.g. main binary, kernel modules, and dynamic libraries
+                  # such as libc.so, sharedlib.so (up to 256 characters).
+                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                    # means that the string value was not truncated.
+                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                    # 256 bytes.
+              },
+            },
+            "lineNumber": "A String", # Line number of the frame.
+            "sourceVersion": { # Represents a string value that might be truncated. # The version of the deployed source code (up to 128 characters).
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+          },
+        ],
+        "droppedFramesCount": 42, # The number of dropped stack frames after the maximum size was enforced.
+            # If 0 then no frames were dropped.
+      },
+    },
+    "displayName": { # Represents a string value that might be truncated. # Description of the operation in the span. It is sanitized and displayed in
+        # the Stackdriver Trace tool in the
+        # {% dynamic print site_values.console_name %}.
+        # The display_name may be a method name or some other per-call site
+        # name. For the same executable and the same call point, a best practice is
+        # to use a consistent operation name, which makes it easier to correlate
+        # cross-trace spans.
+        # The maximum length for the display_name is 128 bytes.
+      "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+          # means that the string value was not truncated.
+      "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+          # 256 bytes.
+    },
+    "name": "A String", # The resource name of Span in the format
+        # `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
+        # `TRACE_ID` is a unique identifier for a trace within a project and is a
+        # base16-encoded, case-insensitive string and is required to be 32 char long.
+        # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+        # base 16-encoded, case-insensitive string of a 8-bytes array and is required
+        # to be 16 char long.
+    "links": { # A collection of links, which are references from this span to a span # A maximum of 128 links are allowed per Span.
+        # in the same or different trace.
+      "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
+          # 0 then no links were dropped.
+      "link": [ # A collection of links.
+        { # A pointer from this span to another span in a different `Trace` within
+            # the same service project or within a different service project. Used
+            # (for example) in batching operations, where a single batch handler
+            # processes multiple requests from different traces or when receives a
+            # request from a different service project.
+          "spanId": "A String", # `SPAN_ID` is a unique identifier for a span within a trace. It is a
+              # base16-encoded, case-insensitive string of a 8-bytes array and is
+              # required to be 16 char long.
+          "traceId": "A String", # `TRACE_ID` is a unique identifier for a trace within a project. It is
+              # a base16-encoded, case-insensitive string of a 16-bytes array and is
+              # required to be 32 char long.
+          "type": "A String", # The relationship of the current span relative to the linked span.
+        },
+      ],
+    },
+    "parentSpanId": "A String", # ID of parent span which is a base 16-encoded, case-insensitive string of
+        # a 8-bytes array and is required to be 16 char long. If this is a root span,
+        # the value must be empty.
+    "startTime": "A String", # Start time of the span.
+        # On the client side, this is the local machine clock time at which the span
+        # execution was started; on the server
+        # side, this is the time at which the server application handler started
+        # running.
+    "spanId": "A String", # Unique identifier for a span within a trace. It is a base 16-encoded,
+        # case-insensitive string of a 8-bytes array and is required.
+    "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the span. A maximum of 32 attributes are allowed per
+        # Span.
+      "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+          # 0 then no attributes were dropped.
+      "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+          # key size is larger than the maximum allowed). The value can be a string
+          # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+          # examples:
+          #
+          #     "/instance_id": "my-instance"
+          #     "/zone": "us-central1-a"
+          #     "/grpc/peer_address": "ip:port" (dns, etc.)
+          #     "/grpc/deadline": "Duration"
+          #     "/http/user_agent"
+          #     "/http/request_bytes": 300
+          #     "/http/response_bytes": 1200
+          #     "/http/url": google.com/apis
+          #     "abc.com/myattribute": true
+        "a_key": { # The allowed types for the value side of an attribute key:value pair.
+          "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+            "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                # means that the string value was not truncated.
+            "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                # 256 bytes.
+          },
+          "intValue": "A String", # An integer value.
+          "boolValue": True or False, # A boolean value.
+        },
+      },
+    },
+    "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A maximum of 32 annotations and 128 network events are allowed per Span.
+        # on the span, consisting of either user-supplied key:value pairs, or
+        # details of an RPC message sent/received on the network.
+      "timeEvent": [ # A collection of `TimeEvent`s.
+        { # A time-stamped annotation in the Span.
+          "networkEvent": { # An event describing an RPC message sent/received on the network. A # An event describing an RPC message sent/received on the network.
+              # maximum of 128 network events are allowed per Span.
+            "messageSize": "A String", # The number of bytes sent or received.
+            "messageId": "A String", # An identifier for the message, which must be unique in this span.
+            "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
+                # received.
+            "time": "A String", # If available, this is the kernel time:
+                #
+                # *  For sent messages, this is the time at which the first bit was sent.
+                # *  For received messages, this is the time at which the last bit was
+                #    received.
+          },
+          "annotation": { # Text annotation with a set of attributes. A maximum of 32 annotations are # One or more key:value pairs.
+              # allowed per Span.
+            "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the annotation. A maximum of 4 attributes are
+                # allowed per Annotation.
+              "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
+                  # 0 then no attributes were dropped.
+              "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
+                  # key size is larger than the maximum allowed). The value can be a string
+                  # (up to 256 bytes), integer, or boolean (true/false). Some common pair
+                  # examples:
+                  #
+                  #     "/instance_id": "my-instance"
+                  #     "/zone": "us-central1-a"
+                  #     "/grpc/peer_address": "ip:port" (dns, etc.)
+                  #     "/grpc/deadline": "Duration"
+                  #     "/http/user_agent"
+                  #     "/http/request_bytes": 300
+                  #     "/http/response_bytes": 1200
+                  #     "/http/url": google.com/apis
+                  #     "abc.com/myattribute": true
+                "a_key": { # The allowed types for the value side of an attribute key:value pair.
+                  "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
+                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                        # means that the string value was not truncated.
+                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                        # 256 bytes.
+                  },
+                  "intValue": "A String", # An integer value.
+                  "boolValue": True or False, # A boolean value.
+                },
+              },
+            },
+            "description": { # Represents a string value that might be truncated. # A user-supplied message describing the event. The maximum length for
+                # the description is 256 bytes.
+              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
+                  # means that the string value was not truncated.
+              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
+                  # 256 bytes.
+            },
+          },
+          "time": "A String", # The timestamp indicating the time the event occurred.
+        },
+      ],
+      "droppedNetworkEventsCount": 42, # The number of dropped network events after the maximum size was enforced.
+          # If 0 then no annotations were dropped.
+      "droppedAnnotationsCount": 42, # The number of dropped annotations after the maximum size was enforced. If
+          # 0 then no annotations were dropped.
+    },
+    "endTime": "A String", # End time of the span.
+        # On the client side, this is the local machine clock time at which the span
+        # execution was ended; on the server
+        # side, this is the time at which the server application handler stopped
+        # running.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/translate_v2.detections.html b/docs/dyn/translate_v2.detections.html
index 7c20f82..79fa347 100644
--- a/docs/dyn/translate_v2.detections.html
+++ b/docs/dyn/translate_v2.detections.html
@@ -72,18 +72,34 @@
 
 </style>
 
-<h1><a href="translate_v2.html">Translate API</a> . <a href="translate_v2.detections.html">detections</a></h1>
+<h1><a href="translate_v2.html">Google Cloud Translation API</a> . <a href="translate_v2.detections.html">detections</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(q)</a></code></p>
-<p class="firstline">Detect the language of text.</p>
+  <code><a href="#detect">detect(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Detects the language of text within a request.</p>
+<p class="toc_element">
+  <code><a href="#list">list(q, x__xgafv=None)</a></code></p>
+<p class="firstline">Detects the language of text within a request.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(q)</code>
-  <pre>Detect the language of text.
+    <code class="details" id="detect">detect(body, x__xgafv=None)</code>
+  <pre>Detects the language of text within a request.
 
 Args:
-  q: string, The text to detect (required) (repeated)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request message for language detection.
+    "q": [ # The input text upon which to perform language detection. Repeat this
+        # parameter to perform language detection on multiple text inputs.
+      "A String",
+    ],
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
 
 Returns:
   An object of the form:
@@ -93,8 +109,36 @@
       [ # An array of languages which we detect for the given text The most likely language list first.
         {
           "isReliable": True or False, # A boolean to indicate is the language detection result reliable.
-          "confidence": 3.14, # The confidence of the detection resul of this language.
-          "language": "A String", # The language we detect
+          "confidence": 3.14, # The confidence of the detection result of this language.
+          "language": "A String", # The language we detected.
+        },
+      ],
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(q, x__xgafv=None)</code>
+  <pre>Detects the language of text within a request.
+
+Args:
+  q: string, The input text upon which to perform language detection. Repeat this
+parameter to perform language detection on multiple text inputs. (required) (repeated)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+    "detections": [ # A detections contains detection results of several text
+      [ # An array of languages which we detect for the given text The most likely language list first.
+        {
+          "isReliable": True or False, # A boolean to indicate is the language detection result reliable.
+          "confidence": 3.14, # The confidence of the detection result of this language.
+          "language": "A String", # The language we detected.
         },
       ],
     ],
diff --git a/docs/dyn/translate_v2.html b/docs/dyn/translate_v2.html
index 1513e1c..8d7cd82 100644
--- a/docs/dyn/translate_v2.html
+++ b/docs/dyn/translate_v2.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="translate_v2.html">Translate API</a></h1>
+<h1><a href="translate_v2.html">Google Cloud Translation API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="translate_v2.detections.html">detections()</a></code>
diff --git a/docs/dyn/translate_v2.languages.html b/docs/dyn/translate_v2.languages.html
index 9bb4afd..95637f4 100644
--- a/docs/dyn/translate_v2.languages.html
+++ b/docs/dyn/translate_v2.languages.html
@@ -72,18 +72,24 @@
 
 </style>
 
-<h1><a href="translate_v2.html">Translate API</a> . <a href="translate_v2.languages.html">languages</a></h1>
+<h1><a href="translate_v2.html">Google Cloud Translation API</a> . <a href="translate_v2.languages.html">languages</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(target=None)</a></code></p>
-<p class="firstline">List the source/target languages supported by the API</p>
+  <code><a href="#list">list(target=None, x__xgafv=None, model=None)</a></code></p>
+<p class="firstline">Returns a list of supported languages for translation.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(target=None)</code>
-  <pre>List the source/target languages supported by the API
+    <code class="details" id="list">list(target=None, x__xgafv=None, model=None)</code>
+  <pre>Returns a list of supported languages for translation.
 
 Args:
-  target: string, the language and collation in which the localized results should be returned
+  target: string, The language to use to return localized, human readable names of supported
+languages.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  model: string, The model type for which supported languages should be returned.
 
 Returns:
   An object of the form:
@@ -91,8 +97,10 @@
     {
     "languages": [ # List of source/target languages supported by the translation API. If target parameter is unspecified, the list is sorted by the ASCII code point order of the language code. If target parameter is specified, the list is sorted by the collation order of the language name in the target language.
       {
-        "name": "A String", # The localized name of the language if target parameter is given.
-        "language": "A String", # The language code.
+        "name": "A String", # Human readable name of the language localized to the target language.
+        "language": "A String", # Supported language code, generally consisting of its ISO 639-1
+            # identifier. (E.g. 'en', 'ja'). In certain cases, BCP-47 codes including
+            # language + region identifiers are returned (e.g. 'zh-TW' and 'zh-CH')
       },
     ],
   }</pre>
diff --git a/docs/dyn/translate_v2.translations.html b/docs/dyn/translate_v2.translations.html
index 1783dc6..b9e3b99 100644
--- a/docs/dyn/translate_v2.translations.html
+++ b/docs/dyn/translate_v2.translations.html
@@ -72,34 +72,104 @@
 
 </style>
 
-<h1><a href="translate_v2.html">Translate API</a> . <a href="translate_v2.translations.html">translations</a></h1>
+<h1><a href="translate_v2.html">Google Cloud Translation API</a> . <a href="translate_v2.translations.html">translations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(q, target, format=None, cid=None, source=None)</a></code></p>
-<p class="firstline">Returns text translations from one language to another.</p>
+  <code><a href="#list">list(q, target, x__xgafv=None, source=None, format=None, cid=None, model=None)</a></code></p>
+<p class="firstline">Translates input text, returning translated text.</p>
+<p class="toc_element">
+  <code><a href="#translate">translate(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Translates input text, returning translated text.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(q, target, format=None, cid=None, source=None)</code>
-  <pre>Returns text translations from one language to another.
+    <code class="details" id="list">list(q, target, x__xgafv=None, source=None, format=None, cid=None, model=None)</code>
+  <pre>Translates input text, returning translated text.
 
 Args:
-  q: string, The text to translate (required) (repeated)
-  target: string, The target language into which the text should be translated (required)
-  format: string, The format of the text
+  q: string, The input text to translate. Repeat this parameter to perform translation
+operations on multiple text inputs. (required) (repeated)
+  target: string, The language to use for translation of the input text, set to one of the
+language codes listed in Language Support. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+  source: string, The language of the source text, set to one of the language codes listed in
+Language Support. If the source language is not specified, the API will
+attempt to identify the source language automatically and return it within
+the response.
+  format: string, The format of the source text, in either HTML (default) or plain-text. A
+value of "html" indicates HTML and a value of "text" indicates plain-text.
     Allowed values
       html - Specifies the input is in HTML
       text - Specifies the input is in plain textual format
   cid: string, The customization id for translate (repeated)
-  source: string, The source language of the text
+  model: string, The `model` type requested for this translation. Valid values are
+listed in public documentation.
 
 Returns:
   An object of the form:
 
-    {
+    { # The main language translation response message.
     "translations": [ # Translations contains list of translation results of given text
       {
-        "detectedSourceLanguage": "A String", # Detected source language if source parameter is unspecified.
-        "translatedText": "A String", # The translation.
+        "translatedText": "A String", # Text translated into the target language.
+        "model": "A String", # The `model` type used for this translation. Valid values are
+            # listed in public documentation. Can be different from requested `model`.
+            # Present only if specific model type was explicitly requested.
+        "detectedSourceLanguage": "A String", # The source language of the initial request, detected automatically, if
+            # no source language was passed within the initial request. If the
+            # source language was passed, auto-detection of the language will not
+            # occur and this field will be empty.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="translate">translate(body, x__xgafv=None)</code>
+  <pre>Translates input text, returning translated text.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The main translation request message for the Cloud Translation API.
+    "q": [ # The input text to translate. Repeat this parameter to perform translation
+        # operations on multiple text inputs.
+      "A String",
+    ],
+    "source": "A String", # The language of the source text, set to one of the language codes listed in
+        # Language Support. If the source language is not specified, the API will
+        # attempt to identify the source language automatically and return it within
+        # the response.
+    "model": "A String", # The `model` type requested for this translation. Valid values are
+        # listed in public documentation.
+    "target": "A String", # The language to use for translation of the input text, set to one of the
+        # language codes listed in Language Support.
+    "format": "A String", # The format of the source text, in either HTML (default) or plain-text. A
+        # value of "html" indicates HTML and a value of "text" indicates plain-text.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The main language translation response message.
+    "translations": [ # Translations contains list of translation results of given text
+      {
+        "translatedText": "A String", # Text translated into the target language.
+        "model": "A String", # The `model` type used for this translation. Valid values are
+            # listed in public documentation. Can be different from requested `model`.
+            # Present only if specific model type was explicitly requested.
+        "detectedSourceLanguage": "A String", # The source language of the initial request, detected automatically, if
+            # no source language was passed within the initial request. If the
+            # source language was passed, auto-detection of the language will not
+            # occur and this field will be empty.
       },
     ],
   }</pre>
diff --git a/docs/dyn/datastore_v1beta2.html b/docs/dyn/videointelligence_v1beta1.html
similarity index 89%
copy from docs/dyn/datastore_v1beta2.html
copy to docs/dyn/videointelligence_v1beta1.html
index 5744916..d926662 100644
--- a/docs/dyn/datastore_v1beta2.html
+++ b/docs/dyn/videointelligence_v1beta1.html
@@ -72,12 +72,12 @@
 
 </style>
 
-<h1><a href="datastore_v1beta2.html">Google Cloud Datastore API</a></h1>
+<h1><a href="videointelligence_v1beta1.html">Google Cloud Video Intelligence API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="datastore_v1beta2.datasets.html">datasets()</a></code>
+  <code><a href="videointelligence_v1beta1.videos.html">videos()</a></code>
 </p>
-<p class="firstline">Returns the datasets Resource.</p>
+<p class="firstline">Returns the videos Resource.</p>
 
 <p class="toc_element">
   <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
diff --git a/docs/dyn/videointelligence_v1beta1.videos.html b/docs/dyn/videointelligence_v1beta1.videos.html
new file mode 100644
index 0000000..747d434
--- /dev/null
+++ b/docs/dyn/videointelligence_v1beta1.videos.html
@@ -0,0 +1,234 @@
+<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="videointelligence_v1beta1.html">Google Cloud Video Intelligence API</a> . <a href="videointelligence_v1beta1.videos.html">videos</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#annotate">annotate(body, x__xgafv=None)</a></code></p>
+<p class="firstline">Performs asynchronous video annotation. Progress and results can be</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="annotate">annotate(body, x__xgafv=None)</code>
+  <pre>Performs asynchronous video annotation. Progress and results can be
+retrieved through the `google.longrunning.Operations` interface.
+`Operation.metadata` contains `AnnotateVideoProgress` (progress).
+`Operation.response` contains `AnnotateVideoResponse` (results).
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Video annotation request.
+    "videoContext": { # Video context and/or feature-specific parameters. # Additional video context and/or feature-specific parameters.
+      "shotChangeDetectionModel": "A String", # Model to use for shot change detection.
+          # Supported values: "latest" and "stable" (the default).
+      "labelDetectionModel": "A String", # Model to use for label detection.
+          # Supported values: "latest" and "stable" (the default).
+      "segments": [ # Video segments to annotate. The segments may overlap and are not required
+          # to be contiguous or span the whole video. If unspecified, each video
+          # is treated as a single segment.
+        { # Video segment.
+          "endTimeOffset": "A String", # End offset in microseconds (inclusive). Unset means 0.
+          "startTimeOffset": "A String", # Start offset in microseconds (inclusive). Unset means 0.
+        },
+      ],
+      "labelDetectionMode": "A String", # If label detection has been requested, what labels should be detected
+          # in addition to video-level labels or segment-level labels. If unspecified,
+          # defaults to `SHOT_MODE`.
+    },
+    "features": [ # Requested video annotation features.
+      "A String",
+    ],
+    "inputContent": "A String", # The video data bytes. Encoding: base64. If unset, the input video(s)
+        # should be specified via `input_uri`. If set, `input_uri` should be unset.
+    "inputUri": "A String", # Input video location. Currently, only
+        # [Google Cloud Storage](https://cloud.google.com/storage/) URIs are
+        # supported, which must be specified in the following format:
+        # `gs://bucket-id/object-id` (other URI formats return
+        # google.rpc.Code.INVALID_ARGUMENT). For more information, see
+        # [Request URIs](/storage/docs/reference-uris).
+        # A video URI may include wildcards in `object-id`, and thus identify
+        # multiple videos. Supported wildcards: '*' to match 0 or more characters;
+        # '?' to match 1 character. If unset, the input video should be embedded
+        # in the request as `input_content`. If set, `input_content` should be unset.
+    "locationId": "A String", # Optional cloud region where annotation should take place. Supported cloud
+        # regions: `us-east1`, `us-west1`, `europe-west1`, `asia-east1`. If no region
+        # is specified, a region will be determined based on video file location.
+    "outputUri": "A String", # Optional location where the output (in JSON format) should be stored.
+        # Currently, only [Google Cloud Storage](https://cloud.google.com/storage/)
+        # URIs are supported, which must be specified in the following format:
+        # `gs://bucket-id/object-id` (other URI formats return
+        # google.rpc.Code.INVALID_ARGUMENT). For more information, see
+        # [Request URIs](/storage/docs/reference-uris).
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a
+      # network API call.
+    "metadata": { # Service-specific metadata associated with the operation.  It typically
+        # contains progress information and common metadata such as create time.
+        # Some services might not provide such metadata.  Any method that returns a
+        # long-running operation should document the metadata type, if any.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "error": { # The `Status` type defines a logical error model that is suitable for different # The error result of the operation in case of failure or cancellation.
+        # programming environments, including REST APIs and RPC APIs. It is used by
+        # [gRPC](https://github.com/grpc). The error model is designed to be:
+        #
+        # - Simple to use and understand for most users
+        # - Flexible enough to meet unexpected needs
+        #
+        # # Overview
+        #
+        # The `Status` message contains three pieces of data: error code, error message,
+        # and error details. The error code should be an enum value of
+        # google.rpc.Code, but it may accept additional error codes if needed.  The
+        # error message should be a developer-facing English message that helps
+        # developers *understand* and *resolve* the error. If a localized user-facing
+        # error message is needed, put the localized message in the error details or
+        # localize it in the client. The optional error details may contain arbitrary
+        # information about the error. There is a predefined set of error detail types
+        # in the package `google.rpc` that can be used for common error conditions.
+        #
+        # # Language mapping
+        #
+        # The `Status` message is the logical representation of the error model, but it
+        # is not necessarily the actual wire format. When the `Status` message is
+        # exposed in different client libraries and different wire protocols, it can be
+        # mapped differently. For example, it will likely be mapped to some exceptions
+        # in Java, but more likely mapped to some error codes in C.
+        #
+        # # Other uses
+        #
+        # The error model and the `Status` message can be used in a variety of
+        # environments, either with or without APIs, to provide a
+        # consistent developer experience across different environments.
+        #
+        # Example uses of this error model include:
+        #
+        # - Partial errors. If a service needs to return partial errors to the client,
+        #     it may embed the `Status` in the normal response to indicate the partial
+        #     errors.
+        #
+        # - Workflow errors. A typical workflow has multiple steps. Each step may
+        #     have a `Status` message for error reporting.
+        #
+        # - Batch operations. If a client uses batch request and batch response, the
+        #     `Status` message should be used directly inside batch response, one for
+        #     each error sub-response.
+        #
+        # - Asynchronous operations. If an API call embeds asynchronous operation
+        #     results in its response, the status of those operations should be
+        #     represented directly using the `Status` message.
+        #
+        # - Logging. If some API errors are stored in logs, the message `Status` could
+        #     be used directly after any stripping needed for security/privacy reasons.
+      "message": "A String", # A developer-facing error message, which should be in English. Any
+          # user-facing error message should be localized and sent in the
+          # google.rpc.Status.details field, or localized by the client.
+      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+      "details": [ # A list of messages that carry the error details.  There will be a
+          # common set of message types for APIs to use.
+        {
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+    },
+    "done": True or False, # If the value is `false`, it means the operation is still in progress.
+        # If true, the operation is completed, and either `error` or `response` is
+        # available.
+    "response": { # The normal response of the operation in case of success.  If the original
+        # method returns no data on success, such as `Delete`, the response is
+        # `google.protobuf.Empty`.  If the original method is standard
+        # `Get`/`Create`/`Update`, the response should be the resource.  For other
+        # methods, the response should have the type `XxxResponse`, where `Xxx`
+        # is the original method name.  For example, if the original method name
+        # is `TakeSnapshot()`, the inferred response type is
+        # `TakeSnapshotResponse`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
+    "name": "A String", # The server-assigned name, which is only unique within the same service that
+        # originally returns it. If you use the default HTTP mapping, the
+        # `name` should have the format of `operations/some/unique/name`.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/vision_v1.images.html b/docs/dyn/vision_v1.images.html
index 9fe90a4..54dfdea 100644
--- a/docs/dyn/vision_v1.images.html
+++ b/docs/dyn/vision_v1.images.html
@@ -131,9 +131,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -176,9 +173,6 @@
                 #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                 #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                 #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                #
-                # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                # as if it were annotated as ST_LOCATION.
               "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
               "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
             },
@@ -256,11 +250,11 @@
         "safeSearchAnnotation": { # Set of features pertaining to the image, computed by computer vision # If present, safe-search annotation has completed successfully.
             # methods over safe-search verticals (for example, adult, spoof, medical,
             # violence).
+          "medical": "A String", # Likelihood that this is a medical image.
           "spoof": "A String", # Spoof likelihood. The likelihood that an modification
               # was made to the image's canonical version to make it appear
               # funny or offensive.
           "violence": "A String", # Violence likelihood.
-          "medical": "A String", # Likelihood that this is a medical image.
           "adult": "A String", # Represents the adult content likelihood for the image.
         },
         "textAnnotations": [ # If present, text (OCR) detection has completed successfully.
@@ -277,6 +271,8 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -322,16 +318,11 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                    #
-                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -388,8 +379,7 @@
             },
           ],
           "fullMatchingImages": [ # Fully matching images from the Internet.
-              # They're definite neardups and most often a copy of the query image with
-              # merely a size change.
+              # Can include resized copies of the query image.
             { # Metadata for online images.
               "url": "A String", # The result image URL.
               "score": 3.14, # Overall relevancy score for the image.
@@ -397,68 +387,202 @@
             },
           ],
         },
-        "error": { # The `Status` type defines a logical error model that is suitable for different # If set, represents the error message for the operation.
-            # Note that filled-in image annotations are guaranteed to be
-            # correct, even when `error` is set.
-            # programming environments, including REST APIs and RPC APIs. It is used by
-            # [gRPC](https://github.com/grpc). The error model is designed to be:
-            #
-            # - Simple to use and understand for most users
-            # - Flexible enough to meet unexpected needs
-            #
-            # # Overview
-            #
-            # The `Status` message contains three pieces of data: error code, error message,
-            # and error details. The error code should be an enum value of
-            # google.rpc.Code, but it may accept additional error codes if needed.  The
-            # error message should be a developer-facing English message that helps
-            # developers *understand* and *resolve* the error. If a localized user-facing
-            # error message is needed, put the localized message in the error details or
-            # localize it in the client. The optional error details may contain arbitrary
-            # information about the error. There is a predefined set of error detail types
-            # in the package `google.rpc` which can be used for common error conditions.
-            #
-            # # Language mapping
-            #
-            # The `Status` message is the logical representation of the error model, but it
-            # is not necessarily the actual wire format. When the `Status` message is
-            # exposed in different client libraries and different wire protocols, it can be
-            # mapped differently. For example, it will likely be mapped to some exceptions
-            # in Java, but more likely mapped to some error codes in C.
-            #
-            # # Other uses
-            #
-            # The error model and the `Status` message can be used in a variety of
-            # environments, either with or without APIs, to provide a
-            # consistent developer experience across different environments.
-            #
-            # Example uses of this error model include:
-            #
-            # - Partial errors. If a service needs to return partial errors to the client,
-            #     it may embed the `Status` in the normal response to indicate the partial
-            #     errors.
-            #
-            # - Workflow errors. A typical workflow has multiple steps. Each step may
-            #     have a `Status` message for error reporting purpose.
-            #
-            # - Batch operations. If a client uses batch request and batch response, the
-            #     `Status` message should be used directly inside batch response, one for
-            #     each error sub-response.
-            #
-            # - Asynchronous operations. If an API call embeds asynchronous operation
-            #     results in its response, the status of those operations should be
-            #     represented directly using the `Status` message.
-            #
-            # - Logging. If some API errors are stored in logs, the message `Status` could
-            #     be used directly after any stripping needed for security/privacy reasons.
-          "message": "A String", # A developer-facing error message, which should be in English. Any
-              # user-facing error message should be localized and sent in the
-              # google.rpc.Status.details field, or localized by the client.
-          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
-          "details": [ # A list of messages that carry the error details.  There will be a
-              # common set of message types for APIs to use.
-            {
-              "a_key": "", # Properties of the object. Contains field @type with type URL.
+        "fullTextAnnotation": { # TextAnnotation contains a structured representation of OCR extracted text. # If present, text (OCR) detection or document (OCR) text detection has
+            # completed successfully.
+            # This annotation provides the structural hierarchy for the OCR detected
+            # text.
+            # The hierarchy of an OCR extracted text structure is like this:
+            #     TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
+            # Each structural component, starting from Page, may further have their own
+            # properties. Properties describe detected languages, breaks etc.. Please
+            # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
+            # definition below for more detail.
+          "text": "A String", # UTF-8 text detected on the pages.
+          "pages": [ # List of pages detected by OCR.
+            { # Detected page from OCR.
+              "width": 42, # Page width in pixels.
+              "property": { # Additional information detected on the structural component. # Additional information detected on the page.
+                "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                  "isPrefix": True or False, # True if break prepends the element.
+                  "type": "A String", # Detected break type.
+                },
+                "detectedLanguages": [ # A list of detected languages together with confidence.
+                  { # Detected language for a structural component.
+                    "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                        # information, see
+                        # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                    "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                  },
+                ],
+              },
+              "blocks": [ # List of blocks of text, images etc on this page.
+                { # Logical element on the page.
+                  "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the block.
+                      # The vertices are in the order of top-left, top-right, bottom-right,
+                      # bottom-left. When a rotation of the bounding box is detected the rotation
+                      # is represented as around the top-left corner as defined when the text is
+                      # read in the 'natural' orientation.
+                      # For example:
+                      #   * when the text is horizontal it might look like:
+                      #      0----1
+                      #      |    |
+                      #      3----2
+                      #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                      #      2----3
+                      #      |    |
+                      #      1----0
+                      #   and the vertice order will still be (0, 1, 2, 3).
+                    "vertices": [ # The bounding polygon vertices.
+                      { # A vertex represents a 2D point in the image.
+                          # NOTE: the vertex coordinates are in the same scale as the original image.
+                        "y": 42, # Y coordinate.
+                        "x": 42, # X coordinate.
+                      },
+                    ],
+                  },
+                  "blockType": "A String", # Detected block type (text, image etc) for this block.
+                  "property": { # Additional information detected on the structural component. # Additional information detected for the block.
+                    "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                      "isPrefix": True or False, # True if break prepends the element.
+                      "type": "A String", # Detected break type.
+                    },
+                    "detectedLanguages": [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                            # information, see
+                            # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                        "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                      },
+                    ],
+                  },
+                  "paragraphs": [ # List of paragraphs in this block (if this blocks is of type text).
+                    { # Structural unit of text representing a number of words in certain order.
+                      "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the paragraph.
+                          # The vertices are in the order of top-left, top-right, bottom-right,
+                          # bottom-left. When a rotation of the bounding box is detected the rotation
+                          # is represented as around the top-left corner as defined when the text is
+                          # read in the 'natural' orientation.
+                          # For example:
+                          #   * when the text is horizontal it might look like:
+                          #      0----1
+                          #      |    |
+                          #      3----2
+                          #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                          #      2----3
+                          #      |    |
+                          #      1----0
+                          #   and the vertice order will still be (0, 1, 2, 3).
+                        "vertices": [ # The bounding polygon vertices.
+                          { # A vertex represents a 2D point in the image.
+                              # NOTE: the vertex coordinates are in the same scale as the original image.
+                            "y": 42, # Y coordinate.
+                            "x": 42, # X coordinate.
+                          },
+                        ],
+                      },
+                      "property": { # Additional information detected on the structural component. # Additional information detected for the paragraph.
+                        "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                          "isPrefix": True or False, # True if break prepends the element.
+                          "type": "A String", # Detected break type.
+                        },
+                        "detectedLanguages": [ # A list of detected languages together with confidence.
+                          { # Detected language for a structural component.
+                            "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                                # information, see
+                                # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                            "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                          },
+                        ],
+                      },
+                      "words": [ # List of words in this paragraph.
+                        { # A word representation.
+                          "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the word.
+                              # The vertices are in the order of top-left, top-right, bottom-right,
+                              # bottom-left. When a rotation of the bounding box is detected the rotation
+                              # is represented as around the top-left corner as defined when the text is
+                              # read in the 'natural' orientation.
+                              # For example:
+                              #   * when the text is horizontal it might look like:
+                              #      0----1
+                              #      |    |
+                              #      3----2
+                              #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                              #      2----3
+                              #      |    |
+                              #      1----0
+                              #   and the vertice order will still be (0, 1, 2, 3).
+                            "vertices": [ # The bounding polygon vertices.
+                              { # A vertex represents a 2D point in the image.
+                                  # NOTE: the vertex coordinates are in the same scale as the original image.
+                                "y": 42, # Y coordinate.
+                                "x": 42, # X coordinate.
+                              },
+                            ],
+                          },
+                          "symbols": [ # List of symbols in the word.
+                              # The order of the symbols follows the natural reading order.
+                            { # A single symbol representation.
+                              "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the symbol.
+                                  # The vertices are in the order of top-left, top-right, bottom-right,
+                                  # bottom-left. When a rotation of the bounding box is detected the rotation
+                                  # is represented as around the top-left corner as defined when the text is
+                                  # read in the 'natural' orientation.
+                                  # For example:
+                                  #   * when the text is horizontal it might look like:
+                                  #      0----1
+                                  #      |    |
+                                  #      3----2
+                                  #   * when it's rotated 180 degrees around the top-left corner it becomes:
+                                  #      2----3
+                                  #      |    |
+                                  #      1----0
+                                  #   and the vertice order will still be (0, 1, 2, 3).
+                                "vertices": [ # The bounding polygon vertices.
+                                  { # A vertex represents a 2D point in the image.
+                                      # NOTE: the vertex coordinates are in the same scale as the original image.
+                                    "y": 42, # Y coordinate.
+                                    "x": 42, # X coordinate.
+                                  },
+                                ],
+                              },
+                              "text": "A String", # The actual UTF-8 representation of the symbol.
+                              "property": { # Additional information detected on the structural component. # Additional information detected for the symbol.
+                                "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                                  "isPrefix": True or False, # True if break prepends the element.
+                                  "type": "A String", # Detected break type.
+                                },
+                                "detectedLanguages": [ # A list of detected languages together with confidence.
+                                  { # Detected language for a structural component.
+                                    "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                                        # information, see
+                                        # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                                    "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                                  },
+                                ],
+                              },
+                            },
+                          ],
+                          "property": { # Additional information detected on the structural component. # Additional information detected for the word.
+                            "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
+                              "isPrefix": True or False, # True if break prepends the element.
+                              "type": "A String", # Detected break type.
+                            },
+                            "detectedLanguages": [ # A list of detected languages together with confidence.
+                              { # Detected language for a structural component.
+                                "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
+                                    # information, see
+                                    # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                                "confidence": 3.14, # Confidence of detected language. Range [0, 1].
+                              },
+                            ],
+                          },
+                        },
+                      ],
+                    },
+                  ],
+                },
+              ],
+              "height": 42, # Page height in pixels.
             },
           ],
         },
@@ -476,6 +600,8 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -521,16 +647,11 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                    #
-                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -697,9 +818,6 @@
         },
         "faceAnnotations": [ # If present, face detection has completed successfully.
           { # A face annotation object contains the results of face detection.
-            "panAngle": 3.14, # Yaw angle, which indicates the leftward/rightward angle that the face is
-                # pointing relative to the vertical plane perpendicular to the image. Range
-                # [-180,180].
             "sorrowLikelihood": "A String", # Sorrow likelihood.
             "landmarkingConfidence": 3.14, # Face landmarking confidence. Range [0, 1].
             "underExposedLikelihood": "A String", # Under-exposed likelihood.
@@ -744,6 +862,9 @@
             "rollAngle": 3.14, # Roll angle, which indicates the amount of clockwise/anti-clockwise rotation
                 # of the face relative to the image vertical about the axis perpendicular to
                 # the face. Range [-180,180].
+            "panAngle": 3.14, # Yaw angle, which indicates the leftward/rightward angle that the face is
+                # pointing relative to the vertical plane perpendicular to the image. Range
+                # [-180,180].
             "headwearLikelihood": "A String", # Headwear likelihood.
             "fdBoundingPoly": { # A bounding polygon for the detected image annotation. # The `fd_bounding_poly` bounding polygon is tighter than the
                 # `boundingPoly`, and encloses only the skin part of the face. Typically, it
@@ -775,6 +896,8 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -820,16 +943,11 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                    #
-                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -867,6 +985,8 @@
                 # containing the detected "Eiffel Tower" than to an image containing a
                 # detected distant towering building, even though the confidence that
                 # there is a tower in each image may be the same. Range [0, 1].
+            "mid": "A String", # Opaque entity ID. Some IDs may be available in
+                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "locations": [ # The location information for the detected entity. Multiple
                 # `LocationInfo` elements can be present because one location may
                 # indicate the location of the scene in the image, and another location
@@ -912,16 +1032,11 @@
                     #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
                     #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
                     #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
-                    #
-                    # The code in logs/storage/validator/logs_validator_traits.cc treats this type
-                    # as if it were annotated as ST_LOCATION.
                   "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
                   "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
                 },
               },
             ],
-            "mid": "A String", # Opaque entity ID. Some IDs may be available in
-                # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
             "score": 3.14, # Overall score of the result. Range [0, 1].
             "boundingPoly": { # A bounding polygon for the detected image annotation. # Image region to which this entity belongs. Currently not produced
                 # for `LABEL_DETECTION` features. For `TEXT_DETECTION` (OCR), `boundingPoly`s
@@ -945,202 +1060,68 @@
             ],
           },
         ],
-        "fullTextAnnotation": { # TextAnnotation contains a structured representation of OCR extracted text. # If present, text (OCR) detection or document (OCR) text detection has
-            # completed successfully.
-            # This annotation provides the structural hierarchy for the OCR detected
-            # text.
-            # The hierarchy of an OCR extracted text structure is like this:
-            #     TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
-            # Each structural component, starting from Page, may further have their own
-            # properties. Properties describe detected languages, breaks etc.. Please
-            # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
-            # definition below for more detail.
-          "text": "A String", # UTF-8 text detected on the pages.
-          "pages": [ # List of pages detected by OCR.
-            { # Detected page from OCR.
-              "width": 42, # Page width in pixels.
-              "property": { # Additional information detected on the structural component. # Additional information detected on the page.
-                "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
-                  "type": "A String", # Detected break type.
-                  "isPrefix": True or False, # True if break prepends the element.
-                },
-                "detectedLanguages": [ # A list of detected languages together with confidence.
-                  { # Detected language for a structural component.
-                    "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
-                        # information, see
-                        # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-                    "confidence": 3.14, # Confidence of detected language. Range [0, 1].
-                  },
-                ],
-              },
-              "blocks": [ # List of blocks of text, images etc on this page.
-                { # Logical element on the page.
-                  "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the block.
-                      # The vertices are in the order of top-left, top-right, bottom-right,
-                      # bottom-left. When a rotation of the bounding box is detected the rotation
-                      # is represented as around the top-left corner as defined when the text is
-                      # read in the 'natural' orientation.
-                      # For example:
-                      #   * when the text is horizontal it might look like:
-                      #      0----1
-                      #      |    |
-                      #      3----2
-                      #   * when it's rotated 180 degrees around the top-left corner it becomes:
-                      #      2----3
-                      #      |    |
-                      #      1----0
-                      #   and the vertice order will still be (0, 1, 2, 3).
-                    "vertices": [ # The bounding polygon vertices.
-                      { # A vertex represents a 2D point in the image.
-                          # NOTE: the vertex coordinates are in the same scale as the original image.
-                        "y": 42, # Y coordinate.
-                        "x": 42, # X coordinate.
-                      },
-                    ],
-                  },
-                  "blockType": "A String", # Detected block type (text, image etc) for this block.
-                  "property": { # Additional information detected on the structural component. # Additional information detected for the block.
-                    "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
-                      "type": "A String", # Detected break type.
-                      "isPrefix": True or False, # True if break prepends the element.
-                    },
-                    "detectedLanguages": [ # A list of detected languages together with confidence.
-                      { # Detected language for a structural component.
-                        "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
-                            # information, see
-                            # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-                        "confidence": 3.14, # Confidence of detected language. Range [0, 1].
-                      },
-                    ],
-                  },
-                  "paragraphs": [ # List of paragraphs in this block (if this blocks is of type text).
-                    { # Structural unit of text representing a number of words in certain order.
-                      "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the paragraph.
-                          # The vertices are in the order of top-left, top-right, bottom-right,
-                          # bottom-left. When a rotation of the bounding box is detected the rotation
-                          # is represented as around the top-left corner as defined when the text is
-                          # read in the 'natural' orientation.
-                          # For example:
-                          #   * when the text is horizontal it might look like:
-                          #      0----1
-                          #      |    |
-                          #      3----2
-                          #   * when it's rotated 180 degrees around the top-left corner it becomes:
-                          #      2----3
-                          #      |    |
-                          #      1----0
-                          #   and the vertice order will still be (0, 1, 2, 3).
-                        "vertices": [ # The bounding polygon vertices.
-                          { # A vertex represents a 2D point in the image.
-                              # NOTE: the vertex coordinates are in the same scale as the original image.
-                            "y": 42, # Y coordinate.
-                            "x": 42, # X coordinate.
-                          },
-                        ],
-                      },
-                      "property": { # Additional information detected on the structural component. # Additional information detected for the paragraph.
-                        "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
-                          "type": "A String", # Detected break type.
-                          "isPrefix": True or False, # True if break prepends the element.
-                        },
-                        "detectedLanguages": [ # A list of detected languages together with confidence.
-                          { # Detected language for a structural component.
-                            "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
-                                # information, see
-                                # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-                            "confidence": 3.14, # Confidence of detected language. Range [0, 1].
-                          },
-                        ],
-                      },
-                      "words": [ # List of words in this paragraph.
-                        { # A word representation.
-                          "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the word.
-                              # The vertices are in the order of top-left, top-right, bottom-right,
-                              # bottom-left. When a rotation of the bounding box is detected the rotation
-                              # is represented as around the top-left corner as defined when the text is
-                              # read in the 'natural' orientation.
-                              # For example:
-                              #   * when the text is horizontal it might look like:
-                              #      0----1
-                              #      |    |
-                              #      3----2
-                              #   * when it's rotated 180 degrees around the top-left corner it becomes:
-                              #      2----3
-                              #      |    |
-                              #      1----0
-                              #   and the vertice order will still be (0, 1, 2, 3).
-                            "vertices": [ # The bounding polygon vertices.
-                              { # A vertex represents a 2D point in the image.
-                                  # NOTE: the vertex coordinates are in the same scale as the original image.
-                                "y": 42, # Y coordinate.
-                                "x": 42, # X coordinate.
-                              },
-                            ],
-                          },
-                          "symbols": [ # List of symbols in the word.
-                              # The order of the symbols follows the natural reading order.
-                            { # A single symbol representation.
-                              "boundingBox": { # A bounding polygon for the detected image annotation. # The bounding box for the symbol.
-                                  # The vertices are in the order of top-left, top-right, bottom-right,
-                                  # bottom-left. When a rotation of the bounding box is detected the rotation
-                                  # is represented as around the top-left corner as defined when the text is
-                                  # read in the 'natural' orientation.
-                                  # For example:
-                                  #   * when the text is horizontal it might look like:
-                                  #      0----1
-                                  #      |    |
-                                  #      3----2
-                                  #   * when it's rotated 180 degrees around the top-left corner it becomes:
-                                  #      2----3
-                                  #      |    |
-                                  #      1----0
-                                  #   and the vertice order will still be (0, 1, 2, 3).
-                                "vertices": [ # The bounding polygon vertices.
-                                  { # A vertex represents a 2D point in the image.
-                                      # NOTE: the vertex coordinates are in the same scale as the original image.
-                                    "y": 42, # Y coordinate.
-                                    "x": 42, # X coordinate.
-                                  },
-                                ],
-                              },
-                              "text": "A String", # The actual UTF-8 representation of the symbol.
-                              "property": { # Additional information detected on the structural component. # Additional information detected for the symbol.
-                                "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
-                                  "type": "A String", # Detected break type.
-                                  "isPrefix": True or False, # True if break prepends the element.
-                                },
-                                "detectedLanguages": [ # A list of detected languages together with confidence.
-                                  { # Detected language for a structural component.
-                                    "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
-                                        # information, see
-                                        # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-                                    "confidence": 3.14, # Confidence of detected language. Range [0, 1].
-                                  },
-                                ],
-                              },
-                            },
-                          ],
-                          "property": { # Additional information detected on the structural component. # Additional information detected for the word.
-                            "detectedBreak": { # Detected start or end of a structural component. # Detected start or end of a text segment.
-                              "type": "A String", # Detected break type.
-                              "isPrefix": True or False, # True if break prepends the element.
-                            },
-                            "detectedLanguages": [ # A list of detected languages together with confidence.
-                              { # Detected language for a structural component.
-                                "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
-                                    # information, see
-                                    # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
-                                "confidence": 3.14, # Confidence of detected language. Range [0, 1].
-                              },
-                            ],
-                          },
-                        },
-                      ],
-                    },
-                  ],
-                },
-              ],
-              "height": 42, # Page height in pixels.
+        "error": { # The `Status` type defines a logical error model that is suitable for different # If set, represents the error message for the operation.
+            # Note that filled-in image annotations are guaranteed to be
+            # correct, even when `error` is set.
+            # programming environments, including REST APIs and RPC APIs. It is used by
+            # [gRPC](https://github.com/grpc). The error model is designed to be:
+            #
+            # - Simple to use and understand for most users
+            # - Flexible enough to meet unexpected needs
+            #
+            # # Overview
+            #
+            # The `Status` message contains three pieces of data: error code, error message,
+            # and error details. The error code should be an enum value of
+            # google.rpc.Code, but it may accept additional error codes if needed.  The
+            # error message should be a developer-facing English message that helps
+            # developers *understand* and *resolve* the error. If a localized user-facing
+            # error message is needed, put the localized message in the error details or
+            # localize it in the client. The optional error details may contain arbitrary
+            # information about the error. There is a predefined set of error detail types
+            # in the package `google.rpc` that can be used for common error conditions.
+            #
+            # # Language mapping
+            #
+            # The `Status` message is the logical representation of the error model, but it
+            # is not necessarily the actual wire format. When the `Status` message is
+            # exposed in different client libraries and different wire protocols, it can be
+            # mapped differently. For example, it will likely be mapped to some exceptions
+            # in Java, but more likely mapped to some error codes in C.
+            #
+            # # Other uses
+            #
+            # The error model and the `Status` message can be used in a variety of
+            # environments, either with or without APIs, to provide a
+            # consistent developer experience across different environments.
+            #
+            # Example uses of this error model include:
+            #
+            # - Partial errors. If a service needs to return partial errors to the client,
+            #     it may embed the `Status` in the normal response to indicate the partial
+            #     errors.
+            #
+            # - Workflow errors. A typical workflow has multiple steps. Each step may
+            #     have a `Status` message for error reporting.
+            #
+            # - Batch operations. If a client uses batch request and batch response, the
+            #     `Status` message should be used directly inside batch response, one for
+            #     each error sub-response.
+            #
+            # - Asynchronous operations. If an API call embeds asynchronous operation
+            #     results in its response, the status of those operations should be
+            #     represented directly using the `Status` message.
+            #
+            # - Logging. If some API errors are stored in logs, the message `Status` could
+            #     be used directly after any stripping needed for security/privacy reasons.
+          "message": "A String", # A developer-facing error message, which should be in English. Any
+              # user-facing error message should be localized and sent in the
+              # google.rpc.Status.details field, or localized by the client.
+          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+          "details": [ # A list of messages that carry the error details.  There will be a
+              # common set of message types for APIs to use.
+            {
+              "a_key": "", # Properties of the object. Contains field @type with type URL.
             },
           ],
         },
diff --git a/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html b/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html
deleted file mode 100644
index adfa4d1..0000000
--- a/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<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="youtubeAnalytics_v1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1.batchReportDefinitions.html">batchReportDefinitions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(onBehalfOfContentOwner)</a></code></p>
-<p class="firstline">Retrieves a list of available batch report definitions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(onBehalfOfContentOwner)</code>
-  <pre>Retrieves a list of available batch report definitions.
-
-Args:
-  onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of. (required)
-
-Returns:
-  An object of the form:
-
-    { # A paginated list of batchReportDefinition resources returned in response to a youtubeAnalytics.batchReportDefinitions.list request.
-    "items": [ # A list of batchReportDefinition resources that match the request criteria.
-      { # Contains single batchReportDefinition resource.
-        "status": "A String", # Status of the report definition.
-        "kind": "youtubeAnalytics#batchReportDefinition", # This value specifies the type of data of this item. For batch report definition the kind property value is youtubeAnalytics#batchReportDefinition.
-        "type": "A String", # Type of the report definition.
-        "id": "A String", # The ID that YouTube assigns and uses to uniquely identify the report definition.
-        "name": "A String", # Name of the report definition.
-      },
-    ],
-    "kind": "youtubeAnalytics#batchReportDefinitionList", # This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportDefinitionList.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.batchReports.html b/docs/dyn/youtubeAnalytics_v1.batchReports.html
deleted file mode 100644
index 1bd13af..0000000
--- a/docs/dyn/youtubeAnalytics_v1.batchReports.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<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="youtubeAnalytics_v1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1.batchReports.html">batchReports</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(batchReportDefinitionId, onBehalfOfContentOwner)</a></code></p>
-<p class="firstline">Retrieves a list of processed batch reports.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(batchReportDefinitionId, onBehalfOfContentOwner)</code>
-  <pre>Retrieves a list of processed batch reports.
-
-Args:
-  batchReportDefinitionId: string, The batchReportDefinitionId parameter specifies the ID of the batch reportort definition for which you are retrieving reports. (required)
-  onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of. (required)
-
-Returns:
-  An object of the form:
-
-    { # A paginated list of batchReport resources returned in response to a youtubeAnalytics.batchReport.list request.
-    "items": [ # A list of batchReport resources that match the request criteria.
-      { # Contains single batchReport resource.
-        "kind": "youtubeAnalytics#batchReport", # This value specifies the type of data of this item. For batch report the kind property value is youtubeAnalytics#batchReport.
-        "timeSpan": { # Period included in the report. For reports containing all entities endTime is not set. Both startTime and endTime are inclusive.
-          "endTime": "A String", # End of the period included in the report. Inclusive. For reports containing all entities endTime is not set.
-          "startTime": "A String", # Start of the period included in the report. Inclusive.
-        },
-        "outputs": [ # Report outputs.
-          {
-            "downloadUrl": "A String", # Cloud storage URL to download this report. This URL is valid for 30 minutes.
-            "type": "cloudStorageOutput", # Type of the output.
-            "format": "A String", # Format of the output.
-          },
-        ],
-        "reportId": "A String", # The ID of the the report definition.
-        "timeUpdated": "A String", # The time when the report was updated.
-        "id": "A String", # The ID that YouTube assigns and uses to uniquely identify the report.
-      },
-    ],
-    "kind": "youtubeAnalytics#batchReportList", # This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportList.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1beta1.batchReportDefinitions.html b/docs/dyn/youtubeAnalytics_v1beta1.batchReportDefinitions.html
deleted file mode 100644
index 8dc116c..0000000
--- a/docs/dyn/youtubeAnalytics_v1beta1.batchReportDefinitions.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<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="youtubeAnalytics_v1beta1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1beta1.batchReportDefinitions.html">batchReportDefinitions</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(onBehalfOfContentOwner)</a></code></p>
-<p class="firstline">Retrieves a list of available batch report definitions.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(onBehalfOfContentOwner)</code>
-  <pre>Retrieves a list of available batch report definitions.
-
-Args:
-  onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of. (required)
-
-Returns:
-  An object of the form:
-
-    { # A paginated list of batchReportDefinition resources returned in response to a youtubeAnalytics.batchReportDefinitions.list request.
-    "items": [ # A list of batchReportDefinition resources that match the request criteria.
-      { # Contains single batchReportDefinition resource.
-        "status": "A String", # Status of the report definition.
-        "kind": "youtubeAnalytics#batchReportDefinition", # This value specifies the type of data of this item. For batch report definition the kind property value is youtubeAnalytics#batchReportDefinition.
-        "type": "A String", # Type of the report definition.
-        "id": "A String", # The ID that YouTube assigns and uses to uniquely identify the report definition.
-        "name": "A String", # Name of the report definition.
-      },
-    ],
-    "kind": "youtubeAnalytics#batchReportDefinitionList", # This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportDefinitionList.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1beta1.batchReports.html b/docs/dyn/youtubeAnalytics_v1beta1.batchReports.html
deleted file mode 100644
index faa181b..0000000
--- a/docs/dyn/youtubeAnalytics_v1beta1.batchReports.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<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="youtubeAnalytics_v1beta1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1beta1.batchReports.html">batchReports</a></h1>
-<h2>Instance Methods</h2>
-<p class="toc_element">
-  <code><a href="#list">list(batchReportDefinitionId, onBehalfOfContentOwner)</a></code></p>
-<p class="firstline">Retrieves a list of processed batch reports.</p>
-<h3>Method Details</h3>
-<div class="method">
-    <code class="details" id="list">list(batchReportDefinitionId, onBehalfOfContentOwner)</code>
-  <pre>Retrieves a list of processed batch reports.
-
-Args:
-  batchReportDefinitionId: string, The batchReportDefinitionId parameter specifies the ID of the batch reportort definition for which you are retrieving reports. (required)
-  onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter identifies the content owner that the user is acting on behalf of. (required)
-
-Returns:
-  An object of the form:
-
-    { # A paginated list of batchReport resources returned in response to a youtubeAnalytics.batchReport.list request.
-    "items": [ # A list of batchReport resources that match the request criteria.
-      { # Contains single batchReport resource.
-        "kind": "youtubeAnalytics#batchReport", # This value specifies the type of data of this item. For batch report the kind property value is youtubeAnalytics#batchReport.
-        "timeSpan": { # Period included in the report. For reports containing all entities endTime is not set. Both startTime and endTime are inclusive.
-          "endTime": "A String", # End of the period included in the report. Inclusive. For reports containing all entities endTime is not set.
-          "startTime": "A String", # Start of the period included in the report. Inclusive.
-        },
-        "outputs": [ # Report outputs.
-          {
-            "downloadUrl": "A String", # Cloud storage URL to download this report. This URL is valid for 30 minutes.
-            "type": "cloudStorageOutput", # Type of the output.
-            "format": "A String", # Format of the output.
-          },
-        ],
-        "reportId": "A String", # The ID of the the report definition.
-        "timeUpdated": "A String", # The time when the report was updated.
-        "id": "A String", # The ID that YouTube assigns and uses to uniquely identify the report.
-      },
-    ],
-    "kind": "youtubeAnalytics#batchReportList", # This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportList.
-  }</pre>
-</div>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubereporting_v1.jobs.html b/docs/dyn/youtubereporting_v1.jobs.html
index 66c6ace..6150ba7 100644
--- a/docs/dyn/youtubereporting_v1.jobs.html
+++ b/docs/dyn/youtubereporting_v1.jobs.html
@@ -105,14 +105,14 @@
 
 { # A job creating reports of a specific type.
     "name": "A String", # The name of the job (max. 100 characters).
-    "createTime": "A String", # The creation date/time of the job.
+    "id": "A String", # The server-generated ID of the job (max. 40 characters).
     "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
         # new reports are generated.
     "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
         # ReportType.
     "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
         # otherwise false.
-    "id": "A String", # The server-generated ID of the job (max. 40 characters).
+    "createTime": "A String", # The creation date/time of the job.
   }
 
   onBehalfOfContentOwner: string, The content owner's external ID on which behalf the user is acting on. If
@@ -127,14 +127,14 @@
 
     { # A job creating reports of a specific type.
       "name": "A String", # The name of the job (max. 100 characters).
-      "createTime": "A String", # The creation date/time of the job.
+      "id": "A String", # The server-generated ID of the job (max. 40 characters).
       "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
           # new reports are generated.
       "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
           # ReportType.
       "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
           # otherwise false.
-      "id": "A String", # The server-generated ID of the job (max. 40 characters).
+      "createTime": "A String", # The creation date/time of the job.
     }</pre>
 </div>
 
@@ -184,14 +184,14 @@
 
     { # A job creating reports of a specific type.
       "name": "A String", # The name of the job (max. 100 characters).
-      "createTime": "A String", # The creation date/time of the job.
+      "id": "A String", # The server-generated ID of the job (max. 40 characters).
       "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
           # new reports are generated.
       "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
           # ReportType.
       "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
           # otherwise false.
-      "id": "A String", # The server-generated ID of the job (max. 40 characters).
+      "createTime": "A String", # The creation date/time of the job.
     }</pre>
 </div>
 
@@ -228,14 +228,14 @@
     "jobs": [ # The list of jobs.
       { # A job creating reports of a specific type.
           "name": "A String", # The name of the job (max. 100 characters).
-          "createTime": "A String", # The creation date/time of the job.
+          "id": "A String", # The server-generated ID of the job (max. 40 characters).
           "expireTime": "A String", # The date/time when this job will expire/expired. After a job expired, no
               # new reports are generated.
           "reportTypeId": "A String", # The type of reports this job creates. Corresponds to the ID of a
               # ReportType.
           "systemManaged": True or False, # True if this a system-managed job that cannot be modified by the user;
               # otherwise false.
-          "id": "A String", # The server-generated ID of the job (max. 40 characters).
+          "createTime": "A String", # The creation date/time of the job.
         },
     ],
   }</pre>
diff --git a/docs/dyn/youtubereporting_v1.jobs.reports.html b/docs/dyn/youtubereporting_v1.jobs.reports.html
index f2d9d8c..9071c0a 100644
--- a/docs/dyn/youtubereporting_v1.jobs.reports.html
+++ b/docs/dyn/youtubereporting_v1.jobs.reports.html
@@ -105,13 +105,13 @@
       # downloaded.
     "jobExpireTime": "A String", # The date/time when the job this report belongs to will expire/expired.
     "jobId": "A String", # The ID of the job that created this report.
-    "createTime": "A String", # The date/time when this report was created.
     "downloadUrl": "A String", # The URL from which the report can be downloaded (max. 1000 characters).
     "startTime": "A String", # The start of the time period that the report instance covers. The value is
         # inclusive.
+    "id": "A String", # The server-generated ID of the report.
     "endTime": "A String", # The end of the time period that the report instance covers. The value is
         # exclusive.
-    "id": "A String", # The server-generated ID of the report.
+    "createTime": "A String", # The date/time when this report was created.
   }</pre>
 </div>
 
@@ -154,13 +154,13 @@
           # downloaded.
         "jobExpireTime": "A String", # The date/time when the job this report belongs to will expire/expired.
         "jobId": "A String", # The ID of the job that created this report.
-        "createTime": "A String", # The date/time when this report was created.
         "downloadUrl": "A String", # The URL from which the report can be downloaded (max. 1000 characters).
         "startTime": "A String", # The start of the time period that the report instance covers. The value is
             # inclusive.
+        "id": "A String", # The server-generated ID of the report.
         "endTime": "A String", # The end of the time period that the report instance covers. The value is
             # exclusive.
-        "id": "A String", # The server-generated ID of the report.
+        "createTime": "A String", # The date/time when this report was created.
       },
     ],
   }</pre>
diff --git a/docs/dyn/youtubereporting_v1.reportTypes.html b/docs/dyn/youtubereporting_v1.reportTypes.html
index 5bb35d8..440cdea 100644
--- a/docs/dyn/youtubereporting_v1.reportTypes.html
+++ b/docs/dyn/youtubereporting_v1.reportTypes.html
@@ -113,12 +113,12 @@
         # page of results.
     "reportTypes": [ # The list of report types.
       { # A report type.
+        "deprecateTime": "A String", # The date/time when this report type was/will be deprecated.
         "systemManaged": True or False, # True if this a system-managed report type; otherwise false. Reporting jobs
             # for system-managed report types are created automatically and can thus not
             # be used in the `CreateJob` method.
-        "id": "A String", # The ID of the report type (max. 100 characters).
         "name": "A String", # The name of the report type (max. 100 characters).
-        "deprecateTime": "A String", # The date/time when this report type was/will be deprecated.
+        "id": "A String", # The ID of the report type (max. 100 characters).
       },
     ],
   }</pre>
diff --git a/docs/epy/class-tree.html b/docs/epy/class-tree.html
index c142571..e8b15dc 100644
--- a/docs/epy/class-tree.html
+++ b/docs/epy/class-tree.html
@@ -163,7 +163,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient-module.html b/docs/epy/googleapiclient-module.html
index 6f8c68c..21d2b0c 100644
--- a/docs/epy/googleapiclient-module.html
+++ b/docs/epy/googleapiclient-module.html
@@ -149,7 +149,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient-pysrc.html b/docs/epy/googleapiclient-pysrc.html
index e59d9a9..a8a3d70 100644
--- a/docs/epy/googleapiclient-pysrc.html
+++ b/docs/epy/googleapiclient-pysrc.html
@@ -115,7 +115,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.NullHandler-class.html b/docs/epy/googleapiclient.NullHandler-class.html
index 42aab66..4313a19 100644
--- a/docs/epy/googleapiclient.NullHandler-class.html
+++ b/docs/epy/googleapiclient.NullHandler-class.html
@@ -57,31 +57,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class NullHandler</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient-pysrc.html#NullHandler">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap" name="uml_class_diagram_for_googleap">
-<area shape="rect" id="node1_18" href="googleapiclient.NullHandler-class.html#emit" title="Do whatever it takes to actually log the specified logging record." alt="" coords="53,493,159,513"/>
-<area shape="rect" id="node1" href="googleapiclient.NullHandler-class.html" title="googleapiclient.NullHandler" alt="" coords="41,459,170,519"/>
-<area shape="rect" id="node2_19" href="javascript:void(0);" title="logging.Handler.name" alt="" coords="17,151,196,171"/>
-<area shape="rect" id="node2_20" href="javascript:void(0);" title="Initializes the instance &#45; basically setting the formatter to None and the filter list to empty." alt="" coords="17,173,196,193"/>
-<area shape="rect" id="node2_21" href="javascript:void(0);" title="logging.Handler.get_name" alt="" coords="17,193,196,213"/>
-<area shape="rect" id="node2_22" href="javascript:void(0);" title="logging.Handler.set_name" alt="" coords="17,213,196,233"/>
-<area shape="rect" id="node2_23" href="javascript:void(0);" title="Acquire a thread lock for serializing access to the underlying I/O." alt="" coords="17,233,196,253"/>
-<area shape="rect" id="node2_24" href="javascript:void(0);" title="Acquire the I/O thread lock." alt="" coords="17,253,196,273"/>
-<area shape="rect" id="node2_25" href="javascript:void(0);" title="Release the I/O thread lock." alt="" coords="17,273,196,293"/>
-<area shape="rect" id="node2_26" href="javascript:void(0);" title="Set the logging level of this handler." alt="" coords="17,293,196,313"/>
-<area shape="rect" id="node2_27" href="javascript:void(0);" title="Format the specified record." alt="" coords="17,313,196,333"/>
-<area shape="rect" id="node2_28" href="javascript:void(0);" title="Conditionally emit the specified logging record." alt="" coords="17,333,196,353"/>
-<area shape="rect" id="node2_29" href="javascript:void(0);" title="Set the formatter for this handler." alt="" coords="17,353,196,373"/>
-<area shape="rect" id="node2_30" href="javascript:void(0);" title="Ensure all logging output has been flushed." alt="" coords="17,373,196,393"/>
-<area shape="rect" id="node2_31" href="javascript:void(0);" title="Tidy up any resources used by the handler." alt="" coords="17,393,196,413"/>
-<area shape="rect" id="node2_32" href="javascript:void(0);" title="Handle errors which occur during an emit() call." alt="" coords="17,413,196,433"/>
-<area shape="rect" id="node2" href="javascript:void(0);" title="Handler instances dispatch logging events to specific destinations." alt="" coords="5,125,208,440"/>
-<area shape="rect" id="node3_33" href="javascript:void(0);" title="Add the specified filter to this handler." alt="" coords="36,40,177,60"/>
-<area shape="rect" id="node3_34" href="javascript:void(0);" title="Remove the specified filter from this handler." alt="" coords="36,60,177,80"/>
-<area shape="rect" id="node3_35" href="javascript:void(0);" title="Determine if a record is loggable by consulting all the filters." alt="" coords="36,80,177,100"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="A base class for loggers and handlers which allows them to share common code." alt="" coords="24,6,189,106"/>
-</map>
-  <img src="uml_class_diagram_for_googleap.gif" alt='' usemap="#uml_class_diagram_for_googleap" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <!-- ==================== INSTANCE METHODS ==================== -->
@@ -284,7 +260,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient._auth-module.html b/docs/epy/googleapiclient._auth-module.html
index 2cbdcea..117364b 100644
--- a/docs/epy/googleapiclient._auth-module.html
+++ b/docs/epy/googleapiclient._auth-module.html
@@ -272,7 +272,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient._auth-pysrc.html b/docs/epy/googleapiclient._auth-pysrc.html
index 28a62ba..dfb7dfb 100644
--- a/docs/epy/googleapiclient._auth-pysrc.html
+++ b/docs/epy/googleapiclient._auth-pysrc.html
@@ -181,7 +181,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel-module.html b/docs/epy/googleapiclient.channel-module.html
index e719572..af1394f 100644
--- a/docs/epy/googleapiclient.channel-module.html
+++ b/docs/epy/googleapiclient.channel-module.html
@@ -455,7 +455,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel-pysrc.html b/docs/epy/googleapiclient.channel-pysrc.html
index 667ac19..485e5f3 100644
--- a/docs/epy/googleapiclient.channel-pysrc.html
+++ b/docs/epy/googleapiclient.channel-pysrc.html
@@ -386,7 +386,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel.Channel-class.html b/docs/epy/googleapiclient.channel.Channel-class.html
index 6a1c7a0..720c103 100644
--- a/docs/epy/googleapiclient.channel.Channel-class.html
+++ b/docs/epy/googleapiclient.channel.Channel-class.html
@@ -58,14 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Channel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.channel-pysrc.html#Channel">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_2" name="uml_class_diagram_for_googleap_2">
-<area shape="rect" id="node1_3" href="googleapiclient.channel.Channel-class.html#__init__" title="Create a new Channel." alt="" coords="17,40,627,60"/>
-<area shape="rect" id="node1_4" href="googleapiclient.channel.Channel-class.html#body" title="Build a body from the Channel." alt="" coords="17,60,627,80"/>
-<area shape="rect" id="node1_5" href="googleapiclient.channel.Channel-class.html#update" title="Update a channel with information from the response of watch()." alt="" coords="17,80,627,100"/>
-<area shape="rect" id="node1" href="googleapiclient.channel.Channel-class.html" title="A Channel for notifications." alt="" coords="5,6,638,106"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_2.gif" alt='' usemap="#uml_class_diagram_for_googleap_2" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -376,7 +369,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel.Notification-class.html b/docs/epy/googleapiclient.channel.Notification-class.html
index c2a292c..b310636 100644
--- a/docs/epy/googleapiclient.channel.Notification-class.html
+++ b/docs/epy/googleapiclient.channel.Notification-class.html
@@ -58,12 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Notification</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.channel-pysrc.html#Notification">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_3" name="uml_class_diagram_for_googleap_3">
-<area shape="rect" id="node1_1" href="googleapiclient.channel.Notification-class.html#__init__" title="Notification constructor." alt="" coords="17,40,401,60"/>
-<area shape="rect" id="node1" href="googleapiclient.channel.Notification-class.html" title="A Notification from a Channel." alt="" coords="5,6,413,66"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_3.gif" alt='' usemap="#uml_class_diagram_for_googleap_3" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -249,7 +244,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery-module.html b/docs/epy/googleapiclient.discovery-module.html
index 144fa37..b68ea24 100644
--- a/docs/epy/googleapiclient.discovery-module.html
+++ b/docs/epy/googleapiclient.discovery-module.html
@@ -1370,7 +1370,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery-pysrc.html b/docs/epy/googleapiclient.discovery-pysrc.html
index 68d7034..fb433ff 100644
--- a/docs/epy/googleapiclient.discovery-pysrc.html
+++ b/docs/epy/googleapiclient.discovery-pysrc.html
@@ -1471,7 +1471,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery.Resource-class.html b/docs/epy/googleapiclient.discovery.Resource-class.html
index 3cca7ba..ef0298a 100644
--- a/docs/epy/googleapiclient.discovery.Resource-class.html
+++ b/docs/epy/googleapiclient.discovery.Resource-class.html
@@ -58,14 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Resource</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery-pysrc.html#Resource">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_4" name="uml_class_diagram_for_googleap_4">
-<area shape="rect" id="node1_3" href="googleapiclient.discovery.Resource-class.html#__init__" title="Build a Resource from the API description." alt="" coords="16,40,605,60"/>
-<area shape="rect" id="node1_4" href="googleapiclient.discovery.Resource-class.html#__getstate__" title="Trim the state down to something that can be pickled." alt="" coords="16,60,605,80"/>
-<area shape="rect" id="node1_5" href="googleapiclient.discovery.Resource-class.html#__setstate__" title="Reconstitute the state of the object from being pickled." alt="" coords="16,80,605,100"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery.Resource-class.html" title="A class for interacting with a resource." alt="" coords="4,6,617,106"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_4.gif" alt='' usemap="#uml_class_diagram_for_googleap_4" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -458,7 +451,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html b/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
index 32f9977..0706219 100644
--- a/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
+++ b/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class ResourceMethodParameters</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery-pysrc.html#ResourceMethodParameters">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_5" name="uml_class_diagram_for_googleap_5">
-<area shape="rect" id="node1_2" href="googleapiclient.discovery.ResourceMethodParameters-class.html#__init__" title="Constructor for ResourceMethodParameters." alt="" coords="17,39,229,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters" title="Populates maps and lists based on method description." alt="" coords="17,59,229,79"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery.ResourceMethodParameters-class.html" title="Represents the parameters associated with a method." alt="" coords="5,5,241,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_5.gif" alt='' usemap="#uml_class_diagram_for_googleap_5" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -300,7 +294,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery._BytesGenerator-class.html b/docs/epy/googleapiclient.discovery._BytesGenerator-class.html
index d280bc7..2d2ce7f 100644
--- a/docs/epy/googleapiclient.discovery._BytesGenerator-class.html
+++ b/docs/epy/googleapiclient.discovery._BytesGenerator-class.html
@@ -58,11 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class _BytesGenerator</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery-pysrc.html#_BytesGenerator">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_6" name="uml_class_diagram_for_googleap_6">
-<area shape="rect" id="node1" href="googleapiclient.discovery._BytesGenerator-class.html" title="googleapiclient.discovery._BytesGenerator" alt="" coords="5,5,129,51"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_6.gif" alt='' usemap="#uml_class_diagram_for_googleap_6" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <!-- ==================== CLASS VARIABLES ==================== -->
@@ -116,7 +112,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache-module.html b/docs/epy/googleapiclient.discovery_cache-module.html
index 00fcd4c..7d9826a 100644
--- a/docs/epy/googleapiclient.discovery_cache-module.html
+++ b/docs/epy/googleapiclient.discovery_cache-module.html
@@ -225,7 +225,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache-pysrc.html b/docs/epy/googleapiclient.discovery_cache-pysrc.html
index f6cb19f..b8df4a9 100644
--- a/docs/epy/googleapiclient.discovery_cache-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache-pysrc.html
@@ -144,7 +144,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html
index 7b3921a..409a2cc 100644
--- a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html
+++ b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html
@@ -153,7 +153,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html
index 7c519ae..09c89e6 100644
--- a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html
@@ -165,7 +165,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html b/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html
index c05e09b..980a996 100644
--- a/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html
+++ b/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html
@@ -59,16 +59,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Cache</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery_cache.appengine_memcache-pysrc.html#Cache">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_7" name="uml_class_diagram_for_googleap_7">
-<area shape="rect" id="node1_4" href="googleapiclient.discovery_cache.appengine_memcache.Cache-class.html#__init__" title="Constructor." alt="" coords="17,120,160,140"/>
-<area shape="rect" id="node1_5" href="googleapiclient.discovery_cache.appengine_memcache.Cache-class.html#get" title="Gets the content from the memcache with a given key." alt="" coords="17,140,160,160"/>
-<area shape="rect" id="node1_6" href="googleapiclient.discovery_cache.appengine_memcache.Cache-class.html#set" title="Sets the given key and content in the cache." alt="" coords="17,160,160,180"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery_cache.appengine_memcache.Cache-class.html" title="A cache with app engine memcache API." alt="" coords="5,86,171,186"/>
-<area shape="rect" id="node2_7" href="googleapiclient.discovery_cache.base.Cache-class.html#__metaclass__" title="googleapiclient.discovery_cache.base.Cache.__metaclass__" alt="" coords="41,32,137,52"/>
-<area shape="rect" id="node2" href="googleapiclient.discovery_cache.base.Cache-class.html" title="A base abstract cache class." alt="" coords="29,6,149,66"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_7.gif" alt='' usemap="#uml_class_diagram_for_googleap_7" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -358,7 +349,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.base-module.html b/docs/epy/googleapiclient.discovery_cache.base-module.html
index 9d17307..40107ba 100644
--- a/docs/epy/googleapiclient.discovery_cache.base-module.html
+++ b/docs/epy/googleapiclient.discovery_cache.base-module.html
@@ -114,7 +114,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.base-pysrc.html b/docs/epy/googleapiclient.discovery_cache.base-pysrc.html
index 7022b2e..770d7ac 100644
--- a/docs/epy/googleapiclient.discovery_cache.base-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache.base-pysrc.html
@@ -135,7 +135,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html b/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html
index 0c49dd0..77e2e84 100644
--- a/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html
+++ b/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html
@@ -59,14 +59,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Cache</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery_cache.base-pysrc.html#Cache">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_8" name="uml_class_diagram_for_googleap_8">
-<area shape="rect" id="node1_3" href="googleapiclient.discovery_cache.base.Cache-class.html#__metaclass__" title="googleapiclient.discovery_cache.base.Cache.__metaclass__" alt="" coords="17,32,145,52"/>
-<area shape="rect" id="node1_4" href="googleapiclient.discovery_cache.base.Cache-class.html#get" title="Gets the content from the memcache with a given key." alt="" coords="17,55,145,75"/>
-<area shape="rect" id="node1_5" href="googleapiclient.discovery_cache.base.Cache-class.html#set" title="Sets the given key and content in the cache." alt="" coords="17,75,145,95"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery_cache.base.Cache-class.html" title="A base abstract cache class." alt="" coords="5,6,157,101"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_8.gif" alt='' usemap="#uml_class_diagram_for_googleap_8" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -309,7 +302,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.file_cache-module.html b/docs/epy/googleapiclient.discovery_cache.file_cache-module.html
index 7b4085e..111b931 100644
--- a/docs/epy/googleapiclient.discovery_cache.file_cache-module.html
+++ b/docs/epy/googleapiclient.discovery_cache.file_cache-module.html
@@ -215,7 +215,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html b/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html
index 67e76d3..6b8425f 100644
--- a/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html
@@ -276,7 +276,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html b/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html
index 5d6dd94..9c30ea8 100644
--- a/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html
+++ b/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html
@@ -59,16 +59,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Cache</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery_cache.file_cache-pysrc.html#Cache">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_9" name="uml_class_diagram_for_googleap_9">
-<area shape="rect" id="node1_4" href="googleapiclient.discovery_cache.file_cache.Cache-class.html#__init__" title="Constructor." alt="" coords="17,120,160,140"/>
-<area shape="rect" id="node1_5" href="googleapiclient.discovery_cache.file_cache.Cache-class.html#get" title="Gets the content from the memcache with a given key." alt="" coords="17,140,160,160"/>
-<area shape="rect" id="node1_6" href="googleapiclient.discovery_cache.file_cache.Cache-class.html#set" title="Sets the given key and content in the cache." alt="" coords="17,160,160,180"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery_cache.file_cache.Cache-class.html" title="A file based cache for the discovery documents." alt="" coords="5,86,171,186"/>
-<area shape="rect" id="node2_7" href="googleapiclient.discovery_cache.base.Cache-class.html#__metaclass__" title="googleapiclient.discovery_cache.base.Cache.__metaclass__" alt="" coords="41,32,137,52"/>
-<area shape="rect" id="node2" href="googleapiclient.discovery_cache.base.Cache-class.html" title="A base abstract cache class." alt="" coords="29,6,149,66"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_9.gif" alt='' usemap="#uml_class_diagram_for_googleap_9" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -358,7 +349,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors-module.html b/docs/epy/googleapiclient.errors-module.html
index 8fd7493..911586a 100644
--- a/docs/epy/googleapiclient.errors-module.html
+++ b/docs/epy/googleapiclient.errors-module.html
@@ -224,7 +224,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors-pysrc.html b/docs/epy/googleapiclient.errors-pysrc.html
index 584fdf0..c415174 100644
--- a/docs/epy/googleapiclient.errors-pysrc.html
+++ b/docs/epy/googleapiclient.errors-pysrc.html
@@ -296,7 +296,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.BatchError-class.html b/docs/epy/googleapiclient.errors.BatchError-class.html
index 85e443c..3b1e059 100644
--- a/docs/epy/googleapiclient.errors.BatchError-class.html
+++ b/docs/epy/googleapiclient.errors.BatchError-class.html
@@ -58,29 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class BatchError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#BatchError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_10" name="uml_class_diagram_for_googleap_10">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.BatchError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,501,308,521"/>
-<area shape="rect" id="node1_15" href="googleapiclient.errors.BatchError-class.html#__repr__" title="str(x)" alt="" coords="17,521,308,541"/>
-<area shape="rect" id="node1_16" href="googleapiclient.errors.BatchError-class.html#__str__" title="str(x)" alt="" coords="17,541,308,561"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="5,467,320,567"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="122,403,201,448"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="84,31,241,51"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="84,51,241,71"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="84,73,241,93"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="84,93,241,113"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="84,113,241,133"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="84,133,241,153"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="84,153,241,173"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="84,173,241,193"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="84,193,241,213"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="84,213,241,233"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="72,5,253,240"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="99,293,225,313"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="86,259,237,319"/>
-<area shape="rect" id="node5" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="134,339,189,384"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_10.gif" alt='' usemap="#uml_class_diagram_for_googleap_10" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -349,7 +327,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.Error-class.html b/docs/epy/googleapiclient.errors.Error-class.html
index a878d6d..6f95775 100644
--- a/docs/epy/googleapiclient.errors.Error-class.html
+++ b/docs/epy/googleapiclient.errors.Error-class.html
@@ -58,27 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#Error">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_11" name="uml_class_diagram_for_googleap_11">
-<area shape="rect" id="node1" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node2_14" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node2_15" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_27" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_11.gif" alt='' usemap="#uml_class_diagram_for_googleap_11" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -186,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.HttpError-class.html b/docs/epy/googleapiclient.errors.HttpError-class.html
index 947ef2a..3edf89b 100644
--- a/docs/epy/googleapiclient.errors.HttpError-class.html
+++ b/docs/epy/googleapiclient.errors.HttpError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class HttpError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#HttpError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_12" name="uml_class_diagram_for_googleap_12">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.HttpError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,437,244,457"/>
-<area shape="rect" id="node1_15" href="googleapiclient.errors.HttpError-class.html#__repr__" title="str(x)" alt="" coords="17,457,244,477"/>
-<area shape="rect" id="node1_16" href="googleapiclient.errors.HttpError-class.html#__str__" title="str(x)" alt="" coords="17,477,244,497"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="5,403,256,503"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="102,339,157,384"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="52,31,209,51"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="52,51,209,71"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="52,73,209,93"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="52,93,209,113"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="52,113,209,133"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="52,133,209,153"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="52,153,209,173"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="52,173,209,193"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="52,193,209,213"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="52,213,209,233"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="40,5,221,240"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="67,293,193,313"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="54,259,205,319"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_12.gif" alt='' usemap="#uml_class_diagram_for_googleap_12" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -362,7 +341,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html b/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
index d2f7883..8347a90 100644
--- a/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class InvalidChunkSizeError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#InvalidChunkSizeError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_13" name="uml_class_diagram_for_googleap_13">
-<area shape="rect" id="node1" href="googleapiclient.errors.InvalidChunkSizeError-class.html" title="The given chunksize is not valid." alt="" coords="17,461,173,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_13.gif" alt='' usemap="#uml_class_diagram_for_googleap_13" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.InvalidJsonError-class.html b/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
index 14370d3..6e8fd2d 100644
--- a/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class InvalidJsonError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#InvalidJsonError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_14" name="uml_class_diagram_for_googleap_14">
-<area shape="rect" id="node1" href="googleapiclient.errors.InvalidJsonError-class.html" title="The JSON returned could not be parsed." alt="" coords="36,461,156,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_14.gif" alt='' usemap="#uml_class_diagram_for_googleap_14" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html b/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
index 56adf64..0f1afbd 100644
--- a/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class InvalidNotificationError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#InvalidNotificationError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_15" name="uml_class_diagram_for_googleap_15">
-<area shape="rect" id="node1" href="googleapiclient.errors.InvalidNotificationError-class.html" title="The channel Notification is invalid." alt="" coords="15,461,174,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_15.gif" alt='' usemap="#uml_class_diagram_for_googleap_15" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html b/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
index 43eb295..5775b78 100644
--- a/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
+++ b/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaUploadSizeError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#MediaUploadSizeError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_16" name="uml_class_diagram_for_googleap_16">
-<area shape="rect" id="node1" href="googleapiclient.errors.MediaUploadSizeError-class.html" title="Media is larger than the method can accept." alt="" coords="17,461,173,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_16.gif" alt='' usemap="#uml_class_diagram_for_googleap_16" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.ResumableUploadError-class.html b/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
index 257234e..92c428c 100644
--- a/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
+++ b/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
@@ -58,29 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class ResumableUploadError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#ResumableUploadError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_17" name="uml_class_diagram_for_googleap_17">
-<area shape="rect" id="node1" href="googleapiclient.errors.ResumableUploadError-class.html" title="Error occured during resumable upload." alt="" coords="49,523,210,568"/>
-<area shape="rect" id="node2_14" href="googleapiclient.errors.HttpError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,437,244,457"/>
-<area shape="rect" id="node2_15" href="googleapiclient.errors.HttpError-class.html#__repr__" title="str(x)" alt="" coords="17,457,244,477"/>
-<area shape="rect" id="node2_16" href="googleapiclient.errors.HttpError-class.html#__str__" title="str(x)" alt="" coords="17,477,244,497"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="5,403,256,503"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="52,31,209,51"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="52,51,209,71"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="52,73,209,93"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="52,93,209,113"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="52,113,209,133"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="52,133,209,153"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="52,153,209,173"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="52,173,209,193"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="52,193,209,213"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="52,213,209,233"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="40,5,221,240"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="67,293,193,313"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="54,259,205,319"/>
-<area shape="rect" id="node5" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="102,339,157,384"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_17.gif" alt='' usemap="#uml_class_diagram_for_googleap_17" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -193,7 +171,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html b/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
index dbd0e93..58a362f 100644
--- a/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
+++ b/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class UnacceptableMimeTypeError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnacceptableMimeTypeError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_18" name="uml_class_diagram_for_googleap_18">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnacceptableMimeTypeError-class.html" title="That is an unacceptable mimetype for this operation." alt="" coords="5,461,200,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="74,397,129,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="24,31,181,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="24,51,181,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="24,73,181,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="24,93,181,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="24,113,181,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="24,133,181,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="24,153,181,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="24,173,181,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="24,193,181,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="24,213,181,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="24,233,181,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="24,253,181,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="12,5,193,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="39,332,165,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="39,352,165,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="26,299,177,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_18.gif" alt='' usemap="#uml_class_diagram_for_googleap_18" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html b/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
index 58f7f11..276aa0b 100644
--- a/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
+++ b/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class UnexpectedBodyError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnexpectedBodyError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_19" name="uml_class_diagram_for_googleap_19">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.UnexpectedBodyError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="16,477,216,497"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.UnexpectedBodyError-class.html" title="Exception raised by RequestMockBuilder on unexpected bodies." alt="" coords="4,443,228,503"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="87,379,142,424"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="37,31,195,51"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="37,51,195,71"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="37,73,195,93"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="37,93,195,113"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[y]" alt="" coords="37,113,195,133"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[i:j]" alt="" coords="37,133,195,153"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="helper for pickle" alt="" coords="37,153,195,173"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="repr(x)" alt="" coords="37,173,195,193"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="37,193,195,213"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="37,213,195,233"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="str(x)" alt="" coords="37,233,195,253"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="37,253,195,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="25,5,207,280"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="52,333,179,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="39,299,190,359"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_19.gif" alt='' usemap="#uml_class_diagram_for_googleap_19" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -252,7 +231,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html b/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
index 978227f..03894eb 100644
--- a/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
+++ b/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class UnexpectedMethodError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnexpectedMethodError">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_20" name="uml_class_diagram_for_googleap_20">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.UnexpectedMethodError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="17,477,200,497"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.UnexpectedMethodError-class.html" title="Exception raised by RequestMockBuilder on unexpected calls." alt="" coords="5,443,211,503"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="81,379,135,424"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="31,31,188,51"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="31,51,188,71"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="31,73,188,93"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="31,93,188,113"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[y]" alt="" coords="31,113,188,133"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[i:j]" alt="" coords="31,133,188,153"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="helper for pickle" alt="" coords="31,153,188,173"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="repr(x)" alt="" coords="31,173,188,193"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="31,193,188,213"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="31,213,188,233"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="str(x)" alt="" coords="31,233,188,253"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="31,253,188,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="19,5,200,280"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="45,333,172,353"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="33,299,183,359"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_20.gif" alt='' usemap="#uml_class_diagram_for_googleap_20" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -254,7 +233,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html b/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
index 2b51635..3c78dba 100644
--- a/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class UnknownApiNameOrVersion</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnknownApiNameOrVersion">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_21" name="uml_class_diagram_for_googleap_21">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnknownApiNameOrVersion-class.html" title="No API with that name and version exists." alt="" coords="5,461,198,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="74,397,129,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="24,31,181,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="24,51,181,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="24,73,181,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="24,93,181,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="24,113,181,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="24,133,181,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="24,153,181,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="24,173,181,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="24,193,181,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="24,213,181,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="24,233,181,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="24,253,181,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="12,5,193,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="39,332,165,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="39,352,165,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="26,299,177,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_21.gif" alt='' usemap="#uml_class_diagram_for_googleap_21" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnknownFileType-class.html b/docs/epy/googleapiclient.errors.UnknownFileType-class.html
index ac1fe9f..c40453e 100644
--- a/docs/epy/googleapiclient.errors.UnknownFileType-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownFileType-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class UnknownFileType</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnknownFileType">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_22" name="uml_class_diagram_for_googleap_22">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnknownFileType-class.html" title="File type unknown or unexpected." alt="" coords="31,461,161,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_22.gif" alt='' usemap="#uml_class_diagram_for_googleap_22" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnknownLinkType-class.html b/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
index d52e31a..a4b3661 100644
--- a/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
@@ -58,28 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class UnknownLinkType</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnknownLinkType">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_23" name="uml_class_diagram_for_googleap_23">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnknownLinkType-class.html" title="Link type unknown or unexpected." alt="" coords="27,461,162,507"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_23.gif" alt='' usemap="#uml_class_diagram_for_googleap_23" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -187,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http-module.html b/docs/epy/googleapiclient.http-module.html
index 701eea5..80a07ff 100644
--- a/docs/epy/googleapiclient.http-module.html
+++ b/docs/epy/googleapiclient.http-module.html
@@ -598,7 +598,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http-pysrc.html b/docs/epy/googleapiclient.http-pysrc.html
index ae7c7ad..efaa799 100644
--- a/docs/epy/googleapiclient.http-pysrc.html
+++ b/docs/epy/googleapiclient.http-pysrc.html
@@ -283,7 +283,7 @@
 <a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line"><tt class="py-docstring">      the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
 <a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line"><tt class="py-docstring">      the upload is unknown.</tt> </tt>
 <a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 <a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
 <a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
@@ -309,7 +309,7 @@
 <a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line"><tt class="py-docstring">      the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
 <a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line"><tt class="py-docstring">      the download is unknown.</tt> </tt>
 <a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 <a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
 <a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
@@ -2189,7 +2189,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.BatchHttpRequest-class.html b/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
index 6ecf507..94d27da 100644
--- a/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
+++ b/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
@@ -58,14 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class BatchHttpRequest</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#BatchHttpRequest">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_24" name="uml_class_diagram_for_googleap_24">
-<area shape="rect" id="node1_3" href="googleapiclient.http.BatchHttpRequest-class.html#__init__" title="Constructor for a BatchHttpRequest." alt="" coords="17,40,328,60"/>
-<area shape="rect" id="node1_4" href="googleapiclient.http.BatchHttpRequest-class.html#add" title="Add a new request." alt="" coords="17,60,328,80"/>
-<area shape="rect" id="node1_5" href="googleapiclient.http.BatchHttpRequest-class.html#execute" title="Execute all the requests as a single batched HTTP request." alt="" coords="17,80,328,100"/>
-<area shape="rect" id="node1" href="googleapiclient.http.BatchHttpRequest-class.html" title="Batches multiple HttpRequest objects into a single HTTP request." alt="" coords="5,6,339,106"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_24.gif" alt='' usemap="#uml_class_diagram_for_googleap_24" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -740,7 +733,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpMock-class.html b/docs/epy/googleapiclient.http.HttpMock-class.html
index a0c0579..5a6cb6d 100644
--- a/docs/epy/googleapiclient.http.HttpMock-class.html
+++ b/docs/epy/googleapiclient.http.HttpMock-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class HttpMock</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpMock">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_25" name="uml_class_diagram_for_googleap_25">
-<area shape="rect" id="node1_2" href="googleapiclient.http.HttpMock-class.html#__init__" title="Args:..." alt="" coords="17,39,611,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.HttpMock-class.html#request" title="googleapiclient.http.HttpMock.request" alt="" coords="17,59,611,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpMock-class.html" title="Mock of httplib2.Http" alt="" coords="5,5,622,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_25.gif" alt='' usemap="#uml_class_diagram_for_googleap_25" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -250,7 +244,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpMockSequence-class.html b/docs/epy/googleapiclient.http.HttpMockSequence-class.html
index cf12548..2b3c8e7 100644
--- a/docs/epy/googleapiclient.http.HttpMockSequence-class.html
+++ b/docs/epy/googleapiclient.http.HttpMockSequence-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class HttpMockSequence</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpMockSequence">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_26" name="uml_class_diagram_for_googleap_26">
-<area shape="rect" id="node1_2" href="googleapiclient.http.HttpMockSequence-class.html#__init__" title="Args:..." alt="" coords="17,39,611,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.HttpMockSequence-class.html#request" title="googleapiclient.http.HttpMockSequence.request" alt="" coords="17,59,611,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpMockSequence-class.html" title="Mock of httplib2.Http" alt="" coords="5,5,622,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_26.gif" alt='' usemap="#uml_class_diagram_for_googleap_26" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -267,7 +261,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpRequest-class.html b/docs/epy/googleapiclient.http.HttpRequest-class.html
index 84c96b5..e61cf16 100644
--- a/docs/epy/googleapiclient.http.HttpRequest-class.html
+++ b/docs/epy/googleapiclient.http.HttpRequest-class.html
@@ -58,17 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class HttpRequest</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpRequest">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_27" name="uml_class_diagram_for_googleap_27">
-<area shape="rect" id="node1_6" href="googleapiclient.http.HttpRequest-class.html#__init__" title="Constructor for an HttpRequest." alt="" coords="17,39,677,59"/>
-<area shape="rect" id="node1_7" href="googleapiclient.http.HttpRequest-class.html#execute" title="Execute the request." alt="" coords="17,59,677,79"/>
-<area shape="rect" id="node1_8" href="googleapiclient.http.HttpRequest-class.html#add_response_callback" title="add_response_headers_callback" alt="" coords="17,79,677,99"/>
-<area shape="rect" id="node1_9" href="googleapiclient.http.HttpRequest-class.html#next_chunk" title="Execute the next step of a resumable upload." alt="" coords="17,99,677,119"/>
-<area shape="rect" id="node1_10" href="googleapiclient.http.HttpRequest-class.html#to_json" title="Returns a JSON representation of the HttpRequest." alt="" coords="17,119,677,139"/>
-<area shape="rect" id="node1_11" href="googleapiclient.http.HttpRequest-class.html#from_json" title="Returns an HttpRequest populated with info from a JSON object." alt="" coords="17,139,677,159"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpRequest-class.html" title="Encapsulates a single HTTP request." alt="" coords="5,5,689,165"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_27.gif" alt='' usemap="#uml_class_diagram_for_googleap_27" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -561,7 +551,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpRequestMock-class.html b/docs/epy/googleapiclient.http.HttpRequestMock-class.html
index df8066f..bfcb8f7 100644
--- a/docs/epy/googleapiclient.http.HttpRequestMock-class.html
+++ b/docs/epy/googleapiclient.http.HttpRequestMock-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class HttpRequestMock</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpRequestMock">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_28" name="uml_class_diagram_for_googleap_28">
-<area shape="rect" id="node1_2" href="googleapiclient.http.HttpRequestMock-class.html#__init__" title="Constructor for HttpRequestMock" alt="" coords="16,39,240,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.HttpRequestMock-class.html#execute" title="Execute the request." alt="" coords="16,59,240,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpRequestMock-class.html" title="Mock of HttpRequest." alt="" coords="4,5,252,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_28.gif" alt='' usemap="#uml_class_diagram_for_googleap_28" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -279,7 +273,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html b/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
index e554c1f..f173683 100644
--- a/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
+++ b/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaDownloadProgress</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaDownloadProgress">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_29" name="uml_class_diagram_for_googleap_29">
-<area shape="rect" id="node1_2" href="googleapiclient.http.MediaDownloadProgress-class.html#__init__" title="Constructor." alt="" coords="17,39,288,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.MediaDownloadProgress-class.html#progress" title="Percent of download completed, as a float." alt="" coords="17,59,288,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaDownloadProgress-class.html" title="Status of a resumable download." alt="" coords="5,5,299,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_29.gif" alt='' usemap="#uml_class_diagram_for_googleap_29" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -272,7 +266,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaFileUpload-class.html b/docs/epy/googleapiclient.http.MediaFileUpload-class.html
index 9330a5b..d41911f 100644
--- a/docs/epy/googleapiclient.http.MediaFileUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaFileUpload-class.html
@@ -58,24 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaFileUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaFileUpload">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_30" name="uml_class_diagram_for_googleap_30">
-<area shape="rect" id="node1_11" href="googleapiclient.http.MediaFileUpload-class.html#__init__" title="Constructor." alt="" coords="17,320,597,340"/>
-<area shape="rect" id="node1_12" href="googleapiclient.http.MediaFileUpload-class.html#to_json" title="Creating a JSON representation of an instance of MediaFileUpload." alt="" coords="17,340,597,360"/>
-<area shape="rect" id="node1_13" href="googleapiclient.http.MediaFileUpload-class.html#from_json" title="googleapiclient.http.MediaFileUpload.from_json" alt="" coords="17,360,597,380"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaFileUpload-class.html" title="A MediaUpload for a file." alt="" coords="5,286,609,386"/>
-<area shape="rect" id="node2_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="224,120,392,140"/>
-<area shape="rect" id="node2_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="224,140,392,160"/>
-<area shape="rect" id="node2_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="224,160,392,180"/>
-<area shape="rect" id="node2_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="224,180,392,200"/>
-<area shape="rect" id="node2_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="224,200,392,220"/>
-<area shape="rect" id="node2_19" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="224,220,392,240"/>
-<area shape="rect" id="node2_20" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="224,240,392,260"/>
-<area shape="rect" id="node2" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="212,86,404,266"/>
-<area shape="rect" id="node3_21" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="240,40,376,60"/>
-<area shape="rect" id="node3" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="228,6,388,66"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_30.gif" alt='' usemap="#uml_class_diagram_for_googleap_30" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -392,7 +375,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html b/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
index e81e2ca..505325a 100644
--- a/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
@@ -58,23 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaInMemoryUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaInMemoryUpload">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_31" name="uml_class_diagram_for_googleap_31">
-<area shape="rect" id="node1_10" href="googleapiclient.http.MediaInMemoryUpload-class.html#__init__" title="Create a new MediaInMemoryUpload." alt="" coords="17,339,689,359"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaInMemoryUpload-class.html" title="MediaUpload for a chunk of bytes." alt="" coords="5,305,701,365"/>
-<area shape="rect" id="node2_11" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="269,119,437,139"/>
-<area shape="rect" id="node2_12" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="269,139,437,159"/>
-<area shape="rect" id="node2_13" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="269,159,437,179"/>
-<area shape="rect" id="node2_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="269,179,437,199"/>
-<area shape="rect" id="node2_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="269,199,437,219"/>
-<area shape="rect" id="node2_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="269,219,437,239"/>
-<area shape="rect" id="node2_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="269,239,437,259"/>
-<area shape="rect" id="node2_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="269,259,437,279"/>
-<area shape="rect" id="node2" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="257,85,449,285"/>
-<area shape="rect" id="node3_19" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="285,40,421,60"/>
-<area shape="rect" id="node3" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="273,6,433,66"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_31.gif" alt='' usemap="#uml_class_diagram_for_googleap_31" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -297,7 +281,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html b/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
index e9d84e9..06f3781 100644
--- a/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
+++ b/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaIoBaseDownload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaIoBaseDownload">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_32" name="uml_class_diagram_for_googleap_32">
-<area shape="rect" id="node1_2" href="googleapiclient.http.MediaIoBaseDownload-class.html#__init__" title="Constructor." alt="" coords="17,39,397,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk" title="Get the next chunk of the download." alt="" coords="17,59,397,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaIoBaseDownload-class.html" title="&quot;Download media resources." alt="" coords="5,5,409,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_32.gif" alt='' usemap="#uml_class_diagram_for_googleap_32" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -314,7 +308,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:56 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html b/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
index 5e851ae..c7aeb7f 100644
--- a/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
@@ -58,22 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaIoBaseUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaIoBaseUpload">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_33" name="uml_class_diagram_for_googleap_33">
-<area shape="rect" id="node1_10" href="googleapiclient.http.MediaIoBaseUpload-class.html#__init__" title="Constructor." alt="" coords="17,120,520,140"/>
-<area shape="rect" id="node1_11" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,140,520,160"/>
-<area shape="rect" id="node1_12" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,160,520,180"/>
-<area shape="rect" id="node1_13" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="17,180,520,200"/>
-<area shape="rect" id="node1_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,200,520,220"/>
-<area shape="rect" id="node1_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,220,520,240"/>
-<area shape="rect" id="node1_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="17,240,520,260"/>
-<area shape="rect" id="node1_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="17,260,520,280"/>
-<area shape="rect" id="node1_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="17,280,520,300"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="5,86,531,306"/>
-<area shape="rect" id="node2_19" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="201,40,337,60"/>
-<area shape="rect" id="node2" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="189,6,349,66"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_33.gif" alt='' usemap="#uml_class_diagram_for_googleap_33" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -674,7 +659,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaUpload-class.html b/docs/epy/googleapiclient.http.MediaUpload-class.html
index 99966ff..b3ea350 100644
--- a/docs/epy/googleapiclient.http.MediaUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaUpload-class.html
@@ -58,20 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaUpload">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_34" name="uml_class_diagram_for_googleap_34">
-<area shape="rect" id="node1_9" href="googleapiclient.http.MediaUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,40,172,60"/>
-<area shape="rect" id="node1_10" href="googleapiclient.http.MediaUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,60,172,80"/>
-<area shape="rect" id="node1_11" href="googleapiclient.http.MediaUpload-class.html#size" title="Size of upload." alt="" coords="17,80,172,100"/>
-<area shape="rect" id="node1_12" href="googleapiclient.http.MediaUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,100,172,120"/>
-<area shape="rect" id="node1_13" href="googleapiclient.http.MediaUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,120,172,140"/>
-<area shape="rect" id="node1_14" href="googleapiclient.http.MediaUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="17,140,172,160"/>
-<area shape="rect" id="node1_15" href="googleapiclient.http.MediaUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="17,160,172,180"/>
-<area shape="rect" id="node1_16" href="googleapiclient.http.MediaUpload-class.html#to_json" title="Create a JSON representation of an instance of MediaUpload." alt="" coords="17,180,172,200"/>
-<area shape="rect" id="node1_17" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="17,200,172,220"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="5,6,184,226"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_34.gif" alt='' usemap="#uml_class_diagram_for_googleap_34" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -681,7 +668,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaUploadProgress-class.html b/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
index 7c3870c..233d3b8 100644
--- a/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
+++ b/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaUploadProgress</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaUploadProgress">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_35" name="uml_class_diagram_for_googleap_35">
-<area shape="rect" id="node1_2" href="googleapiclient.http.MediaUploadProgress-class.html#__init__" title="Constructor." alt="" coords="17,39,288,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.MediaUploadProgress-class.html#progress" title="Percent of upload completed, as a float." alt="" coords="17,59,288,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaUploadProgress-class.html" title="Status of a resumable upload." alt="" coords="5,5,299,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_35.gif" alt='' usemap="#uml_class_diagram_for_googleap_35" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -273,7 +267,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.RequestMockBuilder-class.html b/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
index 997327f..504d424 100644
--- a/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
+++ b/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class RequestMockBuilder</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#RequestMockBuilder">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_36" name="uml_class_diagram_for_googleap_36">
-<area shape="rect" id="node1_2" href="googleapiclient.http.RequestMockBuilder-class.html#__init__" title="Constructor for RequestMockBuilder" alt="" coords="17,39,680,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.RequestMockBuilder-class.html#__call__" title="Implements the callable interface that discovery.build() expects of requestBuilder, which is to build an object compatible with HttpRequest.execute()." alt="" coords="17,59,680,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http.RequestMockBuilder-class.html" title="A simple mock of HttpRequest" alt="" coords="5,5,691,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_36.gif" alt='' usemap="#uml_class_diagram_for_googleap_36" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -319,7 +313,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http._StreamSlice-class.html b/docs/epy/googleapiclient.http._StreamSlice-class.html
index 4e182aa..b4ed530 100644
--- a/docs/epy/googleapiclient.http._StreamSlice-class.html
+++ b/docs/epy/googleapiclient.http._StreamSlice-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class _StreamSlice</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#_StreamSlice">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_37" name="uml_class_diagram_for_googleap_37">
-<area shape="rect" id="node1_2" href="googleapiclient.http._StreamSlice-class.html#__init__" title="Constructor." alt="" coords="17,39,253,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http._StreamSlice-class.html#read" title="Read n bytes." alt="" coords="17,59,253,79"/>
-<area shape="rect" id="node1" href="googleapiclient.http._StreamSlice-class.html" title="Truncated stream." alt="" coords="5,5,265,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_37.gif" alt='' usemap="#uml_class_diagram_for_googleap_37" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -285,7 +279,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.mimeparse-module.html b/docs/epy/googleapiclient.mimeparse-module.html
index f1842af..53bfab3 100644
--- a/docs/epy/googleapiclient.mimeparse-module.html
+++ b/docs/epy/googleapiclient.mimeparse-module.html
@@ -490,7 +490,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.mimeparse-pysrc.html b/docs/epy/googleapiclient.mimeparse-pysrc.html
index a543928..2e531ff 100644
--- a/docs/epy/googleapiclient.mimeparse-pysrc.html
+++ b/docs/epy/googleapiclient.mimeparse-pysrc.html
@@ -264,7 +264,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model-module.html b/docs/epy/googleapiclient.model-module.html
index 5acfbce..7366bf0 100644
--- a/docs/epy/googleapiclient.model-module.html
+++ b/docs/epy/googleapiclient.model-module.html
@@ -306,7 +306,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model-pysrc.html b/docs/epy/googleapiclient.model-pysrc.html
index 32f7a18..9e7719a 100644
--- a/docs/epy/googleapiclient.model-pysrc.html
+++ b/docs/epy/googleapiclient.model-pysrc.html
@@ -635,7 +635,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.BaseModel-class.html b/docs/epy/googleapiclient.model.BaseModel-class.html
index 2d5f7d5..68cd048 100644
--- a/docs/epy/googleapiclient.model.BaseModel-class.html
+++ b/docs/epy/googleapiclient.model.BaseModel-class.html
@@ -58,20 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class BaseModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#BaseModel">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_38" name="uml_class_diagram_for_googleap_38">
-<area shape="rect" id="node1_8" href="googleapiclient.model.BaseModel-class.html#accept" title="googleapiclient.model.BaseModel.accept" alt="" coords="17,95,397,115"/>
-<area shape="rect" id="node1_9" href="googleapiclient.model.BaseModel-class.html#content_type" title="googleapiclient.model.BaseModel.content_type" alt="" coords="17,115,397,135"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.BaseModel-class.html#no_content_response" title="googleapiclient.model.BaseModel.no_content_response" alt="" coords="17,135,397,155"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.BaseModel-class.html#alt_param" title="googleapiclient.model.BaseModel.alt_param" alt="" coords="17,155,397,175"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,177,397,197"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,197,397,217"/>
-<area shape="rect" id="node1_14" href="googleapiclient.model.BaseModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="17,217,397,237"/>
-<area shape="rect" id="node1_15" href="googleapiclient.model.BaseModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="17,237,397,257"/>
-<area shape="rect" id="node1" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,264"/>
-<area shape="rect" id="node2" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_38.gif" alt='' usemap="#uml_class_diagram_for_googleap_38" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -545,7 +532,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.JsonModel-class.html b/docs/epy/googleapiclient.model.JsonModel-class.html
index f82e925..307d559 100644
--- a/docs/epy/googleapiclient.model.JsonModel-class.html
+++ b/docs/epy/googleapiclient.model.JsonModel-class.html
@@ -58,22 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class JsonModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#JsonModel">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_39" name="uml_class_diagram_for_googleap_39">
-<area shape="rect" id="node1_9" href="googleapiclient.model.JsonModel-class.html#accept" title="googleapiclient.model.JsonModel.accept" alt="" coords="104,195,312,215"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.JsonModel-class.html#content_type" title="googleapiclient.model.JsonModel.content_type" alt="" coords="104,215,312,235"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.JsonModel-class.html#alt_param" title="googleapiclient.model.JsonModel.alt_param" alt="" coords="104,235,312,255"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="104,257,312,277"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="104,277,312,297"/>
-<area shape="rect" id="node1_14" href="googleapiclient.model.JsonModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="104,297,312,317"/>
-<area shape="rect" id="node1_15" href="googleapiclient.model.JsonModel-class.html#no_content_response" title="googleapiclient.model.JsonModel.no_content_response" alt="" coords="104,317,312,337"/>
-<area shape="rect" id="node1" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="92,169,324,343"/>
-<area shape="rect" id="node2_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
-<area shape="rect" id="node2_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
-<area shape="rect" id="node2" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_39.gif" alt='' usemap="#uml_class_diagram_for_googleap_39" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -432,7 +417,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.MediaModel-class.html b/docs/epy/googleapiclient.model.MediaModel-class.html
index fdc2269..ceaaa0c 100644
--- a/docs/epy/googleapiclient.model.MediaModel-class.html
+++ b/docs/epy/googleapiclient.model.MediaModel-class.html
@@ -58,23 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class MediaModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#MediaModel">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_40" name="uml_class_diagram_for_googleap_40">
-<area shape="rect" id="node1_9" href="googleapiclient.model.MediaModel-class.html#accept" title="googleapiclient.model.MediaModel.accept" alt="" coords="128,293,288,313"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.MediaModel-class.html#content_type" title="googleapiclient.model.MediaModel.content_type" alt="" coords="128,313,288,333"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.MediaModel-class.html#alt_param" title="googleapiclient.model.MediaModel.alt_param" alt="" coords="128,333,288,353"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.MediaModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="128,356,288,376"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.MediaModel-class.html#no_content_response" title="googleapiclient.model.MediaModel.no_content_response" alt="" coords="128,376,288,396"/>
-<area shape="rect" id="node1" href="googleapiclient.model.MediaModel-class.html" title="Model class for requests that return Media." alt="" coords="116,267,300,402"/>
-<area shape="rect" id="node2_14" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="104,201,312,221"/>
-<area shape="rect" id="node2_15" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="104,221,312,241"/>
-<area shape="rect" id="node2" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="92,168,324,248"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
-<area shape="rect" id="node4_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
-<area shape="rect" id="node4_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
-<area shape="rect" id="node4" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_40.gif" alt='' usemap="#uml_class_diagram_for_googleap_40" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -339,7 +323,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.Model-class.html b/docs/epy/googleapiclient.model.Model-class.html
index e897e72..29e0b96 100644
--- a/docs/epy/googleapiclient.model.Model-class.html
+++ b/docs/epy/googleapiclient.model.Model-class.html
@@ -58,13 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Model</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#Model">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_41" name="uml_class_diagram_for_googleap_41">
-<area shape="rect" id="node1_2" href="googleapiclient.model.Model-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,39,397,59"/>
-<area shape="rect" id="node1_3" href="googleapiclient.model.Model-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,59,397,79"/>
-<area shape="rect" id="node1" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="5,5,409,85"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_41.gif" alt='' usemap="#uml_class_diagram_for_googleap_41" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -297,7 +291,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html b/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
index a980b5f..2e8e9eb 100644
--- a/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
+++ b/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
@@ -58,22 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class ProtocolBufferModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#ProtocolBufferModel">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_42" name="uml_class_diagram_for_googleap_42">
-<area shape="rect" id="node1_9" href="googleapiclient.model.ProtocolBufferModel-class.html#accept" title="googleapiclient.model.ProtocolBufferModel.accept" alt="" coords="120,195,296,215"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.ProtocolBufferModel-class.html#content_type" title="googleapiclient.model.ProtocolBufferModel.content_type" alt="" coords="120,215,296,235"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.ProtocolBufferModel-class.html#alt_param" title="googleapiclient.model.ProtocolBufferModel.alt_param" alt="" coords="120,235,296,255"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.ProtocolBufferModel-class.html#__init__" title="Constructs a ProtocolBufferModel." alt="" coords="120,257,296,277"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.ProtocolBufferModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="120,277,296,297"/>
-<area shape="rect" id="node1_14" href="googleapiclient.model.ProtocolBufferModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="120,297,296,317"/>
-<area shape="rect" id="node1_15" href="googleapiclient.model.ProtocolBufferModel-class.html#no_content_response" title="googleapiclient.model.ProtocolBufferModel.no_content_response" alt="" coords="120,317,296,337"/>
-<area shape="rect" id="node1" href="googleapiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="108,169,308,343"/>
-<area shape="rect" id="node2_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
-<area shape="rect" id="node2_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
-<area shape="rect" id="node2" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_42.gif" alt='' usemap="#uml_class_diagram_for_googleap_42" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -436,7 +421,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.RawModel-class.html b/docs/epy/googleapiclient.model.RawModel-class.html
index 857e76b..770c232 100644
--- a/docs/epy/googleapiclient.model.RawModel-class.html
+++ b/docs/epy/googleapiclient.model.RawModel-class.html
@@ -58,23 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class RawModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#RawModel">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_43" name="uml_class_diagram_for_googleap_43">
-<area shape="rect" id="node1_9" href="googleapiclient.model.RawModel-class.html#accept" title="googleapiclient.model.RawModel.accept" alt="" coords="128,293,288,313"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.RawModel-class.html#content_type" title="googleapiclient.model.RawModel.content_type" alt="" coords="128,313,288,333"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.RawModel-class.html#alt_param" title="googleapiclient.model.RawModel.alt_param" alt="" coords="128,333,288,353"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.RawModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="128,356,288,376"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.RawModel-class.html#no_content_response" title="googleapiclient.model.RawModel.no_content_response" alt="" coords="128,376,288,396"/>
-<area shape="rect" id="node1" href="googleapiclient.model.RawModel-class.html" title="Model class for requests that don&#39;t return JSON." alt="" coords="116,267,300,402"/>
-<area shape="rect" id="node2_14" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="104,201,312,221"/>
-<area shape="rect" id="node2_15" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="104,221,312,241"/>
-<area shape="rect" id="node2" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="92,168,324,248"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
-<area shape="rect" id="node4_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
-<area shape="rect" id="node4_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
-<area shape="rect" id="node4" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_43.gif" alt='' usemap="#uml_class_diagram_for_googleap_43" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -339,7 +323,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.sample_tools-module.html b/docs/epy/googleapiclient.sample_tools-module.html
index 0328c35..50b83fe 100644
--- a/docs/epy/googleapiclient.sample_tools-module.html
+++ b/docs/epy/googleapiclient.sample_tools-module.html
@@ -204,7 +204,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.sample_tools-pysrc.html b/docs/epy/googleapiclient.sample_tools-pysrc.html
index 5e9d75d..c6a544f 100644
--- a/docs/epy/googleapiclient.sample_tools-pysrc.html
+++ b/docs/epy/googleapiclient.sample_tools-pysrc.html
@@ -195,7 +195,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema-module.html b/docs/epy/googleapiclient.schema-module.html
index 98cb14d..f7b9d6f 100644
--- a/docs/epy/googleapiclient.schema-module.html
+++ b/docs/epy/googleapiclient.schema-module.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema-pysrc.html b/docs/epy/googleapiclient.schema-pysrc.html
index fd48199..4cb1f47 100644
--- a/docs/epy/googleapiclient.schema-pysrc.html
+++ b/docs/epy/googleapiclient.schema-pysrc.html
@@ -463,7 +463,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema.Schemas-class.html b/docs/epy/googleapiclient.schema.Schemas-class.html
index d978a17..839d7d8 100644
--- a/docs/epy/googleapiclient.schema.Schemas-class.html
+++ b/docs/epy/googleapiclient.schema.Schemas-class.html
@@ -58,15 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class Schemas</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.schema-pysrc.html#Schemas">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_44" name="uml_class_diagram_for_googleap_44">
-<area shape="rect" id="node1_4" href="googleapiclient.schema.Schemas-class.html#__init__" title="Constructor." alt="" coords="17,39,216,59"/>
-<area shape="rect" id="node1_5" href="googleapiclient.schema.Schemas-class.html#prettyPrintByName" title="Get pretty printed object prototype from the schema name." alt="" coords="17,59,216,79"/>
-<area shape="rect" id="node1_6" href="googleapiclient.schema.Schemas-class.html#prettyPrintSchema" title="Get pretty printed object prototype of schema." alt="" coords="17,79,216,99"/>
-<area shape="rect" id="node1_7" href="googleapiclient.schema.Schemas-class.html#get" title="Get deserialized JSON schema from the schema name." alt="" coords="17,99,216,119"/>
-<area shape="rect" id="node1" href="googleapiclient.schema.Schemas-class.html" title="Schemas for an API." alt="" coords="5,5,227,125"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_44.gif" alt='' usemap="#uml_class_diagram_for_googleap_44" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -488,7 +480,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema._SchemaToStruct-class.html b/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
index 4cfb208..0c01de2 100644
--- a/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
+++ b/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
@@ -58,18 +58,7 @@
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class _SchemaToStruct</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.schema-pysrc.html#_SchemaToStruct">source&nbsp;code</a></span></p>
 <center>
-<center>  <map id="uml_class_diagram_for_googleap_45" name="uml_class_diagram_for_googleap_45">
-<area shape="rect" id="node1_7" href="googleapiclient.schema._SchemaToStruct-class.html#__init__" title="Constructor." alt="" coords="17,40,237,60"/>
-<area shape="rect" id="node1_8" href="googleapiclient.schema._SchemaToStruct-class.html#emit" title="Add text as a line to the output." alt="" coords="17,60,237,80"/>
-<area shape="rect" id="node1_9" href="googleapiclient.schema._SchemaToStruct-class.html#emitBegin" title="Add text to the output, but with no line terminator." alt="" coords="17,80,237,100"/>
-<area shape="rect" id="node1_10" href="googleapiclient.schema._SchemaToStruct-class.html#emitEnd" title="Add text and comment to the output with line terminator." alt="" coords="17,100,237,120"/>
-<area shape="rect" id="node1_11" href="googleapiclient.schema._SchemaToStruct-class.html#indent" title="Increase indentation level." alt="" coords="17,120,237,140"/>
-<area shape="rect" id="node1_12" href="googleapiclient.schema._SchemaToStruct-class.html#undent" title="Decrease indentation level." alt="" coords="17,140,237,160"/>
-<area shape="rect" id="node1_13" href="googleapiclient.schema._SchemaToStruct-class.html#to_str" title="Prototype object based on the schema, in Python code with comments." alt="" coords="17,160,237,180"/>
-<area shape="rect" id="node1" href="googleapiclient.schema._SchemaToStruct-class.html" title="Convert schema to a prototype object." alt="" coords="5,6,249,186"/>
-</map>
-  <img src="uml_class_diagram_for_googleap_45.gif" alt='' usemap="#uml_class_diagram_for_googleap_45" ismap="ismap" class="graph-without-title" />
-</center>
+
 </center>
 <hr />
 <pre class="literalblock">
@@ -509,7 +498,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:57 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:40 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/help.html b/docs/epy/help.html
index f370fbd..207a343 100644
--- a/docs/epy/help.html
+++ b/docs/epy/help.html
@@ -246,7 +246,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/identifier-index.html b/docs/epy/identifier-index.html
index 2977b38..71e3b15 100644
--- a/docs/epy/identifier-index.html
+++ b/docs/epy/identifier-index.html
@@ -1027,7 +1027,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/module-tree.html b/docs/epy/module-tree.html
index 2a0bd13..5f81214 100644
--- a/docs/epy/module-tree.html
+++ b/docs/epy/module-tree.html
@@ -102,7 +102,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Mar 24 17:07:55 2017
+    Generated by Epydoc 3.0.1 on Mon Jun  5 13:38:39 2017
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/uml_class_diagram_for_googleap.gif b/docs/epy/uml_class_diagram_for_googleap.gif
deleted file mode 100644
index 86f4563..0000000
--- a/docs/epy/uml_class_diagram_for_googleap.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_10.gif b/docs/epy/uml_class_diagram_for_googleap_10.gif
deleted file mode 100644
index b289d22..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_10.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_11.gif b/docs/epy/uml_class_diagram_for_googleap_11.gif
deleted file mode 100644
index 5fa8d29..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_11.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_12.gif b/docs/epy/uml_class_diagram_for_googleap_12.gif
deleted file mode 100644
index 3c93ccf..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_12.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_13.gif b/docs/epy/uml_class_diagram_for_googleap_13.gif
deleted file mode 100644
index 9f5ec19..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_13.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_14.gif b/docs/epy/uml_class_diagram_for_googleap_14.gif
deleted file mode 100644
index 4c1f0a5..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_14.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_15.gif b/docs/epy/uml_class_diagram_for_googleap_15.gif
deleted file mode 100644
index 9f0d471..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_15.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_16.gif b/docs/epy/uml_class_diagram_for_googleap_16.gif
deleted file mode 100644
index 36f1612..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_16.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_17.gif b/docs/epy/uml_class_diagram_for_googleap_17.gif
deleted file mode 100644
index 1af681a..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_17.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_18.gif b/docs/epy/uml_class_diagram_for_googleap_18.gif
deleted file mode 100644
index e28ee2e..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_18.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_19.gif b/docs/epy/uml_class_diagram_for_googleap_19.gif
deleted file mode 100644
index f5beaac..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_19.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_2.gif b/docs/epy/uml_class_diagram_for_googleap_2.gif
deleted file mode 100644
index 040ca75..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_2.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_20.gif b/docs/epy/uml_class_diagram_for_googleap_20.gif
deleted file mode 100644
index d3b2212..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_20.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_21.gif b/docs/epy/uml_class_diagram_for_googleap_21.gif
deleted file mode 100644
index ef77139..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_21.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_22.gif b/docs/epy/uml_class_diagram_for_googleap_22.gif
deleted file mode 100644
index 35fa369..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_22.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_23.gif b/docs/epy/uml_class_diagram_for_googleap_23.gif
deleted file mode 100644
index f48a690..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_23.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_24.gif b/docs/epy/uml_class_diagram_for_googleap_24.gif
deleted file mode 100644
index 794fdf8..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_24.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_25.gif b/docs/epy/uml_class_diagram_for_googleap_25.gif
deleted file mode 100644
index a48db3a..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_25.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_26.gif b/docs/epy/uml_class_diagram_for_googleap_26.gif
deleted file mode 100644
index d2e72dd..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_26.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_27.gif b/docs/epy/uml_class_diagram_for_googleap_27.gif
deleted file mode 100644
index 9c2bffb..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_27.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_28.gif b/docs/epy/uml_class_diagram_for_googleap_28.gif
deleted file mode 100644
index ae44c0f..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_28.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_29.gif b/docs/epy/uml_class_diagram_for_googleap_29.gif
deleted file mode 100644
index cae3b90..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_29.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_3.gif b/docs/epy/uml_class_diagram_for_googleap_3.gif
deleted file mode 100644
index 3ab1c48..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_3.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_30.gif b/docs/epy/uml_class_diagram_for_googleap_30.gif
deleted file mode 100644
index f2f052c..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_30.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_31.gif b/docs/epy/uml_class_diagram_for_googleap_31.gif
deleted file mode 100644
index be08786..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_31.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_32.gif b/docs/epy/uml_class_diagram_for_googleap_32.gif
deleted file mode 100644
index 1d7323b..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_32.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_33.gif b/docs/epy/uml_class_diagram_for_googleap_33.gif
deleted file mode 100644
index 0aec8e8..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_33.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_34.gif b/docs/epy/uml_class_diagram_for_googleap_34.gif
deleted file mode 100644
index 7f3564e..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_34.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_35.gif b/docs/epy/uml_class_diagram_for_googleap_35.gif
deleted file mode 100644
index c263227..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_35.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_36.gif b/docs/epy/uml_class_diagram_for_googleap_36.gif
deleted file mode 100644
index ed62595..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_36.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_37.gif b/docs/epy/uml_class_diagram_for_googleap_37.gif
deleted file mode 100644
index dbf307c..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_37.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_38.gif b/docs/epy/uml_class_diagram_for_googleap_38.gif
deleted file mode 100644
index 22b7ac0..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_38.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_39.gif b/docs/epy/uml_class_diagram_for_googleap_39.gif
deleted file mode 100644
index 5c17b47..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_39.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_4.gif b/docs/epy/uml_class_diagram_for_googleap_4.gif
deleted file mode 100644
index 23819fc..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_4.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_40.gif b/docs/epy/uml_class_diagram_for_googleap_40.gif
deleted file mode 100644
index 2abee82..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_40.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_41.gif b/docs/epy/uml_class_diagram_for_googleap_41.gif
deleted file mode 100644
index e8905e6..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_41.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_42.gif b/docs/epy/uml_class_diagram_for_googleap_42.gif
deleted file mode 100644
index 53e255e..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_42.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_43.gif b/docs/epy/uml_class_diagram_for_googleap_43.gif
deleted file mode 100644
index 81831dd..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_43.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_44.gif b/docs/epy/uml_class_diagram_for_googleap_44.gif
deleted file mode 100644
index 0ad08a9..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_44.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_45.gif b/docs/epy/uml_class_diagram_for_googleap_45.gif
deleted file mode 100644
index b2bf6da..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_45.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_5.gif b/docs/epy/uml_class_diagram_for_googleap_5.gif
deleted file mode 100644
index cbc84d5..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_5.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_6.gif b/docs/epy/uml_class_diagram_for_googleap_6.gif
deleted file mode 100644
index 21dc112..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_6.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_7.gif b/docs/epy/uml_class_diagram_for_googleap_7.gif
deleted file mode 100644
index b4ce9dc..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_7.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_8.gif b/docs/epy/uml_class_diagram_for_googleap_8.gif
deleted file mode 100644
index cbd6200..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_8.gif
+++ /dev/null
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_9.gif b/docs/epy/uml_class_diagram_for_googleap_9.gif
deleted file mode 100644
index b4ce9dc..0000000
--- a/docs/epy/uml_class_diagram_for_googleap_9.gif
+++ /dev/null
Binary files differ
